Wordpress-发送有关后元值更改的电子邮件

时间:2020-01-24 09:23:37

标签: wordpress wordpress-theming advanced-custom-fields

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

  • 在帖子中
  • 一个具有4个选项的ACF字段,例如[ 'draft', 'ready for group1', 'ready for group 2', 'ready']
  • 如果此字段在更新后发生更改,请发送电子邮件至“此”电子邮件地址。

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

1 个答案:

答案 0 :(得分:1)

您可以为此挂上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字段不在顶层,而是在“组”或“中继器”中,则必须调整从$_POST['acf']get_field()结果中读取的代码。

相关问题