我最近更新到WooCommerce 2.6在我的商店,他们已经更新了他们的航运系统。之前,我用这个来隐藏支付航运选项时,达到特定的订单价值,并触发免费送货:
/**
* woocommerce_package_rates is a 2.1+ hook
*/
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
/**
* Hide shipping rates when free shipping is available
*
* @param array $rates Array of rates found for the package
* @param array $package The package array/object being shipped
* @return array of modified rates
*/
function hide_shipping_when_free_is_available( $rates, $package ) {
// Only modify rates if free_shipping is present
if ( isset( $rates['free_shipping'] ) ) {
// To unset a single rate/method, do the following. This example unsets flat_rate shipping
unset( $rates['flat_rate'] );
// To unset all methods except for free_shipping, do the following
$free_shipping = $rates['free_shipping'];
$rates = array();
$rates['free_shipping'] = $free_shipping;
}
return $rates;
}
虽然这已经不起作用了。我需要一个新的修复,我不是真的进入编码。
有人能解决这个问题吗?
上述解决方案来自此站点:
Hide other shipping methods when FREE SHIPPING is available
我猜自从他们更新了运输方式后,一些参数发生了变化。
我希望有人知道怎么解决这个问题。
3条答案
按热度按时间ghhkc1vu1#
请尝试用下面的代码段替换现有代码段。此代码段的详细信息在this article中描述。如果可以改进,请告诉我。
wooyq4lh2#
如果您已经删除了旧的送货方式(送货方式必须使用新的送货区设置),您可以使用以下代码片段来删除免费送货时的所有其他送货方式。(WooCommerce 2.6+):
从updated docs
x4shl7ld3#
好了,下面的代码将允许本地拾取与免费送货: