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

为Contact Form 7自动回复添加条件时代码失效问题排查

解决Contact Form 7选择「EV Car Solutions」时自动回复失效问题

下面针对你的代码问题,逐一排查并给出修正方案:

常见问题排查点

  • 表单ID是否正确:确认371是目标Contact Form 7表单的真实ID。你可以在表单编辑页面的地址栏中找到,例如wp-admin/admin.php?page=wpcf7&post=371里的371就是表单ID,若不符请替换为正确值。
  • 字段名是否匹配:检查表单中下拉字段的name属性是否为menu-175、邮箱字段的name是否为your-email。比如表单代码里的下拉应该是[select menu-175 "选项1" "EV Car Solutions"],邮箱是[email* your-email](注意*不影响posted_data中的键名)。
  • 下拉选项值是否一致:如果你的下拉选项是带值标签的格式(比如[select menu-175 "EV Car Solutions:ev-sol"]),那么posted_data中存储的是ev-sol而非显示文本,需要将判断条件改为对应的值。
  • 服务器邮件配置:部分服务器默认禁用wp_mail或未配置发件人,会导致邮件发送失败,可通过调试日志确认。

修正后的代码

以下代码添加了错误检查和调试日志,能更精准定位问题:

add_action( 'wpcf7_mail_sent', 'contact_form_autoresponders' );

function contact_form_autoresponders( $contact_form ) {
    // 替换为你的目标表单ID
    $target_form_id = 371;
    if ( $target_form_id !== $contact_form->id ) {
        return;
    }

    $submission = WPCF7_Submission::get_instance();
    // 检查提交实例是否有效
    if ( ! $submission ) {
        error_log( 'CF7自动回复:无法获取提交数据实例' );
        return;
    }

    $posted_data = $submission->get_posted_data();
    // 检查必填字段是否存在
    if ( ! isset( $posted_data['menu-175'], $posted_data['your-email'] ) ) {
        error_log( 'CF7自动回复:提交数据缺少menu-175或your-email字段' );
        return;
    }

    // 统一处理下拉选项值(兼容数组/字符串格式)
    $selected_option = $posted_data['menu-175'];
    $selected_option = is_array( $selected_option ) ? trim( $selected_option[0] ) : trim( $selected_option );

    if ( 'EV Car Solutions' === $selected_option ) {
        $recipient = trim( $posted_data['your-email'] );
        $subject = 'Auto-response for EV car charger selection';
        $message = 'Thank you for selecting EV Car Solutions. We will get back to you shortly.';
        
        // 发送邮件并记录结果
        $send_result = wp_mail( $recipient, $subject, $message );
        error_log( $send_result ? 
            "CF7自动回复:邮件已发送至 {$recipient}" : 
            "CF7自动回复:邮件发送失败,收件人 {$recipient}"
        );
    }
}

调试方法

  1. 开启WordPress调试:在wp-config.php中添加以下代码,提交表单后查看wp-content/debug.log文件,获取错误详情:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
  1. 临时添加var_dump($posted_data); exit;到函数中,查看实际提交的字段值,确认下拉选项的真实内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:33:31