【问题标题】:Send wp post title on an email with onclick function使用 onclick 功能在电子邮件上发送 wp 帖子标题
【发布时间】:2015-01-03 23:05:13
【问题描述】:

每次单击 <a> 时,我都会向我的 Outlook 帐户发送一封电子邮件。我希望消息具有单击链接的 wordpress 帖子的标题,但是,它没有打印在电子邮件中。无法识别the_title(); 来获取帖子标题。另一个问题是电子邮件进入了垃圾邮件文件夹。

如何解决这个问题?

<a href="#" onclick="callFunction();">Report</a>
<script type="text/javascript">
    function callFunction(){
        <?php  
            $message = ''.the_title();
            $to = "my@outlook.com";
            $subject = "Expired post report";
            $from = "reporting@website.com"; 
            $headers = "From:" . $from;
            mail($to,$subject,$message,$headers); 
        ?>
    }
</script>

【问题讨论】:

  • 您正在混合 2 种语言 JavaScript 在浏览器中运行 PHP 在服务器上运行 您不能将 PHP 作为 onclick 函数使用 您最多可以将信息发布到具有所需信息的服务器
  • 我发现将 PHP 中的数据留给 JavaScript 使用的最简单方法是将其保留为属性,如下所示;
  • 关于进入垃圾邮件文件夹的电子邮件,这可能是因为您的空白邮件正文存在其他问题。

标签: javascript php wordpress email


【解决方案1】:

对于 Javascript,客户端执行,调用 PHP 函数,服务器端执行,您需要使用 ajax 创建一个非常小的 API。如果您在项目中包含 jQuery,您可以将 Javascript 变量发送到 PHP 文件并使用 PHP 发送邮件。

Javascript:

$.ajax({
    type: "POST",
    url: "path/to/file/mail.php",
    data: {
        message : "<?php echo the_title(); ?>",
        subject : "Expired post report"
    }
}).done(function( msg ) {
    alert( msg );
});

名为 mail.php 的 PHP 文件:

$message = $_REQUEST['message'];
$to = "my@outlook.com",
$subject = $_REQUEST['subject'];
$headers = "From: reporting@website.com";

echo mail($to, $subject, $message, $headers); 

mail() 如果成功则返回 true,因此 Javascript 函数会提示 true / false。

【讨论】:

  • 有效!我通过电子邮件获得帖子的名称!非常感谢,这很有趣。但是,电子邮件仍会进入垃圾邮件文件夹。有什么线索吗?谢谢
  • 此外,信使不会打印为“reporting@website.com”,而是与我的虚拟主机帐户类似。编辑:只是一个拼写错误,它是$_REQUEST['headers']; 而不是$_REQUEST['header'];
  • 顺便说一句,不是很重要,但是有没有办法避免对这个 ajax 函数的多个请求?
  • 您可能希望对您的“收件人”电子邮件地址进行硬编码,以防止任何人使用您的脚本向任何人发送随机垃圾邮件。
  • 是的,为了实现这一点,我已经从 ajax 函数中退出了 'to' 数据声明,并且在 mail.php 中我已经替换了 'to' 请求,而不是 mail.php 上的一个 php 语句获取 wp 站点管理员的电子邮件:$to = ''.get_option( 'admin_email' ); 这样没有人可以看到电子邮件地址
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-26
  • 2014-11-30
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
相关资源
最近更新 更多