WooCommerce: Free Shipping By Quantity (Free)

WooCommerce: 买超过X件就免邮

这篇文章是分享我们是如何设定Woocommerce买X个数量就可以免邮费的方法。只要通过简单的PHP和跟着以下的步骤就可以做到了的。而且你还可以自己设定要买超过多少的数量就可以免邮了的哦。

还有另外一种方法就是下载Plugin。当然这里我也会和你分享哪些Plugins是有这个功能的。

1. 准备工作 – PHP的方式

在开始之前,我们需要在Woocommerce里已经开始设定你的东马和西马的邮费,包括免邮的设定(如果已经设定了就可以Skip掉这里)。因为没有做好这些邮费的设定是做到的,所以一定要设定好邮费和Free Shipping的设定先。

2. 设置Conditions & 一些讲解

假设我的网店的邮费的收费和免邮的条件是;-

  • 寄西马时; – 买少过3件就就要付RM 10.00的邮费,多过3件就免邮
  • 寄东马时; – 买少过5件就就要付RM 15.00的邮费,多过5件就免邮

这是我的网店的Shipping 条件。请大家依据自己的shipping条件来设定

先到Woocommerce -> Settings -> Shipping这里依据我们刚刚做的设定,设定东马Shipping feesFree Shipping以及一个西马Shipping FeesFree Shipping

先设定好这些Shipping的原因是因为我们需要Woocommerce 先找到这些各别Shipping的Label No先,然后把我们找到的Shipping Label No 放进去一下的Coding里。这里要注意的是每个人的Shipping Label 的Number是不一样的,所以等下下面的Code里的Shipping Label的号码要换掉的。

3. 该如何找到Flat_Rate/Free Shipping的代码?

来到Cart Page或Check Out Page那里。(如果在Cart Page没有看到邮费选项的话,可以输入你的post code或在Check Out Page那里输入地址了就会显示了的。)在Shipping那里Right Click然后点击Inspect。要记得Add 产品进Cart先,不然是不会显示出来的。

Shipping 的选项(1)那里,滑鼠右键点击一次。然后回看到(2),选Inspect。过后Chrome的右手边会出现如上图的Coding页面。如果Inspect后的不是显示如上图,要去选Elements(3)了后才会显示这排Coding。

(注:这是Google chrome。如果是用Edge或其他的Browser,那个Layout会有点不一样的)
(注2:有些人的Chrome按了Inspect 后,那个Coding的页面是显示在Browser的下方。)

在那排Coding里找 <label for=”shipping_method_flat_rate…..”> ,然后用滑鼠指着那个Coding。指到(2)出现蓝色Highlight,那么(1)就是该Shipping的 flat_rate号码了。比如这个GDex WM: RM10.00的shipping label 就是 【flat_rate:5】。我们就这样以此类推的找Free Shipping的Label了。不过Free Shipping的Shipping Label是start with 【free_shipping:X】

找完西马的后,要记得找东马的。因为西马和东马的shipping label是不一样的。

4. 告诉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 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就可以了。

Leave a Reply

Your email address will not be published. Required fields are marked *