Permitir modificar la cantidad de producto en el checkout de WooCommerce

Permitir modificar la cantidad de producto en el checkout de WooCommerce

Permite modificar la cantidad de los productos añadidos al carrito de WooCommerce desde la propia página de «Finalizar compra».

// Oculta la cadena de las cantidades junto al nombre del producto

add_filter( 'woocommerce_checkout_cart_item_quantity', '__return_empty_string' );

// Agrega el selector de cantidades
add_filter( 'woocommerce_cart_item_subtotal', 'wc_payment_amount_selector', 9999, 3 );
function wc_payment_amount_selector( $product_quantity, $cart_item, $cart_item_key ) {
    if ( is_checkout() ) {
        $product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
        $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
        $product_quantity = woocommerce_quantity_input( array(
            'input_name' => 'shipping_method_qty_' . $product_id,
            'input_value' => $cart_item['quantity'],
            'max_value' => $product->get_max_purchase_quantity(),
            'min_value' => '0',), $product, false );
            
            $product_quantity .= '<input type="hidden" name="product_key_' . $product_id . '" value="' . $cart_item_key . '">';
        }
        
    return $product_quantity;
}

// Detecta el cambio de cantidad para recalcular los totales
add_action( 'woocommerce_checkout_update_order_review', 'wc_recalculating_totals' );
function wc_recalculating_totals( $post_data ) {
    parse_str( $post_data, $post_data_array );
    $updated_qty = false;
    foreach ( $post_data_array as $key => $value ) {
        if ( substr( $key, 0, 20 ) === 'shipping_method_qty_' ) {
            $id = substr( $key, 20 );
            WC()->cart->set_quantity( $post_data_array['product_key_' . $id], $post_data_array[$key], false );
            $updated_qty = true;
        }
    }
    if ( $updated_qty ) WC()->cart->calculate_totals();
}

2 comentarios en “Permitir modificar la cantidad de producto en el checkout de WooCommerce”

  1. Buenos días,
    He probado el código, pero la caja se ve demasiado grande y los botones de – y + no funcionan para establecer la cantidad.
    Hay alguna solución?
    Gracias,

¿Te ha gustado este código? Coméntalo con códigosWP:

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.