2017-10-14 96 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

相关问题