2016-10-03 9 views
1

国際顧客への通知、私は以下のコードを持っています?私は各国を挙げる必要はありませんし、カナダは素晴らしいスタートになるでしょう。WooCommerceの出荷、私はチェックアウト時に出荷通知を追加する必要が

私は$woocommerce->customer->get_shipping_country()を見たことがありますが、私のfunctions.phpでそれを実装する方法は完全にはわかりません.Woocommerceは各国でどのようなコードを使用していますか?

私を助けてくれてありがとう!

答えて

2

は、内部にいくつかのjQueryを使ってあなたの再訪コードです。ここで

はそのコードです:

function notice_shipping(){ 
    ?> 

    <script> 
     jQuery(document).ready(function($){ 

      // Set the country code (That will NOT display the message) 
      var countryCode = 'FR'; 

      var adressType = 'billing'; 

      // Detecting If shipping Country is going to be used 
      $('#ship-to-different-address-checkbox').click(function(){ 

       if($('.shipping_address').css('display') == 'none'){ 
        adressType = 'billing'; 
       } else { 
        adressType = 'shipping'; 
       } 
       // console.log($adressType); 
      }); 

      // Showing or hidding the message 
      $('select#billing_country, select#shipping_country').change(function(){ 

       if(adressType == 'billing') { 
        selectedCountry = $('select#billing_country').val(); 
       } 
       else if(adressType == 'shipping') { 
        selectedCountry = $('select#shipping_country').val(); 
       } 

       if(selectedCountry == countryCode){ 
        $('.shipping-notice').hide(); 
        // console.log('hide'); 
       } 
       else { 
        $('.shipping-notice').show(); 
        // console.log('show'); 
       } 
       // console.log(selectedCountry); 
      }); 
     }); 
    </script> 

    <?php 

    echo '<p id="allow" class="shipping-notice" style="display:none">Please allow 5-10 business days for delivery after order processing.</p>'; 
} 
add_action('woocommerce_before_order_notes', 'notice_shipping'); 

このコードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルに入るか、また、どのプラグインファイルに。

このコードはテスト済みで、完全に機能しています。

see here a raw demo(一時)です。 ここでチェックアウト時にメッセージを表示しない国はフランスです。

+0

ニース!私はJSがもっと良い解決策かもしれないと思っていたが、それを肉付けする時間はなかった。 – helgatheviking

+0

@helgathevikingありがとう:)私はまた、新しく非常に複雑な新しいWooCommerceプロジェクトにちょっと忙しかった。だから私の答えは遅く到着したのです。あなたの答えは素晴らしいです! – LoicTheAztec

+0

うわー、ありがとう!まさに私が必要なもの! – Xenocide122

2

woocommerce_before_order_notesでお客様の住所を知っているとは思われません。あなたは次のことを試すことができますが、顧客が請求先住所を提出するまで機能するかどうかはわかりません。顧客は常に登録されていない、とあなたは海運国として選ばれるために何が起こっているかの国、すべての場合には分からないので、ここで

// adds order note at checkout page  
function notice_shipping($checkout) { 
    $country = WC()->customer->get_shipping_country(); 
    if($country != 'US'){ 
     echo '<p id="allow">Please allow 5-10 business days for delivery after order processing.</p>'; 
    } 
} 

add_action('woocommerce_before_order_notes', 'notice_shipping'); 
+0

ああ、まあまあです。私はそれを示すためのより良い場所を探す必要があります。助言がありますか?私はフックを見上げて朝に考えなければならない。私は私の恋人から離れているので、私は朝までテストすることができません。ありがとう! – Xenocide122

関連する問題