如何使用 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 的解决方案如下:
-
复制并粘贴下面的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]
我有一个带有 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 的解决方案如下:
复制并粘贴下面的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]