【发布时间】:2019-02-14 23:05:11
【问题描述】:
对于 WooCommerce 结帐结算字段,如何使此字段需要 9 个数字并插入破折号以进行正确的电话格式设置?例如,不是在电话号码字段中输入 3053453212,而是显示:(305-345-3212)
【问题讨论】:
标签: php wordpress woocommerce format checkout
对于 WooCommerce 结帐结算字段,如何使此字段需要 9 个数字并插入破折号以进行正确的电话格式设置?例如,不是在电话号码字段中输入 3053453212,而是显示:(305-345-3212)
【问题讨论】:
标签: php wordpress woocommerce format checkout
基于“Formatting a phone number in a form using jquery”应答码,以下是格式化 Woocommerce 计费电话的方法:
add_action('wp_footer', 'format_checkout_billing_phone');
function format_checkout_billing_phone() {
if ( is_checkout() && ! is_wc_endpoint_url() ) :
?>
<script type="text/javascript">
jQuery( function($){
$('#billing_phone').on( 'input focusout', function() {
var p = $(this).val();
p = p.replace(/[^0-9]/g, '');
p = p.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
$(this).val(p);
});
});
</script>
<?php
endif;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。
【讨论】:
你可以试试这个
/**
* Require 9 digit number. Format to 000-000-0000 at submission
* stackoverflow/54700465
*/
add_filter( 'woocommerce_billing_fields', 'wc_filter_phone', 10, 1 );
function wc_filter_phone( $address_fields ) {
$address_fields['billing_phone']['min-lenght="9"'];
$format_number = preg_replace("/^(\d{3})(\d{3})(\d{4})$/", "$1-$2-$3", $address_fields);
return $format_number;
}
// End
【讨论】:
另一种对我有用的方法is given here。
$_POST['billing_phone'] = preg_replace("/^(\d{3})(\d{3})(\d{4})$/", "$1-$2-$3", $number);
【讨论】: