【发布时间】:2014-04-14 04:36:52
【问题描述】:
我正在尝试编写一个函数,如果订单超过 5 磅(80 盎司),则仅提供免费送货(删除所有其他选项),但尽管代码看起来正确,但它不起作用。
这就是我所拥有的:
// Hide ALL shipping options but FREe when over 80 ounches (5 pounds)
add_filter( 'woocommerce_available_shipping_methods', 'ship_free_if_over_five_pounds' , 10, 1 );
/**
* Hide ALL Shipping option but free if over 5 pounds
*
* @param array $available_methods
*/
function ship_free_if_over_five_pounds( $available_methods ) {
global $woocommerce;
$whats_the_weight = $woocommerce->cart->cart_contents_weight;
if($whats_the_weight != 80) :
// Get Free Shipping array into a new array
$freeshipping = array();
$freeshipping = $available_methods['free_shipping'];
// Empty the $available_methods array
unset( $available_methods );
// Add Free Shipping back into $avaialble_methods
$available_methods = array();
$available_methods[] = $freeshipping;
endif;
return $available_methods;
}
有什么想法吗?
代码基于此站点上的示例 #19:
My 25 Best WooCommerce Snippets For WordPress Part 2
【问题讨论】:
标签: php wordpress woocommerce shipping orders