Вопрос: Уведомлять администратора, когда пользовательские метаданные поста обновляются или удаляются

Я пытаюсь отправить электронное письмо администратору, когда отдельная пользовательская мета-запись обновляется или удаляется. Это не работает с сохранением или удалением записи. Все, что мне нужно, это определить, когда мета сообщения будет обновлена ​​или удалена, и написать администратору.

До сих пор я пытался использовать это действие, но оно не работает:

function detect_post_meta_update($meta_id, $post_id, $meta_key, $meta_value){  //code to email admin goes here}add_action( 'updated_post_meta', 'detect_post_meta_update', 10, 4 );

Это работало, но он обнаруживал все изменения мета постов, включая просмотр постов ... Но в настоящее время это не так работает на всех.

Есть ли лучший способ для создания этой системы уведомлений?

<

Ответы и комментарии:

Да, на самом деле я не смог найти лучшего решения, чем это. Но по какой-то причине электронная почта не отправляется, вероятно, что-то, связанное с функцией почты.
Создан 25-08-2018 01:51 Agon Xheladini

Пожалуйста, поделитесь функцией, которая отвечает за отправку электронной почты, может быть, мы могли бы посоветовать.
Создан 28-08-2018 09:48 Levi Dulstein

На самом деле, на мой взгляд, это верный способ сделать это и правильный крючок для работы.
Все, что вам нужно сделать, это проверить, является ли обновленный мета-ключ тем, который вы хотите обнаружить (вот почему передается 4 аргумента!).
Допустим, ваша мета-запись называется email_triggering_meta:
функция detect_post_meta_update ($ meta_id, $ post_id, $ meta_key, $ meta_value) {

     // игнорируем каждое мета обновление кроме `email_triggering_meta`
     if ('email_triggering_meta'! == $ meta_key) {
           вернуть;
     }

     // код для отправки по электронной почте администратор идет здесь
}
add_action ('updated_post_meta', 'detect_post_meta_update', 10, 4);
Создан 24-08-2018 08:26 Levi Dulstein781211