如何在Contact Form 7提交表单时移除电话字段中的+号
如何在Contact Form 7提交表单时移除电话字段中的+号
嘿,我来帮你搞定这个需求——让Contact Form 7提交表单时自动去掉电话字段里的+号,只保留纯数字部分。这个可以通过CF7自带的钩子函数轻松实现,不用额外装插件,直接在你的主题(推荐用子主题,避免主题更新丢失代码)的functions.php文件里加一段代码就行,步骤如下:
第一步:确认你的表单电话字段名称
先打开你的Contact Form 7表单编辑器,找到电话字段的短代码,比如如果是[tel* your-phone],那字段名称就是your-phone——后面的代码里要用到这个名称,别填错了。
第二步:添加自定义处理函数
把下面这段代码复制粘贴到主题的functions.php文件末尾(记得先备份文件,防止出错):
add_action('wpcf7_before_send_mail', 'remove_plus_from_phone_number'); function remove_plus_from_phone_number($contact_form) { // 获取当前表单的提交数据 $submission = WPCF7_Submission::get_instance(); if ($submission) { $posted_data = $submission->get_posted_data(); // 替换电话字段中的+号(这里的'your-phone'要改成你实际的电话字段名称) if (isset($posted_data['your-phone'])) { // 方法1:仅移除所有+号 $cleaned_phone = str_replace('+', '', $posted_data['your-phone']); // 如果你想更彻底(比如去掉空格、括号、短横线等所有非数字字符),可以用下面这行替换上面的: // $cleaned_phone = preg_replace('/\D/', '', $posted_data['your-phone']); // 更新提交的数据,让清理后的号码被发送到邮件/保存 $posted_data['your-phone'] = $cleaned_phone; $submission->set_posted_data($posted_data); } } }
第三步:测试验证
保存functions.php后,去前端提交表单,然后查看收到的邮件(或者你用了CF7的提交数据存储插件的话,看存储的数据),就能看到电话字段已经没有+号了。
要是你在操作中遇到字段名称匹配的问题,再检查下表单里的短代码字段名就行,比如如果字段是[tel* user-phone],就把代码里的your-phone改成user-phone。
内容的提问来源于stack exchange,提问作者user2592986
相关产品推荐
相关产品推荐

