向用户发送电子邮件,告知其帖子已被拒绝

时间:2013-09-14 作者:Asped

我正在寻找以下问题的解决方案:

我正在使用WP User Frontend, 这样用户就可以在前端创建帖子。保存后,管理员需要查看帖子和发布(如果批准),或拒绝(如果未批准)。

如果帖子被批准,会自动向用户发送一封电子邮件,表明他的帖子已经被批准(我已经知道了怎么做)。

但是,如果管理员不批准,如何在每次单击按钮时向用户发送一封电子邮件,其中可能包含来自后端的自定义文本(为什么他不批准)?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

在帖子编辑页面的“发布”按钮下方,添加一个按钮,“拒绝并通知”,单击该按钮后,打开一个模式(thickbox)窗口,其中包含一个表单(使用帖子作者姓名、帖子标题和标准消息预编译),您可以使用该表单将电子邮件发送给帖子作者。

要做到这一点,您需要:

打印按钮的功能。您可以使用\'post_submitbox_misc_actions\' 操作挂钩,将其打印到正确的位置,这是一个在模式窗口中输出表单的函数。此函数应使用当前帖子id获取作者,并将作者电子邮件置于隐藏字段中

  • 一个在提交表单时发送电子邮件的功能,最后两个功能可以轻松使用Ajax Api, 因此,您还需要一个js文件来放置ajax和其他js代码。

    因此,脚本排队和脚本本地化需要另一个函数wp_localize_script

    该按钮还应包含有关当前帖子的js可访问信息data-* 属性可以用于此。

    对于打印按钮和表单的功能(点1和点2),您必须检查:

    当前用户具有编辑器功能当前页面是post编辑页面(post.php)

    • 在发送电子邮件的功能中(第3点)您必须执行一些安全任务:

      检查当前用户是否具有编辑器功能检查一个nonce(以前添加为表单上的隐藏字段)

        之后,此函数应输出邮件发送过程的一些信息(消息是否发送)并将其输出为json,通过js可以对模式进行反馈。如果发生错误,最好还输出一些调试信息,可能检查调试是否在WP中处于活动状态。

        编辑:插件代码在原始答案中,我将代码发布在这里。现在,我刚刚创建了一个插件,其中包含了这里使用OOP方法描述的所有工作流。该插件已经准备好进行本地化,并且已经用意大利语进行了本地化。

        GPL中的插件已获得许可并可用on GitHub.

        插件截图The Reject and Notify button

        <小时>The modal form

        <小时>Success Message

        如果出现问题并且调试处于活动状态

        Error message with debug

    结束

    相关推荐

    linking pic previews to posts

    该网站是一个关于212个孩子的主题,位于www.travelwithcastle。com公司我想将帖子预览(主页上)上的图片链接到实际帖子——现在,当我单击图片时,它没有链接。仅链接标题文本。我喜欢这样,我还想链接图片预览。有人知道我怎么做吗?我的猜测是,这与我如何在内容中编写永久链接有关。php文件,但我不能对此发誓。为此,我的内容如下。php代码的当前外观。<?php /** * The default template for displaying content. Used