首页 > 解决方案 > Wordpress - 发送有关发布元值更改的电子邮件

问题描述

我想从犯以下。当某个帖子字段值发生更改时,我想在发布/更新时自动发送一封电子邮件。

我想我需要知道两件事。- 我需要如何以及在何处(什么操作)在发布/更新后插入自定义代码 - 如何将新发布数据与旧状态进行比较(这在上述操作中是否可能/可用)

标签: wordpresswordpress-themingadvanced-custom-fields

解决方案


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()结果读取的代码。


推荐阅读