2016-08-18 52 views
0

我們的商店已設置爲僅在悉尼市內處理訂單。我們通過設置統一費率交付允許的郵政編碼來管理Woocommerce。 我們現在將配送延伸到其他地區,但只能通過電話(這些新的郵政編碼沒有在線訂單)。 Woocommerce顯示標準的沒有送貨信息,但我們會自定義這樣的,Woocommerce「無送貨方式」信息:基於Zipcode客戶自定義郵件輸入

  • 客戶在城市內輸入郵編,允許在線訂單。沒有 更改爲當前行爲。
  • 客戶輸入允許電話訂購的郵政編碼 ,顯示一條要求 客戶撥打電話的自定義消息。
  • 所有其他郵編,禁止訂單。

任何技術方向將不勝感激。

謝謝。

回答

1

下面的代碼應該可以幫到你。將兩個函數中的數組變量$ zip_array的值更改爲逗號分隔的郵政編碼列表,您希望顯示自定義郵件。另外,將$ custom_msg的字符串值更改爲您的自定義消息。更多詳情請參考this article

// For Cart Page. 
add_filter('woocommerce_no_shipping_available_html', 'wf_customize_default_message', 10, 1); 
// For Checkout page 
add_filter('woocommerce_cart_no_shipping_available_html', 'wf_customize_default_message', 10, 1); 
function wf_customize_default_message($default_msg) { 
    $zip_array = array(
     '30031', 
    ); 

    if (in_array(WC()->customer->get_shipping_postcode() , $zip_array)) { 
     $custom_msg = "Call us for quotation - 1-800-XXX-XXXX"; 
     if(empty($custom_msg)) { 
      return $default_msg; 
     } 
     return $custom_msg; 
    } 

    return $default_msg; 
} 

add_filter('woocommerce_package_rates', 'wf_remove_shipping_options_for_particular_zip_codes', 8, 2); 
function wf_remove_shipping_options_for_particular_zip_codes($rates, $package) 
{ 
    global $woocommerce; 
    $zip_array = array(
     '30031', 
    ); 
    if (in_array($woocommerce->customer->get_shipping_postcode() , $zip_array)) { 
     $rates = array(); 
    } 

    return $rates; 
} 
相關問題