wordpress - Wordpress - 发送有关发布元值更改的电子邮件
问题描述
我想从犯以下。当某个帖子字段值发生更改时,我想在发布/更新时自动发送一封电子邮件。
- 在一个帖子中
- 一个有 4 个选项的 ACF 字段,可以说
[ 'draft', 'ready for group1', 'ready for group 2', 'ready']
- 如果此字段在更新后更改,请发送电子邮件至“此”电子邮件地址。
我想我需要知道两件事。- 我需要如何以及在何处(什么操作)在发布/更新后插入自定义代码 - 如何将新发布数据与旧状态进行比较(这在上述操作中是否可能/可用)
解决方案
acf/save_post
您可以为此目的而挂钩。在此处阅读文档:
https ://www.advancedcustomfields.com/resources/acf-save_post/
由于您希望在存储值之前触发回调,因此为了将旧值与新值进行比较,请记住添加小于 10 的优先级。假设具有 4 个选项的字段具有字段键field_4afd4af14415f
:
function on_acf_post_save($post_id) {
$post_type = get_post_type($post_id);
if ($post_type === 'your-post-type') {
$old_val = get_field('field_4afd4af14415f', $post_id);
$new_val = $_POST['acf']['field_4afd4af14415f'];
if ($old_val != $new_val) {
// Send desired mail in here:
// wp_mail(...);
}
}
}
add_action('acf/save_post', 'on_acf_post_save', 5, 1); // priority = 5
如果您的 ACF 字段不在顶层,而是在 Group 或 Repeater 中,您将不得不调整从$_POST['acf']
andget_field()
结果读取的代码。
推荐阅读
- node.js - 通过 conda 包管理器安装 Node.js 时在 Windows 上出错
- python - 检查 Linux 服务状态,如果停止使用 Python 脚本启动它
- c# - 运行多个异步读取器不会异步运行
- azure - Azure 上的回滚部署
- html - 页面效果很好,但不可滚动
- windows - Windows 的 Docker 桌面在使用公司代理进行搜索/构建时失败
- flutter - 在 Flutter 中重放相同的 Flare 动画
- java - slack-api:如何格式化包含 url 的文本?
- r - r ggplot geom_point 改变颜色
- reactjs - React 无法从子组件中的 redux 获取状态