从 wordpress 触发 laravel 事件

Posted

技术标签:

【中文标题】从 wordpress 触发 laravel 事件【英文标题】:Trigger laravel event from wordpress 【发布时间】:2020-11-06 23:04:29 【问题描述】:

我目前正在开发一个 laravel 应用程序。 相同的应用程序已经在 wordpress 上运行,并且通过 laravel 应用程序,我们将在原始应用程序中添加一些附加功能。 laravel 将在子域上运行。

事情是这样的: 在 wordpress 网站上,我们发布了不同的公开文章,但在发布这些文章时,我们需要向公司的“所有员工”或公司的“所有经理”发送电子邮件。 公司员工的详细信息在 laravel 中存储并可用。

我希望在文章发布时有一种方法,我会在 wordpress 上为用户提供两个选项:“向员工发送电子邮件”/“向经理发送电子邮件”以及选择任何选项,电子邮件发送事件将从我的 laravel 网站触发。

我几乎没有使用 wordpress 的经验。我试图用谷歌搜索它,但找不到任何有用的链接。

【问题讨论】:

【参考方案1】:

WordPress 的工作方式与 laravel 完全不同,并且与许多钩子一起工作..

您可以通过https://codex.wordpress.org/Plugin_API/Action_Reference/publish_post 监控帖子状态变化

你必须在这个钩子中实现发送你自己的电子邮件, 并且还会针对你的 laravel 端点触发一个 webhook。

wordpress 中的发布按钮不允许您选择向谁发送电子邮件..,但这可以在您的帖子上使用自定义字段/元数据构建。 很大程度上取决于您希望如何实现。

不幸的是,默认情况下 WordPress 不能与 composer 一起使用,因此您没有一种简单的方法来获取像 Guzzle 这样的包来将您的请求发送到您的 larvel 端点。

WordPress 有一些内置方法来进行 REST 调用,请参阅: https://developer.wordpress.org/reference/functions/wp_remote_request/

【讨论】:

您的回答很有帮助。非常感谢。

以上是关于从 wordpress 触发 laravel 事件的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 计划事件未在设定时间内触发

我在哪里可以获得 Laravel 事件的完整列表(由核心库触发)?

Laravel-livewire:为啥触发事件会执行 render() 方法?

Laravel 推送事件未触发

为啥我的事件监听器没有在 laravel 5 中触发?

Laravel-Livewire 如何触发事件并监听它们?