Ya estudiamos cómo establecer Min/max wooCommerce agregar a la cantidad de carrito programáticamente. Ese fue fácil. Esta vez, quiero ampliar el tema y definir un «monto mínimo de pedido por producto».
Que, traducido en inglés simple, sería algo como «Establezca la cantidad mínima de compra para el producto XYZ a $ 50». Y una vez que hacemos eso, espero que la cantidad de ADD a CART no comience desde 1; en cambio, es predeterminado a «$ 50 dividido por el precio del producto». Si el precio del producto es de $ 10, me gustaría establecer la cantidad mínima de CART a «5» en las páginas de un solo producto y carrito.
Tiene sentido? Genial, así es como se hace.
Php Snippet: establezca min agrega a la cantidad de carrito para un producto específico basado en la cantidad mínima compra @ WooCommerce Productos individuales y páginas de carritos
En el siguiente ejemplo, estoy estableciendo una cantidad mínima de compra para la identificación del producto = 123 de $ 50. Esta función deberá actuar en la página de producto y la página del carrito. Si el precio de ID = 123 es de $ 9, el monto de $ min será: techo (50/9) = 6
/** * @snippet Set Min Purchase Amount | WooCommerce Single Product * @how-to businessbloomer.com/woocommerce-customization * @author Rodolfo Melogli, Business Bloomer * @testedwith WooCommerce 5 * @community https://businessbloomer.com/club/ */ // ------------ // 1. Single Product Page add_filter( 'woocommerce_quantity_input_min', 'bloomer_woocommerce_quantity_min_50_eur', 9999, 2 ); function bloomer_woocommerce_quantity_min_50_eur( $min, $product ) { if ( is_product() ) { if ( 123 === $product->get_id() ) { $min = ceil( 50 / $product->get_price() ); } } return $min; } // ------------ // 2. Cart Page add_filter( 'woocommerce_cart_item_quantity', 'bloomer_woocommerce_quantity_min_50_eur_cart', 9999, 3 ); function bloomer_woocommerce_quantity_min_50_eur_cart( $product_quantity, $cart_item_key, $cart_item ) { $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); $min = 0; if ( 123 === $_product->get_id() ) { $min = ceil( 50 / $_product->get_price() ); } $product_quantity = woocommerce_quantity_input( array( 'input_name' => "cart[{$cart_item_key}][qty]", 'input_value' => $cart_item['quantity'], 'max_value' => $_product->get_max_purchase_quantity(), 'min_value' => $min, 'product_name' => $_product->get_name(), ), $_product, false ); return $product_quantity; }
¿Hay un complemento para eso?
Si te encantaría codificar pero no te sientes 100% seguro con PHP, decidí buscar un complemento confiable que logre el mismo resultado.
En este caso, recomiendo el Complemento de WooCommerce Cantidad Manager. Además de establecer el valor mínimo de pedido, también puede definir el paso de la cantidad de carrito, min, máximo, valor predeterminado para cada producto y mucho más.
Pero en caso de que odie los complementos y desee codificar (o desee intentarlo), luego siga leyendo 🙂