Woocommerce结帐印度手机号码验证

时间:2018-12-07 09:54:16

标签: wordpress woocommerce checkout

我在woocommerce结帐字段中添加了这段代码以验证移动电话号码,正则表达式也可以正常工作,但是这没什么问题 1)当客户输入错误的手机号码wp_add_notice没有向客户打印错误消息 2)当客户输入正确的手机号码时,会显示错误消息,然后客户转到其他付款方式 摘要:不会为我想要的错误手机号码显示错误消息。

// Custom validation for Billing Phone checkout field
add_action('woocommerce_checkout_process', 'custom_validate_billing_phone');
function custom_validate_billing_phone() {
    $is_correct = preg_match('/^[6-9]\d{9}$/', $_POST['billing_phone']);
    if ( $_POST['billing_phone'] && !$is_correct) {
        wc_add_notice( __( 'The Mobile No. should be <strong>10 digits with starting 6,7,8,9</strong>.Try Again.' ), 'error' );
    }
}

1 个答案:

答案 0 :(得分:0)

我认为无需覆盖默认的Woocommerce字段,也无需使用Javascript验证。 您可以添加一个自定义验证,该验证将添加到Woocommerce的默认账单电话字段验证中,从而与提交结帐后触发的操作挂钩。

这是我刚刚为客户端实现的代码。

// Custom validation for Billing Phone checkout field
add_action('woocommerce_checkout_process', 'custom_validate_billing_phone');
function custom_validate_billing_phone() {
    $is_correct = preg_match('/^[0-9]{6,20}$/', $_POST['billing_phone']);
    if ( $_POST['billing_phone'] && !$is_correct) {
        wc_add_notice( __( 'The Phone field should be <strong>between 6 and 20 digits</strong>.' ), 'error' );
    }
}

当然,除了我的preg_match外,您还可以检查其他任何内容,并根据需要调整条件代码。

当然,在正确设置它们之后,您还可以通过检查右边的$ _POST变量或您自己的自定义结帐字段来为其他默认字段添加自定义验证,但这是另一个主题:)

希望这会有所帮助。