estoy un poco atascado para esto... estoy tratando de eliminar una condición cada vez que el usuario agrega un producto específico, en este caso una caja de vinos
Entonces, cuando agrego una botella de vino, hay una condición de cantidad mínima, por lo que debe agregar 3, pero cuando agrega una caja, la condición debe eliminarse.
add_action('woocommerce_after_cart_contents', 'box_special_function', 1, 1); function box_special_function() { // getting cart items $cart = WC()->cart->get_cart(); $terms = []; // Getting categories of products in the cart foreach ($cart as $cart_item_key => $cart_item) { $product = $cart_item['data']; $terms[] = get_the_terms( $product->get_id(), 'product_cat' ); } // Cycling categories to find if there is a box inside of the cart foreach($terms as $term => $item){ foreach($item as $key){ if($key->name == "BOX"){ // The only thing i did is to remove notices (which doesn't even work .-.) $notices = WC()->session->get('wc_notices', array()); foreach($notices['error']){ wc_clear_notices(); } } } } }Ni siquiera puedo forzar el pago, así que estoy atascado con esto ... ¿alguien puede aclararme la mente?
Puede actualizar la funcionalidad mínima de agregar productos al carrito y eliminar la validación para sus productos específicos de esta manera:
add_filter( 'woocommerce_quantity_input_args', 'custom_woocommerce_quantity_changes', 10, 2 ); function custom_woocommerce_quantity_changes( $args, $product ) { $product_id = $product->get_id(); $product_title = $product->get_title(); //echo "<pre>"; print_r($product_title); echo "</pre>"; if($product_id == 1002 || $product_title == 'BOX'){ $args['input_value'] = 1; $args['min_value'] = 1; $args['max_value'] = 30; $args['step'] = 1; }else{ $args['input_value'] = 3; // Start from this value (default = 1) $args['max_value'] = 30; // Max quantity (default = -1) $args['min_value'] = 3; // Min quantity (default = 0) $args['step'] = 1; // Increment/decrement by this value (default = 1) } return $args; }imprima su identificación de producto específica o nombre de producto y use el mismo nombre o identificación en su condición if:
if($product_id == 1002 || $product_title == 'BOX')Para el resto del producto, establezca el mínimo, el máximo y la validación del producto de entrada de las partes "otras".