Изменение пользовательского статуса записи с помощью функции

#php #wordpress #hook #custom-post-type

#php #wordpress #перехват #пользовательский тип записи

Вопрос:

У меня есть пользовательский пост, который пользователи могут использовать для регистрации своих резюме на веб-сайте после входа в систему. Я пробую этот код для установки статуса сообщения после отправки пользователями в «ожидание» и не отображается, пока администратор меняет статус на «опубликовать». Это работает, но когда администратор хочет изменить статус, после публикации он сбрасывается на «ожидающий». Как я могу это исправить?

 add_filter( 'wp_insert_post_data', 'prevent_post_change', 20, 2 );
function prevent_post_change( $data, $postarr ) {
if ( ! isset($postarr['ID']) || ! $postarr['ID'] ) return $data;
if ( $postarr['post_type'] !== 'noo_resume' )
$old = get_post($postarr['ID']);
if (
    $old->post_status !== 'pending' amp;amp;
    $old->post_status !== 'trash' amp;amp; 
    $data['post_status'] === 'publish' 
) {
    $data['post_status'] = 'pending';
}
return $data;
}
  

Комментарии:

1. вы пробовали? ??

2. да, это не работает