在 woocommerce 结帐页面中验证 phone 个数字
Validate phone number in woocommerce checkout page
我想将自定义验证添加到 woocommerce 结帐页面中的 phone 号码。我该怎么做?
默认情况下,woocommerce 已经有正则表达式验证。最简单的方法是通过 jquery 验证它。
编辑:尽量不要对 woocommerce 核心进行任何更改,因为它们将在下次更新时被覆盖。试试这个代码
// Hook in
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
$fields['shipping']['shipping_phone'] = array(
'label' => __('Phone', 'woocommerce'),
'placeholder' => _x('Phone', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
在我看来,无需覆盖默认的 Woocommerce 字段,也无需使用 Javascript 验证。
您可以添加自定义验证,该验证将添加到 Woocommerce 的默认计费 phone 字段验证中,挂接到提交结帐后触发的操作。
这是我刚刚为客户实现的代码。
// 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
变量,或者您自己的自定义检查字段,当然,在您正确设置它们之后,但这是另一个话题:)
希望对您有所帮助。
我想将自定义验证添加到 woocommerce 结帐页面中的 phone 号码。我该怎么做?
默认情况下,woocommerce 已经有正则表达式验证。最简单的方法是通过 jquery 验证它。
编辑:尽量不要对 woocommerce 核心进行任何更改,因为它们将在下次更新时被覆盖。试试这个代码
// Hook in
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
$fields['shipping']['shipping_phone'] = array(
'label' => __('Phone', 'woocommerce'),
'placeholder' => _x('Phone', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
在我看来,无需覆盖默认的 Woocommerce 字段,也无需使用 Javascript 验证。
您可以添加自定义验证,该验证将添加到 Woocommerce 的默认计费 phone 字段验证中,挂接到提交结帐后触发的操作。
这是我刚刚为客户实现的代码。
// 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
变量,或者您自己的自定义检查字段,当然,在您正确设置它们之后,但这是另一个话题:)
希望对您有所帮助。