Woocommerce 如何在结尾验证我的自定义电子商务签出字段?

Woocommerce 如何在结尾验证我的自定义电子商务签出字段?,woocommerce,hook-woocommerce,Woocommerce,Hook Woocommerce,我已经为WooCommerce创建了一个自定义签出字段。我还添加了验证。但在单击PlaceOrder之后,我的自定义字段也会检查它是否经过验证。但是,我想在最后检查我的自定义字段是否有效。我的意思是,所有其他必填字段都将被检查,然后我的自定义字段将被检查。 下面是我的代码结构: function otp_func($checkout) { ............................. } add_action( 'woocommerce_after_checkout_bil

我已经为WooCommerce创建了一个自定义签出字段。我还添加了验证。但在单击PlaceOrder之后,我的自定义字段也会检查它是否经过验证。但是,我想在最后检查我的自定义字段是否有效。我的意思是,所有其他必填字段都将被检查,然后我的自定义字段将被检查。 下面是我的代码结构:

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”)时,它也在做同样的事情;。但我只想在所有必填字段都有效的情况下对其进行验证。它将不起作用。如果所有其他必填字段都未验证,那么它甚至不应该检查自定义字段的验证。仅当验证了其他必填字段时,才检查自定义字段的验证。