Wordpress - 在 Post 元值更改时发送电子邮件
Wordpress - Send email on Post meta value change
我想参与以下活动。当某个 post 字段值更改时,我想在 post publish/update 上自动发送电子邮件。
- 在post
- 一个有 4 个选项的 ACF 字段,比方说
[ 'draft', 'ready for group1', 'ready for group 2', 'ready']
- 如果此字段在 post 发生更改,请更新发送电子邮件至 "this" 电子邮件地址。
我想为此我需要知道两件事。
- 我需要如何以及在何处(采取什么行动)在 post publish/update 上插入自定义代码
- 如何将新的 post 数据与旧状态进行比较(在上面的操作中这是 possible/availible)
您可以为此挂钩 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']
和 get_field()
结果中读取的代码。
我想参与以下活动。当某个 post 字段值更改时,我想在 post publish/update 上自动发送电子邮件。
- 在post
- 一个有 4 个选项的 ACF 字段,比方说
[ 'draft', 'ready for group1', 'ready for group 2', 'ready']
- 如果此字段在 post 发生更改,请更新发送电子邮件至 "this" 电子邮件地址。
我想为此我需要知道两件事。 - 我需要如何以及在何处(采取什么行动)在 post publish/update 上插入自定义代码 - 如何将新的 post 数据与旧状态进行比较(在上面的操作中这是 possible/availible)
您可以为此挂钩 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']
和 get_field()
结果中读取的代码。