Разрешить покупку продуктов WooCommerce только для выбранного клиента
Мое требование заключается в том, что я хочу разрешить, чтобы только выбранный клиент мог приобрести некоторые конкретные продукты. Другой клиент не может купить этот продукт.
У меня есть список адресов электронной почты всех клиентов. Когда во время оформления заказа клиент добавляет свой идентификатор электронной почты на адрес для выставления счета, то, если этот идентификатор электронной почты совпадает с идентификатором почты на стороне администратора, разрешается только покупать этот продукт.
Но передняя сторона на странице проверки и моей учетной записи у меня отключить вход и регистрацию. Таким образом, весь клиент - гость. Итак, без ограничения роли пользователя, как это возможно?
Кто-нибудь знает это решение, пожалуйста, помогите мне.
Благодарю.
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('test@gmail.com','test2@gmail.com');
}