I have a this code that delete some post meta at al 7:55 hour of the server:
if ( !wp_next_scheduled('borra_meta_datos') ) {
wp_schedule_event( mktime(7, 55, 0, date('n'), date('j')), 'daily', 'borra_meta_datos' );
}
function borra_todos_los_meta_datos() {
$args = array(
'meta_key' => 'destacados',
'post_status' => 'publish',
'numberposts' => -1,
'category' => -14
);
$allposts = get_posts($args);
foreach( $allposts as $postinfo) {
delete_post_meta($postinfo->ID, 'destacados');
}
$args = array(
'meta_key' => 'portada',
'post_status' => 'publish',
'numberposts' => -1
);
$allposts = get_posts($args);
foreach( $allposts as $postinfo) {
delete_post_meta($postinfo->ID, 'portada');
}
$args = array(
'meta_key' => 'slider',
'post_status' => 'publish',
'numberposts' => -1
);
$allposts = get_posts($args);
foreach( $allposts as $postinfo) {
delete_post_meta($postinfo->ID, 'slider');
}
}
add_action('borra_meta_datos', 'borra_todos_los_meta_datos');
All the week the code works fine, but today the code executed early that the hour, i dont know if i am doing something wrong. Additionally i have another code that program all the post of specific user at 3 am of the local hour but today all the posts appear like lost schedule.
function programa_post($data, $postarr){
$hora_de_publicacion = 3;
if( $data['post_type'] == 'page' ){
return $data;
}
global $current_user;
get_currentuserinfo();
if($current_user->user_login == 'luis' or $current_user->user_login == 'jorge'){
$hora_actual = date('H', current_time('timestamp', 0));
//Forget this if :S
if($hora_actual >= 3 && $hora_actual <= 23){
$time_3am = mktime($hora_de_publicacion, 0, 0, date('n'), date('j'));
$data['post_date'] = date('Y-m-d H:i:s', $time_3am);
$data['post_date_gmt'] = date('Y-m-d H:i:s', $time_3am - ( get_option( 'gmt_offset' ) * 3600 ));
}elseif($hora_actual >= 0 && $hora_actual < 3){
$time_3am = mktime($hora_de_publicacion, 0, 0, date('n'), date('j'));
$data['post_date'] = date('Y-m-d H:i:s', $time_3am);
$data['post_date_gmt'] = date('Y-m-d H:i:s', $time_3am - ( get_option( 'gmt_offset' ) * 3600));
}
}
if(trim($data['post_excerpt']) == ""){
$data['post_excerpt'] = ' ';
return $data;
}else{
return $data;
}
return $data;
}
add_filter('wp_insert_post_data', 'programa_post');
i dont know if is problem of code or error of cron, i am lost 🙁