我为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' );
}
答案 0 :(得分:0)
您可以试试:
function customise_checkout_field_process()
{
if (!$_POST['the_customised_field_name']) wc_add_notice(__('the warning message') , 'error');
}
答案 1 :(得分:0)
使用以下代码验证新字段。
在主题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' );
}
}