Привет, есть ли действие, которое может быть выполнено, когда сообщение перемещено в корзину .... Я попытался delete_post и удаленный_пост. Он работает, но дважды для каждого действия (до и после действия, как написано в кодексе), и вывод отображается только тогда, когда сообщение удалено из корзины. Пример. Я хочу отправить автору электронное письмо с сообщением о том, что его сообщение было перемещено в корзину по какой-то причине, и обновить некоторое user_meta. если я использую
add_action('deleted_post', 'emailUser');
или
add_action('delete_post', 'emailUser');
это работает только тогда, когда сообщение удалено из корзины. , ,
Обновление: заставил это работать для сообщений мусора, используя
add_action('trash_post', 'emailUser');
но проблема двойного выполнения функции все еще существует. , ,
Ответы:
Это сделает свое дело!
Здесь мы добавляем функцию и предотвращаем повторное выполнение хука с помощью did_action:
http://codex.wordpress.org/Function_Reference/did_action
Как всегда, эти виды крючков принимают форму
{post_status}_{post_type}
, так чтоtrash_post
,trash_page
,trash_customposttype
, иpublish_page
т.д.источник
Это действие будет вызвано один раз, когда сообщение будет перемещено в корзину, а затем еще раз, когда корзина будет очищена.
Ваша функция может проверять наличие опции с идентификатором записи в названии, если эта опция отсутствует, она отправляет электронное письмо и затем устанавливает опцию. Если опция есть (например, она вызывается во второй раз), вы не отправите электронное письмо.
Не забудьте затем удалить опцию, чтобы ваша база данных не заполнилась ими!
Дай мне знать, если это работает!
источник
Вышеупомянутый хук не работал для меня в WP 4.7.5.
Это то, что сработало для меня
источник