TransWikia.com

Crear Customs Fields en Cart Page Woocommerce

Stack Overflow en español Asked by Matias Blanco on November 29, 2021

estoy creando un plugin para insertar dos fields custom en el carrito de compras, es decir dos columnas con cada una un campo, uno para ingresar comentarios, y otro para un select, ambos sobre cada producto del carrito, querìa saber ya que estuve buscando bastante informaciòn y no pude lograrlo exitosamente si alguno ya tuvo que hacerlo, o sabe como hacerlo ! Muchas gracias por su aporte

Edito el post con parte del codigo que voy haciendo, el problema esta en que al actualizar la pagina los comentarios se borran, y cuando finalizo la compra no se guarda tampoco la información

Agrego a cada producto del carrito un campo para comentarios

function prefix_after_cart_item_name( $cart_item, $cart_item_key ) {
  $notes = isset( $cart_item['notes'] ) ? $cart_item['notes'] : '';
  printf(
  '<td class="product-comment" data-title="Comentarios"><div><textarea class="%s" id="cart_notes_%s" data-cart-id="%s">%s</textarea></div></td>',
  'prefix-cart-notes',
  $cart_item_key,
  $cart_item_key,
  $notes
  );
 }
 add_action( 'woocommerce_after_cart_item_name', 'prefix_after_cart_item_name', 10, 2 );

Hago un enqueue the archivo js para poder actualizar el valor del carrito al actualizarlo

function prefix_enqueue_scripts() {
  wp_register_script( 'prefix-script', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'js/update-cart-item-ajax.js', array( 'jquery-blockui' ), time(), true );
  wp_localize_script(
  'prefix-script',
  'prefix_vars',
  array(
  'ajaxurl' => admin_url( 'admin-ajax.php' )
  )
  );
  wp_enqueue_script( 'prefix-script' );
 }
 add_action( 'wp_enqueue_scripts', 'prefix_enqueue_scripts' );

Archivo JS que se encarga de actualizar el carrito

(function($) {
    $(document).ready(function() {
        $('.prefix-cart-notes').on('change keyup paste', function() {
            $('.cart_totals').block({
                message: null,
                overlayCSS: {
                    background: '#fff',
                    opacity: 0.6
                }
            });
            var cart_id = $(this).data('cart-id');
            $.ajax({
                type: 'POST',
                url: prefix_vars.ajaxurl,
                data: {
                    action: 'prefix_update_cart_notes',
                    security: $('#woocommerce-cart-nonce').val(),
                    notes: $('#cart_notes_' + cart_id).val(),
                    cart_id: cart_id
                },
                success: function(response) {
                    $('.cart_totals').unblock();
                }
            })
        });
    });
})(jQuery);

Ese codigo lo tome de aca pero no me estaria funcionando !

Actualmente se ve asi el carrito

introducir la descripción de la imagen aquí

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP