Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将maxlength自定义字段添加到电子商务签出页面_Php_Wordpress_Woocommerce_Checkout_Custom Fields - Fatal编程技术网

Php 将maxlength自定义字段添加到电子商务签出页面

Php 将maxlength自定义字段添加到电子商务签出页面,php,wordpress,woocommerce,checkout,custom-fields,Php,Wordpress,Woocommerce,Checkout,Custom Fields,我在WooCommerce结账表单中添加了一个新的电话号码字段 除maxlength=“10”外,所有功能都正常工作。添加代码段后,当我检查元素时,它显示maxlength=10,但phone字段允许我键入n个字符 我做错什么了吗 下面是我在functions.php add_action('woocommerce_在_checkout_billing_form之后,'custom_checkout_field'); 函数自定义检查字段($checkout) { woocommerce\u表单\

我在WooCommerce结账表单中添加了一个新的电话号码字段

除maxlength=“10”外,所有功能都正常工作。添加代码段后,当我检查元素时,它显示maxlength=10,但phone字段允许我键入n个字符

我做错什么了吗

下面是我在
functions.php

add_action('woocommerce_在_checkout_billing_form之后,'custom_checkout_field');
函数自定义检查字段($checkout)
{
woocommerce\u表单\u字段('billing\u phone\u 2',数组(
'类型'=>'编号',
“maxlength”=>“10”,
'id'=>'billing\u phone\u 2',
“类”=>数组(
'输入文本表单行宽'
) ,
'必选'=>'必选'==获取选项('woocommerce\u checkout\u phone\u field','必选'),
“标签”=>“‘电话2’”,
“占位符”=>”,
) ,
$checkout->get_value('billing_phone_2');
}

对于
类型
您可以使用
电话
,对于
最大长度
则无需将数字放在引号之间

所以你得到:

//在帐单表单后显示自定义签出字段
功能操作\u结账后的商业\u账单\u表单($checkout){
woocommerce\u表单\u字段('billing\u phone\u 2',数组(
'类型'=>'电话',
“maxlength”=>10,
'class'=>数组('form row wide'),
“必需”=>true,
'label'=>\('Phone 2','woocommerce'),
'占位符'=>\('我的占位符','woocommerce'),
),$checkout->get_value('billing_phone_2');
}
添加行动('woocommerce'在结帐后,'woocommerce'在结帐后,'woocommerce'在结帐后,'10,1');
可选:对自定义(必需)字段进行一些验证

//自定义签出字段验证
函数操作\u商业\u签出\u过程(){
//伊塞特
如果(isset($\u POST['billing\u phone\u 2'])){
$domain='woocommerce';
$phone=$\u POST['billing\u phone\u 2'];
//空的
如果(空($phone)){
wc_添加_通知(uuu(‘请输入完成此订单的电话号码’,$domain),‘错误’);
}
//使用正则表达式验证电话号码。
如果(0


如果
type
=
number
,则可以使用
min
max
属性

//在帐单表单后显示自定义签出字段
功能操作\u结账后的商业\u账单\u表单($checkout){
woocommerce\u表单\u字段('billing\u phone\u 2',数组(
'类型'=>'编号',
“自定义_属性”=>数组(
“min”=>0,
“最大值”=>9999999,
),
'class'=>数组('form row wide'),
'占位符'=>\('电话2','woocommerce'),
),$checkout->get_value('billing_phone_2');
}
添加行动('woocommerce'在结帐后,'woocommerce'在结帐后,'woocommerce'在结帐后,'10,1');

虽然我不建议将其作为电话号码,但存在“tel”类型是有原因的,就像WooCommerce中的其他电话字段一样

感谢您的回复。电话字段不应接受字母表和任何其他字符。这就是为什么我用类型作为数字。有什么办法吗?我已经更新了我的答案,虽然我不建议把它作为电话号码。正如WooCommerce中的其他电话字段中所使用的那样,“tel”类型的存在是有原因的。如果只允许使用数字字符,则可以通过字段验证进行检查。感谢您的快速响应和推荐。我会记住更新的答案不起作用。。。你能帮我解决这个问题吗?1)我可以确认我的答案是有效的。2) “它不起作用”说,天空是蓝色的,太阳是黄色的。你必须提供更多的细节,而不仅仅是“它不起作用”。