gpt4 book ai didi

php - 只允许在特定的 Woocommerce 结账字段上输入字母

转载 作者:行者123 更新时间:2023-12-01 01:00:06 25 4
gpt4 key购买 nike

尝试在 Woocommerce 结帐字段“名字”中强制仅使用字母(也可能包含非英文字符)。我们经常有老客户,因此我们需要提前控制用户输入并防止错误。

我做错了什么?

注意:我知道自定义验证线程 Custom validation of WooCommerce checkout fields...但感觉这应该更简单和具体的解决方案?

使用 Businessbloomers 的代码仅在邮政编码字段中强制使用数字(工作正常)。来源:https://businessbloomer.com/woocommerce-change-input-type-checkout-fields/

function bbloomer_change_checkout_field_input_type() {
echo "<script>document.getElementById('billing_postcode').type = 'number';
</script>";
}
add_action( 'woocommerce_after_checkout_form', 'bbloomer_change_checkout_field_input_type');

对于 Fname,我将输入类型更改为“字母”..但没有结果(仍然可以输入数字)。将“类型”交换为“模式”,如下所示,但没有运气。

function JBC_Force_letters_in_fname_field() {
echo "<script>document.getElementById('billing_first_name').pattern='[A- Za-z]';</script>";

}
add_action( 'woocommerce_after_checkout_form', 'JBC_Force_letters_in_fname_field');
  • 期待:大卫
  • 获取/允许:Dav1D3

最佳答案

以下内容将从账单和运送名字和姓氏结帐字段中删除数字字符和一些标点符号,并且还将处理邮政编码:

add_action( 'wp_footer', 'checkout_field_name_validator_script');
function checkout_field_name_validator_script() {
// Only on checkout page
if( ! ( is_checkout() && ! is_wc_endpoint_url() ) ) return;
?>
<script>
jQuery(function($){
var b = '#billing_', s = '#shipping_', f = 'first_', l = 'last_',
n = 'name', p = 'postcode', c = ',';

// Postcode fields
$(b+p+c+s+p).bind('keyup blur',function(){
$(this).val($(this).val().replace(/[^0-9]+/,''));
});

// First and Last name fields
$(b+f+n+c+b+l+n+c+s+f+n+c+s+l+n).bind('keyup blur',function(){
$(this).val($(this).val().replace(/[0-9.,;:?!]+/,''));
});
});
</script>
<?php
}

代码位于事件子主题(或事件主题)的 function.php 文件中。经过测试并有效。

关于php - 只允许在特定的 Woocommerce 结账字段上输入字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53909349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com