Проверка сравнения полей электронной почты в кассе Woocommerce - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть настраиваемое поле с именем gift, и я сейчас пытаюсь проверить его по полю billing_email. Другими словами, если клиент заполняет поле подарка и оно совпадает с адресом электронной почты для выставления счета, при нажатии кнопки «завершить заказ» должна отображаться ошибка.

Это не работает. Есть идеи почему? Вот код.

// verify that billing email and gift email are not the same
function billing_email_and_gift_validation( $posted ) {
$checkout = WC()->checkout;
if ( strcmp( $posted['billing_email'] == $posted['gift'] )) {
wc_add_notice( __( 'To send as gift, you cannot send it to yourself. That\'s the point of a gift, is it not?', 'woocommerce' ), 'error' ); } }
add_action( 'woocommerce_after_checkout_validation', 'billing_email_and_gift_validation', 10, 2 );

Спасибо всем, если кто-то может помочь.

1 Ответ

0 голосов
/ 18 ноября 2018

Я объединил эту проверку с проверкой подарка из этого кода вопроса, который вы сделали ранее, поэтому вы удалите его из своего действительного кода, поскольку эта функция обрабатывает их обоих:

add_action('woocommerce_after_checkout_validation', 'gift_custom_field_validation', 20, 2 );
function gift_custom_field_validation( $data, $errors ) {
    // Validating that "Gift" is not empty when selected
    if( isset($_POST['gift_msg']) && isset($_POST['gift']) && empty($_POST['gift']) )
        $errors->add( 'gift', __( "You've chosen to send this as a gift, but did not submit a recipient email address.", "woocommerce" ) );

    // Validating that "Gift" imputed email is different from billing email
    if ( isset($_POST['gift']) && $data['billing_email'] === $_POST['gift'] ) {
        $errors->add( 'gift', __( "To send as gift, you cannot send it to yourself. That's the point of a gift, isn't it?", "woocommerce" ) );
    }
}

Код входит вФайл function.php вашей активной дочерней темы (active theme).Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...