0

我的要求是,我想允许只允许选定的客户可以购买一些特定的产品。其他客户不能购买该产品。

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

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

任何人都知道这个解决方案然后请帮助我。

谢谢。

4

1 回答 1

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('test@gmail.com','test2@gmail.com');
}
于 2017-10-14T17:53:42.663 回答