我正在寻找一个免费的解决方案(来吧,Wordpress应该是开源的!),根据购物车价格,有一个运费选项。让我们说,如果购物车总金额为50美元及以上,我想免费发货,如果购物车总金额低于所需金额(即50美元),则需要收取4.99美元。
到目前为止我尝试了什么?
嗯,我能找到的最佳工作解决方案是为所有产品配置统一费率运费,如果金额大于X,则免费发货。问题在于这两个选项(免运费和统一运费) )当用户到达购物车时向用户显示。我不想要那个。
我只想告诉他们,如果他们的购物车金额低于50美元,则要支付4.99美元的运费等等。
到目前为止我尝试过的过滤器: woocommerce_package_rates
无法正常工作。它甚至不会执行。
我认为为此找到解决方案会很棒,因为我找不到任何解决方案。无论如何,这应该是任何电子商务解决方案的基本特征。
答案 0 :(得分:0)
正在搜索自己的插件。
看起来我找到了一个免费的插件: https://wordpress.org/plugins/woocommerce-table-rates/stats/
仅安装了它,但尚未测试它,因为我在DB中没有产品:P
答案 1 :(得分:0)
我正在寻找相同的选项,显然Woocommerce本身就涵盖了它: 关于functions.php的所有内容
WC 3.0 +的片段
/**
* Hide shipping rates when free shipping is available.
* Updated to support WooCommerce 2.6 Shipping Zones.
*
* @param array $rates Array of rates found for the package.
* @return array
*/
function my_hide_shipping_when_free_is_available( $rates ) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );
WC 2.5的片段
/**
* 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;
}
来源:https://docs.woocommerce.com/document/hide-other-shipping-methods-when-free-shipping-is-available/
我测试过并且工作正常,Woocommerce缓存擦除很重要,否则会一直显示所有选项。
答案 2 :(得分:-2)
Woocommerce有一个内置的"免费送货"运输方法,可以选择指定最小金额。应该是你的情况。