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 codigosWP:

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

Scroll al inicio