2016-08-18 2 views
0

저희 가게는 시드니 시내에서만 주문을 처리하도록 설정되어 있습니다. 우리는 Woocommerce에서 Flat Rate Delivery에 허용 된 우편 번호를 설정하여이를 관리합니다. 이제는 다른 지역으로 배달을 연장하고 있지만 전화로만 가능합니다 (새 우편 코드에 대한 온라인 주문이 없음). Woocommerce는 표준 No Shipping 메시지를 표시하지만 사용자 정의 할 것입니다.Woocommerce "배송 방법 없음"메시지 : 고객이 입력 한 우편 번호를 기반으로 메시지를 사용자 정의하십시오.

  • 고객이 도시 내에 우편 번호를 입력하고 온라인 주문이 가능합니다. No 현재 동작으로 변경됩니다.
  • 고객이 전화 주문이 허용되는 우편 번호를 입력하면 고객에게 전화하도록 요청하는 사용자 정의 메시지를 표시합니다.
  • 다른 모든 우편 번호는 주문을 허용하지 않습니다.

모든 기술적 인 방향에 크게 감사하겠습니다.

감사합니다.

답변

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; 
}