我需要用+370开始生成woocommerce电话号码...我试过这个功能:
add_action('woocommerce_checkout_update_order_meta', 'dd_Testval');
function dd_Testval() {
$billing_phone = filter_input(INPUT_POST, 'billing_phone');
if (strlen(trim(preg_replace('[\+]\d{2}[\(]\d{2}[\)]\d{4}[\-]\d{4}', '', $billing_phone))) > 0) {
wc_add_notice(__('Invalid <strong>Phone Number</strong>, please check your input.'), 'error');
}
}
它没有任何影响。
有什么建议?
正确的方法是:
woocommerce_checkout_process
动作钩子中的自定义函数代替。preg_match()
而不是preg_replace()
现在正则表达式将检查电话号码是否正在+370开始。它将接受以下内容:仅限数字,空格和连字符,最小总长度为9个字符。
add_action('woocommerce_checkout_process', 'custom_checkout_field_process');
function custom_checkout_field_process() {
// Check the number phone
if ( isset($_POST['billing_phone']) && ! preg_match("/^(\+370)?[0-9 \-]{5,}/i", $_POST['billing_phone']) )
wc_add_notice(__('Invalid <strong>Phone Number</strong>, please check your input.'), 'error');
}
此代码位于活动子主题(或主题)的function.php文件中,或者也可以放在任何插件文件中。
经过测试和工作