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

WordPress中无需JS修改Contact Form 7成功消息并展示自定义优惠码

Contact Form 7 自定义提交成功消息解决方案

你之前尝试的钩子不符合使用场景:wpcf7_messages是用于配置CF7全局默认消息列表的过滤器,wpcf7_before_send_mail、wpcf7_mail_sent是动作钩子,仅用于触发邮件发送前后的自定义逻辑,不负责控制返回给前端的响应消息内容。

推荐两种可直接生效的方案:

方案1:使用wpcf7_display_message过滤器(最简单)

这个过滤器专门用于修改CF7各类状态下的提示消息,代码示例如下:

add_filter( 'wpcf7_display_message', 'custom_cf7_success_coupon_message', 10, 2 );
function custom_cf7_success_coupon_message( $message, $status ) {
    // 仅匹配表单提交成功的状态
    if ( $status === 'mail_sent_ok' ) {
        // 替换为你自己存储优惠码的cookie键名
        $coupon = isset( $_COOKIE['your_coupon_cookie_key'] ) ? sanitize_text_field( $_COOKIE['your_coupon_cookie_key'] ) : '';
        if ( !empty($coupon) ) {
            $message = "提交成功!您的专属优惠码为:{$coupon},可在下单时直接抵扣使用。";
            // 可选:展示后删除cookie避免重复显示
            setcookie( 'your_coupon_cookie_key', '', time() - 7200, COOKIEPATH, COOKIE_DOMAIN );
        }
    }
    return $message;
}

方案2:使用wpcf7_ajax_json_echo过滤器(灵活性更高)

如果需要同时修改AJAX返回的其他参数,可以使用这个过滤器直接修改响应体:

add_filter( 'wpcf7_ajax_json_echo', 'custom_cf7_ajax_coupon_response', 10, 2 );
function custom_cf7_ajax_coupon_response( $response, $result ) {
    if ( isset($result['status']) && $result['status'] === 'mail_sent' ) {
        $coupon = isset( $_COOKIE['your_coupon_cookie_key'] ) ? sanitize_text_field( $_COOKIE['your_coupon_cookie_key'] ) : '';
        if ( !empty($coupon) ) {
            $response['message'] = "提交成功!您的专属优惠码为:{$coupon},可在下单时直接抵扣使用。";
            // 可选:展示后删除cookie避免重复显示
            setcookie( 'your_coupon_cookie_key', '', time() - 7200, COOKIEPATH, COOKIE_DOMAIN );
        }
    }
    return $response;
}

注意事项

  • 请将代码放在当前主题的functions.php文件,或者自定义功能插件的代码文件中
  • 优惠码输出前需要做 sanitize 处理,避免XSS安全风险
  • 不要在wpcf7_mail_sent等动作钩子中直接输出内容,会破坏AJAX返回的JSON结构导致前端报错
  • 你现有的dbo_generate_coupon逻辑不需要修改,只要保证优惠码已经存入cookie即可,两个方案的钩子执行顺序都晚于wpcf7_mail_sent,可以正常读取到生成的优惠码

内容的提问来源于stack exchange,提问作者DbO-NZ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:39:03