El selector de cantidades de producto suele estar solo disponible en la página del producto y en el carrito pero ¿y si quieres también ofrecer al cliente que cambie la cantidad de unidades en la página de pago?
Hay múltiples motivos por los que querrías añadir esta funcionalidad a tu tienda online, como por ejemplo si has creado una redirección para que los clientes no pasen por el carrito y vayan directamente al pago, o simplemente porque quieres ofrecer una total flexibilidad para añadir o quitar cantidades de los productos en cualquier momento, tú sabrás.
El caso es que es muy fácil, solo hay que añadir algo de código a tu plugin de personalizaciones o al archivo functions.php
del tema activo, así:
/* Selector de cantidades al finalizar compra en Woo */ // Ocultamos la cadena de las cantidades junto al nombre del producto add_filter( 'woocommerce_checkout_cart_item_quantity', '__return_empty_string' ); // Agregamos el selector de cantidades add_filter( 'woocommerce_cart_item_subtotal', 'ayudawp_selector_cantidades_pago', 9999, 3 ); function ayudawp_selector_cantidades_pago( $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; } // Detectamos el cambio de cantidad para recalcular los totales add_action( 'woocommerce_checkout_update_order_review', 'ayudawp_recalcular_totales_selector_cantidades_pago' ); function ayudawp_recalcular_totales_selector_cantidades_pago( $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(); }
Guarda los cambios y pasarás de esto…
A esto otro…
¿A que es una opción muy interesante?
________________________________________________
La entrada Añadir selector de cantidades al finalizar compra en WooCommerce la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.
________________________________________________
0 Commentaires