У меня есть WordPress, работающий с WooCommerce.
Я добавил поле телефона в форму входа в систему, но я хочу добавить проверку, если номер существует или неправильный, и для этого я добавляю функцию woocom_validate_extra_login_fields. Но это не работает.
Примечание: тот же процесс работал для регистрационной формы
// add validation for the custum field "phone" to login form
function woocom_validate_extra_login_fields( $billing_phone, $username, $email, $validation_errors ){
if (isset($_POST['billing_phone']) && empty($_POST['billing_phone']) ) {
$validation_errors->add('billing_phone_error', __( 'Phone is required!', 'woocommerce'));
}
elseif( isset($_POST['billing_phone']) && !is_numeric($_POST['billing_phone'] )) {
$validation_errors->add('billing_phone_error', __( 'Please enter your number in the phone field', 'woocommerce'));
}
elseif( isset($_POST['billing_phone']) && strlen($_POST['billing_phone']) != 10) {
$validation_errors->add('billing_phone_error', __( 'Please enter a correct phone number', 'woocommerce'));
}
global $wpdb;
$billing_phone = $_POST['billing_phone'];
$results = $wpdb->get_results('select * from `aed_usermeta` where meta_key = "billing_phone" and meta_value = "'.$billing_phone.'"');
if ( !$results ) {
$validation_errors->add( 'billing_phone_error', __( 'Phone number not exists', 'woocommerce' ) );
}
return $validation_errors;
}
add_action( 'process_login' , 'woocom_validate_extra_login_fields' , 10, 3 );