Wordpress woocommerce不包括州免费航运(澳大利亚州)
我试图实现woocommerces排除免费送货(澳大利亚网站)代码段中的州,但遇到以下错误: '致命错误:对中的非对象调用成员函数get_shipping_state() /home/bpcsport/public_html/wp content/plugins/wa exclude/wa-exclude.php 第30行' 我的客户需要将西澳大利亚排除在他们通过woocommerce提供的免费航运交易之外。如果我把它放在themes function.php中或者通过插件格式,我都会得到错误 我也尝试过以下方法,但没有效果 这是插件中来自woocommerce的代码片段Wordpress woocommerce不包括州免费航运(澳大利亚州),wordpress,woocommerce,shipping,states,Wordpress,Woocommerce,Shipping,States,我试图实现woocommerces排除免费送货(澳大利亚网站)代码段中的州,但遇到以下错误: '致命错误:对中的非对象调用成员函数get_shipping_state() /home/bpcsport/public_html/wp content/plugins/wa exclude/wa-exclude.php 第30行' 我的客户需要将西澳大利亚排除在他们通过woocommerce提供的免费航运交易之外。如果我把它放在themes function.php中或者通过插件格式,我都会得到错误
/**
* Hide ALL shipping options when free shipping is available and customer is NOT in certain states
* Hide Free Shipping if customer IS in those states
*
* Change $excluded_states = array( 'AK','HI','GU','PR' ); to include all the states that DO NOT have free shipping
*/
add_filter( 'woocommerce_available_shipping_methods', 'hide_all_shipping_when_free_is_available' , 10, 1 );
/**
* Hide ALL Shipping option when free shipping is available
*
* @param array $available_methods
*/
function hide_all_shipping_when_free_is_available( $available_methods ) {
$excluded_states = array( 'WA' );
if( isset( $available_methods['free_shipping'] ) AND !in_array( $woocommerce->customer->get_shipping_state(), $excluded_states ) ) :
// 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;
if( isset( $available_methods['free_shipping'] ) AND in_array( $woocommerce->customer->get_shipping_state(), $excluded_states ) ) {
// remove free shipping option
unset( $available_methods['free_shipping'] );
}
return $available_methods;
}
?>
我已经做了一个插件,允许高级用户配置。尽管它只包括美国各州,但您可以配置国家和邮政编码条件 我不知道这是否符合您的要求,但可能值得检查: