Как проверить мое пользовательское поле проверки WooCommerce в конце? - PullRequest
0 голосов
/ 12 июня 2018

Я создал настраиваемое поле оформления заказа для WooCommerce.Я также добавил валидацию.Но после нажатия на заказ на размещение, мои пользовательские поля также проверили, проверено ли оно или нет.Но я хочу проверить, является ли мое пользовательское поле действительным или нет в конце.Я имею в виду, все остальные обязательные поля будут проверены, и после этого будет проверено мое настраиваемое поле.Ниже моя структура кода:

function otp_func($checkout) {
  .............................
}
  add_action( 'woocommerce_after_checkout_billing_form', 'otp_func', 10 );
  add_action('woocommerce_checkout_process','my_custom_checkout_field_process');
  function my_custom_checkout_field_process() {
        ..........................
   }

И ниже мой код проверки, который я хочу запустить в конце, если все остальные поля успешно подтвердят:

if (!$_POST['otp_field']) {
    wc_add_notice( __( 'OTP field is blank' ), 'error' );
} else if ( $_POST['otp_field'] != $otp_verify_report ) {
    wc_add_notice( __( 'Invalid OTP or OTP has been expired!' ), 'error' );
}

Ответы [ 2 ]

0 голосов
/ 14 июня 2018

Используйте приведенный ниже код для проверки нового поля.

Добавить код ниже в теме functions.php

add_action( 'woocommerce_after_checkout_validation', 'wc_check_confirm_password_matches_checkout', 10, 2 );

function wc_check_confirm_password_matches_checkout( $posted ) {
    $checkout = WC()->checkout;
    if ( ! empty( $posted['otp_field'] ) ) {
        wc_add_notice( __( 'OTP field is blank' ), 'error' );
    } else if ( $posted['otp_field'] != $otp_verify_report ) {
        wc_add_notice( __( 'Invalid OTP or OTP has been expired!' ), 'error' );
    }
}
0 голосов
/ 13 июня 2018

Вы можете попробовать:

function customise_checkout_field_process()
{
    if (!$_POST['the_customised_field_name']) wc_add_notice(__('the warning message') , 'error');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...