Публикация поста с отсрочкой на 24 часа
Может у кого есть готовый код с отстрочкой публикации.
Могу и сам сделать, но пока нет доступа к ПК. Нужно чтоб при нажатии на кнопку опубликовать, срабатывал фильтр и менял время публикации, проще говоря менял дату и ставил пост в Scheduled.
код заточен под мои нужды - если кому-то необходим, нужно подгонять под себя
// ===================================== // // код для выставления обновления постов // // =========== by Kolshix ============== // // ===================================== // add_action( 'post_submitbox_misc_actions', 'not_update_data_modified' ); function not_update_data_modified($post){ // echo get_post_modified_time('Y-m-d H:i:s', false ).'<br>'; // echo get_post_modified_time('Y-m-d H:i:s', true ).'<br>'; echo '<div class="misc-pub-section misc-pub-section-last"> <style>#timestamplock_1:before{ content: ""; position: relative; top: -1px; } #editable-post-name input{width: 53em;min-height: 26px;}</style> <span id="timestamplock" class="fal fa-calendar-edit"> <label><input type="radio" name="ext_submitbox[modtime]" value="" /> Standart </label><br> <label><input type="radio" name="ext_submitbox[modtime]" value="1" checked /> Data Modified = Last Modified</label><br> <label><input type="radio" name="ext_submitbox[modtime]" value="2" /> Data Modified = Publication Date</label><br> <label><input type="radio" name="ext_submitbox[modtime]" value="3" id="pub_future" /> Data Published + 2~ hours </label> </span></div> '; } add_filter('wp_insert_post_data','reset_post_date_wpse_121565',99,2); function reset_post_date_wpse_121565($data,$postarr) { if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $data; // пропустим если это автосохранение if ( ! current_user_can('edit_post', $postarr['ID'] ) ) return $data; // убедимся что пользователь может редактировать запись $_POST['ext_submitbox'] = array_map( 'sanitize_text_field', $_POST['ext_submitbox'] ); // чистим все данные от пробелов по краям foreach( $_POST['ext_submitbox'] as $key => $value ){ if( $value == 1 ){ $data['post_modified'] = get_post_modified_time('Y-m-d H:i:s' , false); // $data['post_date']; $data['post_modified_gmt'] = get_post_modified_time('Y-m-d H:i:s' , true ); } if( $value == 2 ){ $data['post_modified'] = $data['post_date']; $data['post_modified_gmt'] = $data['post_date_gmt']; } if( $value == 3 ){ $post_publisht = strtotime( get_post_time('Y-m-d H:i:s' , false) ) + 1800; $current_time = strtotime( current_time('Y-m-d H:i:s' , false) ); // проверка, редактируем старый или новый пост if ( $post_publisht > $current_time ){ // Published now $latest_cpt = get_posts("post_type=post&numberposts=2&post_status=future"); $latest_post = $latest_cpt[0]->ID; // last second post - first post current $rand_time = rand(7200, 10800); // 3600 = 1 hour if( isset( $latest_post ) ){ $data['post_date'] = date( 'Y-m-d H:i:s' , get_post_time( 'U', $gmt = false, $latest_post ) + $rand_time ) ; $data['post_date_gmt'] = date( 'Y-m-d H:i:s' , get_post_time( 'U', $gmt = true , $latest_post ) + $rand_time ) ; $data['post_status'] = 'future' ; } else { $latest_cpt = get_posts("post_type=post&numberposts=2&post_status=publish"); $latest_post = $latest_cpt[0]->ID; // last second post - first post current $data['post_date'] = date( 'Y-m-d H:i:s' , get_post_time( 'U', $gmt = false, $latest_post ) + $rand_time ) ; $data['post_date_gmt'] = date( 'Y-m-d H:i:s' , get_post_time( 'U', $gmt = true , $latest_post ) + $rand_time ) ; $data['post_status'] = 'future' ; } } else { // Old post } } } return $data; } // END код для выставления обновления постов