WooCommerce: Free 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 的代码是

  • 邮寄西马
    1. flat_rate:1
    2. free_shipping:2
  • 邮寄东马
    1. flat_rate:3
    2. 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 代码。

Similar Posts

Leave a Reply

Your email address will not be published.