如何通过Contact Form 7钩子为WordPress邮件添加CC/BCC
在WordPress中使用Contact Form 7钩子添加CC/BCC
你已经注册了wpcf7_before_send_mail钩子,接下来只需实现对应的回调函数dynamic_addcc,就能为邮件添加CC或BCC。以下是两种常见场景的完整代码:
场景1:添加固定CC/BCC地址
如果需要给固定邮箱发送抄送/密送,直接在函数中设置对应字段即可:
add_action( 'wpcf7_before_send_mail', 'dynamic_addcc' ); function dynamic_addcc( $contact_form ) { // 获取当前邮件配置对象 $mail = $contact_form->prop( 'mail' ); // 设置CC地址,多个地址用英文逗号分隔 $mail['cc'] = 'cc1@example.com, cc2@example.com'; // 设置BCC地址 $mail['bcc'] = 'bcc@example.com'; // 更新邮件配置 $contact_form->set_prop( 'mail', $mail ); }
场景2:动态获取表单字段作为CC地址
如果需要将用户在表单中填写的邮箱作为CC(比如表单里有一个"抄送邮箱"字段),可以通过提交数据提取对应值:
add_action( 'wpcf7_before_send_mail', 'dynamic_addcc' ); function dynamic_addcc( $contact_form ) { // 获取表单提交实例 $submission = WPCF7_Submission::get_instance(); if ( ! $submission ) return; // 获取用户提交的所有表单数据 $posted_data = $submission->get_posted_data(); // 提取表单中名为"cc_email"的字段值(需和你的表单字段name一致) $user_cc = isset( $posted_data['cc_email'] ) ? $posted_data['cc_email'] : ''; // 获取当前邮件配置对象 $mail = $contact_form->prop( 'mail' ); // 如果用户填写了抄送邮箱,添加到CC列表 if ( ! empty( $user_cc ) ) { $mail['cc'] = $user_cc; } // 同时添加固定BCC地址(可选) $mail['bcc'] = 'admin@your-site.com'; // 更新邮件配置 $contact_form->set_prop( 'mail', $mail ); }
注意事项
- 代码需添加到当前主题的
functions.php文件,或自定义插件中 - 表单字段的
name属性要和代码中引用的名称完全匹配(比如示例中的cc_email) - 多个邮箱地址用英文逗号分隔,支持同时添加多个收件人
内容的提问来源于stack exchange,提问作者TheLovableType
相关产品推荐
相关产品推荐

