我正在尝试验证我们的一个WooCommerce结帐字段,即billing_address_1。
现在,该字段将接受任何地址,但它应该在处理之前检查地址字段是否包含数字。不确定如何在WooCommerce中完成这项工作。我也会接受任何非WooCommerce的其他解决方案。
网站是:https://www.prikkabelled.nl
您应该在结帐时查看此字段:
答案 0 :(得分:0)
您可以为此使用自定义验证。根据您的要求更改以下代码:
add_action('woocommerce_checkout_process', 'is_phone');
function is_phone() {
$addr1 = $_POST['billing_address_1'];
// check condition if number not found in address
if(false)
wc_add_notice( __( 'Address does not contain a number.' ), 'error' );
}
答案 1 :(得分:0)
以下是您可以通过functions.php
添加到结帐进度的步骤add_action('woocommerce_checkout_process', 'custom_checkout_field_check');
function custom_checkout_field_check() {
// Check if set, if its not set add an error.
if ( $_POST['billing_address_1'] && strpbrk($_POST['billing_address_1'], '1234567890') !== FALSE )
wc_add_notice( __( 'Your address field contains numeric value' ), 'error' );
}
答案 2 :(得分:0)
这是我正在寻找的答案,我直接来自WooCommerce开发者社区。 p>
// Check if address field contains house number otherwise provide error message
add_action( 'woocommerce_after_checkout_validation', 'validate_checkout', 10, 2);
function validate_checkout( $data, $errors ){
if ( ! preg_match('/[0-9]/', $data[ 'billing_address_1' ] ) ){
$errors->add( 'address', 'Sorry, but the address you provided does not contain a house number.' );
}
}