如何使用 Contact Form 7 - 动态文本扩展获取自定义值

How to get a custom value using Contact Form 7 - Dynamic Text Extension

我有一个带有 post 个 ID 的 $_SESSION 数组变量。在 foreach 循环中,我想获取这些 ID 的 posts 标题。到目前为止,我有这样的东西:

sport_title = '';
foreach($_SESSION['sports_post_id'] as $sports_id {
    $sport_title = get_the_title($sport_id);
    $sports_titles .= $sport_title . "<br />";
}

现在,我的问题是我不知道如何在 Contact Form 7 - 动态文本扩展插件的自定义变量中传递它。

我的表单中有这个字段(在 CF7 中):

[dynamichidden dynamic_sports readonly default:shortcode_attr]

在我的自定义页面模板 php 文件中:

echo do_shortcode('[contact-form-7 id="3561" "CF7_get_custom_field dynamic_sports=\'$sports_titles\'" title="Availability Form EN"]');

因此,我想通过电子邮件发送这些 post 标题。我怎样才能让它起作用?提前致谢

在您的 CF7 表单配置 > 电子邮件选项卡中,您只需在挂钩之间添加所需的字段 [...]

[dynamic_sports]

这将在您的电子邮件中打印动态字段值。

好的,我知道怎么做了!如果有人想要更多解释:

在 Contact Form 7 - Form 选项卡中,我插入了以下代码:

[dynamichidden dynamic_sports "CF7_GET key='sports_post_id'"]

其中 key 是标准词(无法更改)。

在电子邮件选项卡内,您应该有此代码:

Sports: [dynamic_sports]

现在,在我的自定义模板 PHP 文件中,我有这个简码:

echo do_shortcode('[contact-form-7 id="3561" title="Availability Form EN"]');

我还有一个带有隐藏输入类型的表单,名称为 sports_post_id,值是当前 post:

<input type="hidden" value="<?php echo get_the_title( get_the_ID() ); ?>" name="sports_post_id" id="sports_post_id" />

已编辑

另一种通过插件扩展 CF7 的解决方案如下:

  1. 安装Contact Form 7 - Dynamic Text Extension

  2. 复制并粘贴下面的form-tag代码,然后将其添加到表单代码块中

    [dynamichidden page-title "CF7_get_post_var key='title'"]
    

以上代码将向表单添加一个隐藏的文本输入,该表单将 pre-populate 页面标题。当您在多个页面上使用相同的联系表单时,这非常有用,这样您就可以知道用户从哪里提交了表单。或者,您可以使用以下简码之一来显示页面 URL 或 slug:

[dynamichidden page-url "CF7_bloginfo show='url'"]
[dynamichidden page-slug "CF7_bloginfo show='url'"]

在联系表 7 中显示隐藏的动态内容标签变量

最后,在Contact Form 7 表单中显示隐藏的动态内容标签变量。在 CF7 设置页面上,单击“Email”选项卡并插入:

[page-title]

如果您使用的是 URL 或 Slug 字段,则改为:

[page-url]
[page-slug]