You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:03:23