2017-02-08 14 views
2

可能かどうかはわかりませんが、バルセロナにはいくつかのお支払い方法を追加する必要があります。お客様の住所に基づいてお支払い方法を有効にする

私たちの考えは、顧客がバルセロナ地区(カタルーニャ)に住んでいる場合、スペインの他の地域とは異なるクレジットカードのお支払い方法と銀行振込み口座が表示されることです。

これはWooCommerceで可能ですか?

ありがとうございました。

答えて

3

あなたはWooCommerceにこのような機能を有効にする場合、お客様はそれをチェックアウトプロセスの前に、彼らに町の場所を取得する唯一の方法だと、最初のを登録しにログインする必要があります。

また、登録者のユーザーだけがチェックアウトできるように、WooCommerceの一部の設定を変更する必要があります。

次に、登録プロセスでいくつかの必須フィールドを町、郵便番号、国として追加する必要があります。

これが完了したら、登録された顧客フィールドに基づいて支払いゲートウェイを有効/無効にすることは簡単になります。この顧客情報に基づいて支払いゲートウェイ/方法について
How to add custom fields in user registration on the “My Account” page

2)、あなたがwoocommerce_available_payment_gatewaysフィルターフックでカスタムフック機能を使用することができます:登録フィールドをカスタマイズするための

1)

add_filter('woocommerce_available_payment_gateways', 'custom_payment_gateways_process'); 
function custom_payment_gateways_process($available_gateways) { 

    if (is_admin() || !is_user_logged_in()) 
     return $available_gateways; 

    $current_user_id = get_current_user_id(); 
    $user_meta = get_user_meta($current_user_id); 

    // User City, Postcode, State and Country code 
    $user_city = $user_meta['billing_city']; 
    $user_postcode = $user_meta['shipping_postcode']; 
    $user_State = $user_meta['shipping_state']; 
    $user_country = $user_meta['shipping_country']; 

    Disable Cash on delivery ('cod') method example for customer out of spain: 
    if (isset($available_gateways['cod']) && $user_country != 'ES') { 
     unset($available_gateways['cod']); 
    } 

    // You can set many conditions based on the user data 

    return $available_gateways; 
} 

このコードは単なる例であり、対象の支払い方法/ゲートウェイの正しい条件の中に設定する必要があります。

コードは、アクティブな子テーマ(またはテーマ)のfunction.phpファイル、またはすべてのプラグインファイルに入ります。

+0

あります。 '$ current_user_id = get_current_user_id()'にコメントがありません。また、コメントは "Disable Cash on delivery ..."となります。しかし、投稿は6文字以下で編集できません。 – rlcabral

+0

@rlcabralありがとう...私はちょうど私の間違いを更新しました。 :) – LoicTheAztec

関連する問題