Делаю так, но в постах есть специальные условия где Expiries указан как никогда, немогу понять как его вытащить и нигде нет его?
а еще как можно указать ровно 1 months в дате? а то у меня грубо 30 дней, а надо либо 30/31/29/28 в зависимости от месяца
object(WP_Post)#19263 (24) { ["ID"]=> int(10225) ["post_author"]=> string(4) "4782" ["post_date"]=> string(19) "2022-02-17 17:28:49" ["post_date_gmt"]=> string(19) "2022-02-17 14:28:49" ["post_content"]=> string(1435) "
" ["post_title"]=> string(58) "Техник по очистке и дезинфекции" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "publish" ["comment_status"]=> string(6) "closed" ["ping_status"]=> string(6) "closed" ["post_password"]=> string(0) "" ["post_name"]=> string(4) "3961" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2022-05-27 11:43:03" ["post_modified_gmt"]=> string(19) "2022-05-27 08:43:03" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(28) "3961" ["menu_order"]=> int(0) ["post_type"]=> string(3) "job" ["post_mime_type"]=> string(0) "" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" }
// Добавляем хук на сохранение поста
add_action( 'save_post', 'action_save_post' );
function action_save_post( $post_id ) {
// Если это ревизия, то ничего не делаем
if ( wp_is_post_revision( $post_id ) || get_post($post_id)->post_status !== 'publish' || get_post($post_id)->post_type !== 'job' ) {
return;
}
// Регистрируем одиночное событие через 30 дней.
wp_schedule_single_event( time() + 86400 * 30, 'change_post_status_event', array( $post_id ) );
}
// Добавляем хук на событие
add_action( 'change_post_status_event', 'change_post_status', 10, 1 );
function change_post_status( $post_id ) {
// Удаляем действие по сохранению поста, чтобы избежать зацикливания
remove_action('save_post', 'action_save_post');
// Создаем данные поста
$post = array(
'ID' => $post_id,
'post_status' => 'draft',
);
// Обновляем пост
wp_update_post( $post );
// Возвращаем действие по сохранению поста
add_action('save_post', 'action_save_post');
}