仅允许为选定的客户购买 woocommerce 产品

Allow woocommerce product to purchase for selected customer only

我的要求是,我想允许只允许选定的客户购买某些特定产品。其他客户无法购买该产品。

我有所有客户的电子邮件 ID 列表。当客户在结帐时将他们的电子邮件 ID 添加到账单地址时,如果该电子邮件 ID 与管理员端邮件 ID 匹配,则只允许购买该产品。

但是结帐页面和我的帐户页面的前端已禁用登录和注册。所以所有的顾客都是客人。那么没有用户角色限制怎么可能?

谁知道这个解决方案,请帮助我。

谢谢。

您可以试试这个代码,它会限制其他用户在您的网站上购买。它将只允许您的电子邮件 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('test@gmail.com','test2@gmail.com');
}