WooCommerce: Shipping By Quantity (Free)
WooCommerce: 买超过X件就免邮
这篇文章是分享我们是如何设定Woocommerce买X个数量就可以免邮费的方法。只要通过简单的PHP和跟着以下的步骤就可以做到了的。而且你还可以自己设定要买超过多少的数量就可以免邮了的哦。
1. 准备工作
在开始之前,需要确保Woocommerce里已经开始设定你的东马和西马的邮费,包括免邮的设定。如果没有设定的话是这个功能没有效果的。
2. 一些讲解 & Conditions
现在我们需要的邮费方式是
- 当邮寄西马时,买少过3件就就要付RM 10.00的邮费,多过3件就免邮
- 当邮寄东马时,买少过5件就就要付RM 15.00的邮费,多过5件就免邮
设定好WooCommerce的shipping后,我们接下来要找出Shipping method的代码了。
假设我的shipping method 的代码是
- 邮寄西马
- flat_rate:1
- free_shipping:2
- 邮寄东马
- flat_rate:3
- free_shipping:4
3. 告诉WooCommerce我们的要求
通过以下的Code就可以告诉Woocommerce这是我的需求了。当让这个是我的设定来的。而你们只要更改这些里的X就可以了 – [‘flat_rate:x‘],[‘free_shipping:x‘] 和(WC()->cart->get_cart_contents_count() xx)。
当客户是西马时,买少过3件(WC()->cart->get_cart_contents_count() <3),就显示邮费1([‘flat_rate:1’]),关闭邮费 2([‘free_shipping:2’])。当超过3件了后,就显示邮费2([‘free_shipping:2’])和关闭邮费1([‘flat_rate:1’])。
For East Malaysia这个部分的设定是当客户是东马时,买少过5件(WC()->cart->get_cart_contents_count() <5),就显示邮费3([‘flat_rate:3’]),关闭邮费4([‘free_shipping:4’])。当超过5件了后,就显示邮费4([‘free_shipping:4’])和关闭邮费3([‘flat_rate:3’])。
/**
* Shipping by Quantity | WooCommerce
*/
add_filter( 'woocommerce_package_rates', 'shennyq_wc_tiered_shipping', 9999, 2 );
function shennyq_wc_tiered_shipping( $rates, $package ) {
if ( WC()->cart->get_cart_contents_count() <3 ) {
if ( isset( $rates['flat_rate:1'] ) ) unset( $rates['free_shipping:2'] );
} else {
if ( isset( $rates['free_shipping:8'] ) ) unset( $rates['flat_rate:5'] );
}
/**
* For East Malaysia
*/
if ( WC()->cart->get_cart_contents_count() <5 ) {
if ( isset( $rates['flat_rate:3'] ) ) unset( $rates['free_shipping:4'] );
} else {
if ( isset( $rates['free_shipping:4'] ) ) unset( $rates['flat_rate:3'] );
}
return $rates;
}
4. 测试结果
植入了Coding了后,接下来就是先测试,看结果。

Q1: 这个Code要写在哪里? – Code Snippet
应该把这个Code Paste在哪里呢?其实我们可以安装一个叫Code Snippets的plugin来让你植入这些Coding的。 先去Plugins-> Add New 然后输入Code Snippets,找到图下的Logo的 Code Snippet, Install 然后Activate这个Plugin。

1.2. 进入Code Snippet
Activate了后,可以在我们的左手边这个Menu里找到 Snippets(如下图)。然后点击Add New。

1.3. Code Snippet
把上面的Coding Paste进来这里。Title放一个自己明白是什么的Title就可以了。Description 和 Tag要不要放都无所谓的。然后点击Save Change & Activate就可以了。

Q2. 该如何找到Flat_Rate/Free Shipping的代码?
来到Cart Page或Check Out Page那里。(如果在Cart Page没有看到邮费选项的话,可以去到Check Out Page那里输入地址了就会显示了的。)在Shipping那里Right Click然后点击Inspect。
点击Inspect后会出现一排的Coding。(注:这是Google chrome)。如果选项不是Elements(3),要选Elements了后才会显示这排Coding。

2.2. 该如何找到Flat_Rate/Free Shipping的X?
在那排Coding里找 <label for=”shipping_method_flat_rate…..”> ,然后用滑鼠指着那个Coding。若指到(2)出现蓝色Highlight,那么(1)就是该Shipping的 flat_rate号码了。
重复到你找完全部的代码。如果你有做东马的Shipping Rate,你需要把地址换去东马,再来找多一次东马区的Shipping 代码。
