CopyPastor

Detecting plagiarism made easy.

Score: 1.8278803825378418; Reported for: String similarity, Exact paragraph match Open both answers

Possible Plagiarism

Reposted on 2016-10-04
by Nishad Up

Original Post

Original - Posted on 2016-10-04
by Nishad Up



            
Present in both answers; Present only in the new answer; Present only in the old answer;

I think the best option is to use the Woocommerce shipping classes. The bellow code snippet helps you to hide shipping method based on shipping class.

add_filter('woocommerce_package_rates', 'wf_hide_shipping_method_based_on_shipping_class', 10, 2); function wf_hide_shipping_method_based_on_shipping_class($available_shipping_methods, $package) { $hide_when_shipping_class_exist = array( 42 => array( 'free_shipping' ) ); $hide_when_shipping_class_not_exist = array( 42 => array( 'wf_shipping_ups:03', 'wf_shipping_ups:02', 'wf_shipping_ups:01' ), 43 => array( 'free_shipping' ) ); $shipping_class_in_cart = array(); foreach(WC()->cart->cart_contents as $key => $values) { $shipping_class_in_cart[] = $values['data']->get_shipping_class_id(); }
foreach($hide_when_shipping_class_exist as $class_id => $methods) { if(in_array($class_id, $shipping_class_in_cart)){ foreach($methods as & $current_method) { unset($available_shipping_methods[$current_method]); } } } foreach($hide_when_shipping_class_not_exist as $class_id => $methods) { if(!in_array($class_id, $shipping_class_in_cart)){ foreach($methods as & $current_method) { unset($available_shipping_methods[$current_method]); } } } return $available_shipping_methods; }
[Here][1] is the detailed description about the snippet

[1]: http://support.wooforce.com/hc/en-us/articles/209165585-Hide-Shipping-methods-when-Shipping-classes-exist-do-not-exist-in-cart-
The bellow code snippet allows you hide the shipping methods based on shipping class. Detailed description is available [here][1]
add_filter('woocommerce_package_rates', 'wf_hide_shipping_method_based_on_shipping_class', 10, 2); function wf_hide_shipping_method_based_on_shipping_class($available_shipping_methods, $package) { $hide_when_shipping_class_exist = array( 42 => array( 'free_shipping' ) ); $hide_when_shipping_class_not_exist = array( 42 => array( 'wf_shipping_ups:03', 'wf_shipping_ups:02', 'wf_shipping_ups:01' ), 43 => array( 'free_shipping' ) ); $shipping_class_in_cart = array(); foreach(WC()->cart->cart_contents as $key => $values) { $shipping_class_in_cart[] = $values['data']->get_shipping_class_id(); }
foreach($hide_when_shipping_class_exist as $class_id => $methods) { if(in_array($class_id, $shipping_class_in_cart)){ foreach($methods as & $current_method) { unset($available_shipping_methods[$current_method]); } } } foreach($hide_when_shipping_class_not_exist as $class_id => $methods) { if(!in_array($class_id, $shipping_class_in_cart)){ foreach($methods as & $current_method) { unset($available_shipping_methods[$current_method]); } } } return $available_shipping_methods; }

[1]: http://support.wooforce.com/hc/en-us/articles/209165585-Hide-Shipping-methods-when-Shipping-classes-exist-do-not-exist-in-cart-

        
Present in both answers; Present only in the new answer; Present only in the old answer;