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

如何将搜索结果div及$all_fiche内容加入Contact Form 7邮件模板?

将搜索结果变量加入Contact Form 7邮件模板的实现方法

完全可行,具体实现步骤如下:

1. 在CF7表单中添加隐藏字段

打开你的Contact Form 7表单编辑界面,添加一个用于存储搜索结果的隐藏字段:

[hidden search-results]

这里的search-results是字段名称,后续会用来绑定变量值。

2. 将$all_fiche变量传递给隐藏字段

有两种常用实现方式,选其一即可:

方式一:PHP+JS传递值

  • 在主题的functions.php文件中添加以下代码,将PHP变量传递到前端:
function pass_search_results_to_cf7() {
    global $all_fiche;
    if ( isset( $all_fiche ) && ! empty( $all_fiche ) ) {
        wp_enqueue_script( 'cf7-search-script', get_template_directory_uri() . '/js/cf7-search.js', array( 'jquery' ), '1.0', true );
        wp_localize_script( 'cf7-search-script', 'cf7SearchData', array(
            'results' => $all_fiche
        ) );
    }
}
add_action( 'wp_enqueue_scripts', 'pass_search_results_to_cf7' );
  • 在主题目录下创建js/cf7-search.js文件,写入以下JS代码,将值赋值给隐藏字段:
jQuery(document).ready(function($) {
    if (typeof cf7SearchData !== 'undefined' && cf7SearchData.results) {
        $('input[name="search-results"]').val(cf7SearchData.results);
    }
});

方式二:直接通过CF7钩子修改字段值

在主题的functions.php文件中添加以下PHP代码,直接通过钩子给隐藏字段赋值:

function set_cf7_search_results_value( $tag ) {
    global $all_fiche;
    if ( $tag->name === 'search-results' && isset( $all_fiche ) && ! empty( $all_fiche ) ) {
        $tag->values = array( $all_fiche );
        $tag->raw_values = array( $all_fiche );
    }
    return $tag;
}
add_filter( 'wpcf7_form_tag', 'set_cf7_search_results_value' );

3. 在CF7邮件模板中调用该字段

打开CF7的邮件设置界面,在邮件内容中添加[search-results]标签,即可让邮件自动显示$all_fiche中的搜索结果内容。

注意事项

  • 如果$all_fiche包含HTML格式内容,需在CF7设置中开启「使用HTML内容类型」,确保邮件能正常渲染HTML;
  • 确保$all_fiche变量在上述钩子执行的上下文环境中是已定义且非空的,比如在搜索结果页面模板中提前赋值好该变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:20:28