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

如何通过WordPress functions.php为Elementor表单按下拉选项动态添加CC邮箱?

Elementor表单根据下拉选项动态添加CC邮箱

实现思路

用Elementor Pro提供的elementor_pro/forms/email/recipients钩子,这个钩子能在表单发送邮件时修改收件人、CC和BCC列表。我们可以通过钩子函数获取表单提交的下拉字段值,判断是否匹配特定选项,再动态添加CC邮箱。

具体代码实现

把下面的代码加到主题的functions.php文件里(建议用子主题,避免主题更新丢失代码):

add_action( 'elementor_pro/forms/email/recipients', 'dynamic_add_cc_to_elementor_form', 10, 3 );
function dynamic_add_cc_to_elementor_form( $recipients, $form, $record ) {
    // 按实际情况修改以下参数
    $dropdown_field_id = 'department'; // 下拉字段的ID(在表单编辑器高级选项里查看)
    $target_option_value = 'finance'; // 触发CC的下拉选项值
    $cc_recipients = 'finance@company.com'; // 要加的CC邮箱,多个用数组:['a@xxx.com', 'b@xxx.com']

    // 获取用户提交的下拉字段值
    $submitted_value = isset( $record['fields'][ $dropdown_field_id ]['value'] ) ? $record['fields'][ $dropdown_field_id ]['value'] : '';

    // 匹配目标选项就添加CC
    if ( $submitted_value === $target_option_value ) {
        // 处理已有CC的情况,统一转成数组格式
        if ( ! empty( $recipients['cc'] ) ) {
            $existing_cc = is_array( $recipients['cc'] ) ? $recipients['cc'] : [ $recipients['cc'] ];
            $recipients['cc'] = array_merge( $existing_cc, (array) $cc_recipients );
        } else {
            $recipients['cc'] = (array) $cc_recipients;
        }
    }

    return $recipients;
}

关键说明

  1. 获取下拉字段ID:在Elementor表单编辑器里选中下拉字段,进「高级」选项卡看「字段ID」;或者前端页面看字段的name属性,格式是form_fields[xxx],xxx就是字段ID。
  2. 多CC邮箱支持:要加多个CC邮箱,直接把$cc_recipients改成数组就行,比如['finance@company.com', 'admin@company.com']。
  3. 版本要求:必须激活Elementor Pro,这个钩子只有Pro版本能用。
  4. 测试验证:提交表单时选目标下拉选项,检查收件邮箱的CC列表是否包含指定邮箱。

内容的提问来源于stack exchange,提问作者MJNinja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:45:17