Как выполнить действие, когда изменяется значение произвольного поля?

Решено

Здравствуйте, скажите можно ли отловить событие, когда происходит изменение значения определенного произвольного поля? Мне нужно произвести определенные действия когда произойдет смена определенного произвольного поля на определенное значение. Проблема еще в том что это поле меняет другой плагин, а изменять его код я бы не хотел. Скажите есть ли какой нибудь action для таких случаев?

Добавить Комментарий
Ответ

Да, отловить событие изменения значения произвольного поля можно, если это изменение происходит с помощью функции update_post_meta.
Если это так, мы сможем повесить действие на 3 случая:
update_post_meta
— до обновления значения в поле
updated_post_meta — после обновления значения в поле
update_{$meta_type}_metadata(update_post_metadata) — до проверки нового значение со старым на отличии, просто если они будут одинаковые, до выше написанных экшенов не дойдет дело.

Пример:

 /**
 *Описание функции
 *
 * @param int $meta_id - id мета поля
 * @param int $post_id - id поста
 * @param str $meta_key - ключ мета поля
 * @param str $meta_value - значение мета поля
 */
 function percent_update($meta_id, $post_id, $meta_key, $meta_value) {
 // тут делаем свои темные делишки...
 }
add_action('update_post_meta', 'percent_update', 10, 4);
 

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.