Hide shipping options for category
-
Hello. This code hide shipping options based on category, but I need hide another shipping options for another category. Example: for category 6 and 7 hide local pick up, for category 9 hide flat rate. When Im duplicate this code for another category – website doesn’t work properly. Sorry, for my english. Anyone can help me? Thanks.
add_filter( 'woocommerce_available_shipping_methods', 'hide_shipping_based_on_tag' , 10, 1 ); function check_cart_for_share() { // specify the category id's you want to hide local_pickup $category_ID = array( '6', // books '7', // prints ); global $woocommerce; $cart = $woocommerce->cart->cart_contents; $found = false; // loop through the array looking for the categories. Switch to true if the category is found. foreach ($woocommerce->cart->cart_contents as $key => $values ) { $terms = get_the_terms( $values['product_id'], 'product_cat' ); foreach ($terms as $term) { if( in_array( $term->term_id, $category_ID ) ) { $found = true; break; } } } return $found; } function hide_shipping_based_on_tag( $available_methods ) { // use the function above to check the cart for the categories. if ( check_cart_for_share() ) { // remove the method you want unset( $available_methods['local_pickup'] ); // Replace "local_pickup" with the shipping option that you want to remove. } // return the available methods without the one you unset. return $available_methods; }
Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
- The topic ‘Hide shipping options for category’ is closed to new replies.