Ваш код работал у меня, при условии, что ваш get_option('PushPostTypes')
работает должным образом (очевидно, мне пришлось высмеивать это).
Попробуйте другой подход, который не полагается на get_option('PushPostTypes')
, чтобы увидеть, получите ли вы тот же результат;
add_action('transition_post_status', function ($new_status, $old_status, $post) {
if ($new_status !== 'publish') {
return;
}
// do something
}, 10, 3);
Попробуйте ловушку 'transition_post_status'
, которая работает для всех сообщений без их специального определения. Положите это где-нибудь, чтобы посмотреть, работает ли он. Выполните любую отладочную инструкцию, которая вам подходит. Затем , если это работает, переместите его в код класса и посмотрите, работает ли это. Я отлаживаю, пытаясь определить, где в первую очередь что-то пошло не так. Делая это очень простым, чтобы заставить его работать, затем постепенно добавляю сложности, пока он не сломается.