2017-10-14 7 views
0

私の要件は、選択した顧客のみが特定の製品を購入できるようにすることを許可することです。他の顧客はその製品を購入することはできません。woocommerce製品を特定の顧客にのみ購入できるようにする

私はすべての顧客の電子メールIDリストを持っています。チェックアウト時に顧客がEメールIDを請求先住所に追加すると、EメールIDが管理者のメールIDと一致する場合にのみ、その商品の購入が許可されます。

フロントエンドのチェックアウトページとアカウントページ私はログインと登録を無効にしています。だからすべての顧客はゲストです。だから、どのように可能なのユーザーの役割の制限とアウト?

この解決策を知っている人はいらっしゃいますか。

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

答えて

1

このコードを試すと、他のユーザーがサイトで購入することが制限されます。

add_action('woocommerce_after_checkout_validation' , 'add_user_email_restriction', 10, 2); 

function add_user_email_restriction($data, $errors) { 

    $valid_emails = get_available_email_addresses(); 
    // should be in array format 

    if(isset($data[ 'billing_email' ]) && !empty($data[ 'billing_email' ])) { 
     if(!in_array($data[ 'billing_email' ], $valid_emails)) { 
      $errors->add('email', __('You are not allowed to purchase.', 'text-domain')); 
     } 
    } 
} 
function get_available_email_addresses() { 
    return array('[email protected]','[email protected]'); 
} 
+0

特定の製品について上記のコードを設定するにはどうすればよいですか? – Ketan

+0

その場合、カートの内容を取り出し、その特定の製品がカートに入っているかどうか、また他の製品が許可されているかどうかを確認する必要があります。 –

+0

ありがとうございました。問題が修正されました。 – Ketan

関連する問題