联系表格 7 电子邮件主题应为帖子标题

Posted

技术标签:

【中文标题】联系表格 7 电子邮件主题应为帖子标题【英文标题】:Contact form 7 email subject should be post title 【发布时间】:2015-06-03 11:53:33 【问题描述】:

我正在使用自定义表单 7

我想要这样,如果有人在 wordpress 中单击单个帖子下的邮件按钮,它会自动将他重定向到联系我们页面,然后邮件的主题将是帖子标题。

我该怎么做?

【问题讨论】:

我知道一些简单的 php 魔术就可以完成这项工作。在联系页面代码上,使用 $_SERVER['HTTP_REFERER'] 来检测引荐来源网址。然后 url_to_postid() 函数从该 url 获取 id。当你有 id 时,你可以用它做任何事情。 但我不知道我会在哪里添加这些 在您发送电子邮件的页面上? 电子邮件将被发送到服务器地址。没关系。现在一切正常,但现在我希望电子邮件的主题区域将由访问者被重定向到联系人的帖子标题填充页面。 【参考方案1】:

以前没用过,但是这个插件声称可以满足你的需要:https://wordpress.org/plugins/contact-form-7-dynamic-text-extension/

然后,您将创建您的邮件链接以通过查询参数(可能带有http_build_str())来包含帖子标题,这样您的 URL 就会变成:

http://example.com/contact-us/?title=my+post+title

之后,您必须像这样创建新的 CF7 标记,以使用 $_GET 变量自动填充。

[dynamictext post_subject "CF7_GET key='title'"]

【讨论】:

我将在哪里创建 http_build_str() ? 在您要创建邮件链接的地方。它只是一个帮助将查询字符串附加到特定 URL 的函数。【参考方案2】:

用这段代码解决了:

<?php
if( $_SERVER['HTTP_REFERER'] !== '' ) 
    $referer = $_SERVER['HTTP_REFERER'];
    $id = url_to_postid($referer);
    $subject = get_the_title($id);
 else 
    $subject = '';

?>

输入栏:&lt;input id="post-referer" value="&lt;?php echo esc_attr($subject); ?&gt;" type="hidden"&gt;

然后使用 jQuery 从 'post-referer' 字段的值中填充主题字段。

【讨论】:

【参考方案3】:

您需要安装Contact Form 7 Dynamic Text Extension 并以这种方式在表单中使用字段。

CF7:

[dynamictext post_subject "CF7_GET key='title'"]

key 是您的 url 的参数名称。

【讨论】:

请为您的答案添加一些解释 这与下面的答案相同。请不要发布重复的答案。

以上是关于联系表格 7 电子邮件主题应为帖子标题的主要内容,如果未能解决你的问题,请参考以下文章

无法从联系表 7 发送电子邮件

联系表格 7 插件电子邮件正文自动删除

提交时将 HTML 添加到联系表格 7 电子邮件

WordPress Contact-Form 7 收到的邮件内容为空

联系表格 7 在电子邮件正文中添加图像

如何自动填写联系表格 7