0

当店は、シドニー市内でのみ注文を処理するように設定されています. これは、Woocommerce で定額配送に許可された郵便番号を設定することで管理します。現在、他の地域への配送を拡大していますが、電話のみです (これらの新しい郵便番号のオンライン注文はありません)。Woocommerce は標準の No Shipping メッセージを表示しますが、そのようにカスタマイズします。

  • 顧客は市内の郵便番号を入力し、オンライン注文を許可します。現在の動作に変更はありません。
  • 顧客は、電話注文が許可されている郵便番号を入力し、顧客に電話をかけるように求めるカスタマイズされたメッセージを表示します。
  • 他のすべての郵便番号は、注文を許可しません。

技術的な方向性は大歓迎です。

ありがとう。

4

1 に答える 1

1

以下のコードが役立ちます。両方の関数の配列変数 $zip_array の値を、カスタム メッセージを表示する郵便番号のカンマ区切りのリストとして変更します。また、$custom_msg の文字列値をカスタム メッセージに変更します。詳細については、この記事を参照してください。

// 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;
}
于 2016-08-19T11:20:15.440 に答える