Здравствуйте. Подскажите пожалуйста почему этот код не работает в файле functions.php?
function get_random_worker( $new_status, $old_status, $post ) {
if ($new_status == 'publish' && $old_status == 'draft' && get_post_type($post) == 'task') {
global $wpdb;
$id_task = $post->ID;
$get_rand_worker = array("13", "14", "15");
$get_rand_worker_1 = array_rand($get_rand_worker, 1);
$rand_worker = $get_rand_worker[$get_rand_worker_1];
$wpdb->update( 'wp_postmeta',
array( 'meta_value' => $rand_worker ),
array( 'post_id' => $id_task, 'meta_key' => 'task_worker' )
);
}
}
add_action( 'transition_post_status', 'get_random_worker', 10, 3 );
При этом если его вставить в любую страницу то выполняется все замечательно. В этом же файле есть другой похожий код с хуком transition_post_status, только в нем смена статуса со своего кастомного на pending идет, и он отлично работает. Вообще не пойму почему так.
UPD. В общем код работает, но только если ставить статус Опубликовано со страницы, где список всех записей, вот на скрине
Когда же ставить статус Опубликовано находясь внутри поста с помощью этого виджета
То ничего не работает. Кто знает почему так?