2017-10-14 107 views
0

我的要求是,我想允許只允許選定的客戶購買一些特定的產品。其他客戶不能購買該產品。允許woocommerce產品只爲選定的客戶購買

我有這個所有客戶的電子郵件ID列表。在結帳時,客戶在帳單地址上添加電子郵件ID,然後如果該電子郵件ID與管理員側郵件ID相匹配,則只允許購買該產品。

但是在結賬頁面和我的帳戶頁面的前端方面我已禁用登錄和註冊。所以所有的顧客都是客人。所以如果沒有用戶角色限制,它有可能如何?

任何人都知道這個解決方案,那麼請幫助我。

謝謝。

回答

1

您可以試試這段代碼,它會限制其他用戶在您的網站上購買。它只會允許您的電子郵件ID列表上的客戶購買,

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

相關問題