Woocommerce 如何在结尾验证我的自定义电子商务签出字段?
我已经为WooCommerce创建了一个自定义签出字段。我还添加了验证。但在单击PlaceOrder之后,我的自定义字段也会检查它是否经过验证。但是,我想在最后检查我的自定义字段是否有效。我的意思是,所有其他必填字段都将被检查,然后我的自定义字段将被检查。 下面是我的代码结构:Woocommerce 如何在结尾验证我的自定义电子商务签出字段?,woocommerce,hook-woocommerce,Woocommerce,Hook Woocommerce,我已经为WooCommerce创建了一个自定义签出字段。我还添加了验证。但在单击PlaceOrder之后,我的自定义字段也会检查它是否经过验证。但是,我想在最后检查我的自定义字段是否有效。我的意思是,所有其他必填字段都将被检查,然后我的自定义字段将被检查。 下面是我的代码结构: function otp_func($checkout) { ............................. } add_action( 'woocommerce_after_checkout_bil
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' );
}
您可以尝试以下方法:
function customise_checkout_field_process()
{
if (!$_POST['the_customised_field_name']) wc_add_notice(__('the warning message') , 'error');
}
使用以下代码验证新字段 在theme 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' );
}
}
我不明白它是什么类型的代码:如果(!$\u POST['the'u customized\u field\u name'])wc\u add\u notice('the warning message'),'error');而且我不想逐个检查是否为必填字段。要验证自定义字段,仅此字段无效。在我使用add_操作(“woocommerce_checkout_process”、“my_custom_checkout_field_process”)时,它也在做同样的事情;。但我只想在所有必填字段都有效的情况下对其进行验证。它将不起作用。如果所有其他必填字段都未验证,那么它甚至不应该检查自定义字段的验证。仅当验证了其他必填字段时,才检查自定义字段的验证。