2017-08-04 72 views

回答

1

下面是一個簡單的下面將在2上鉤功能做這個工作的方式:

  1. 汽車到購物車添加優惠券代碼啓用1號100個客戶「免費送貨」選項。
  2. 當「免運費」可用時隱藏其他運輸方式。

但你必須:

  1. 在WooCommerce>設置>航運,每個出貨區設置了 「免費送貨」 的方法,並選擇了這個選項之一:
    • 一有效的免費送貨優惠券
    • 最低訂單金額或優惠券
  2. 之前在WooCommerce>優惠券使用以下設置設置特殊優惠券代碼:
    • 常規>折扣類型:固定車
    • 常規>金額:0
    • 通用>允許免費送貨:啓用
    • 使用限制>每優惠券使用限制:100
    • 使用限制>每個用戶使用限制:1

下面是代碼:

// Auto apply "free_shipping" coupon for first hundred 
add_action('woocommerce_before_calculate_totals', 'auto_apply_free_shipping_coupon_first_hundred', 10, 1); 
function auto_apply_free_shipping_coupon_first_hundred($cart_object) { 

    // HERE define your free shipping coupon code 
    $coupon_code = 'summer';// 'freeship100'; 

    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    // Get an instance of the WC_Coupon object 
    $coupon_obj = new WC_Coupon($coupon_code); 

    // After 100 usages exit 
    if($coupon_obj->get_usage_count() > 100) return; 

    // Auto-apply "free shipping" coupon code 
    if (! $cart_object->has_discount($coupon_code) && is_cart()){ 
     $cart_object->add_discount($coupon_code); 
     wc_clear_notices(); 
     wc_add_notice(__('You have win Free shipping for the first 100 customers'), 'notice'); 
    } 
} 

// Hide Others Shipping methods when "Free shipping is available 
add_filter('woocommerce_package_rates', 'hide_others_when_free_shipping_is_available', 100); 
function hide_others_when_free_shipping_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; 
} 

代碼放在您的活動子主題(或主題)的function.php文件或也以任何插件文件。

此代碼已經過測試,適用於WooCommerce版本3+

相關問題