// Schedule daily event on plugin load if (!wp_next_scheduled('libri_ediesse_cron_transition')) { wp_schedule_event(time(), 'daily', 'libri_ediesse_cron_transition'); } // Cron callback: handle automatic transitions add_action('libri_ediesse_cron_transition', function() { global $wpdb; $now = current_time('timestamp'); $products = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'product' AND post_status = 'publish'"); foreach ($products as $product) { $pid = $product->ID; // Handle evidenza -> novita after 60 days $evidenza = get_post_meta($pid, 'evidenza', true); $evidenza_date = get_post_meta($pid, 'evidenza_set_date', true); if ($evidenza == '1' && $evidenza_date) { $evidenza_ts = strtotime($evidenza_date); if ($now - $evidenza_ts >= 60 * 24 * 3600) { update_post_meta($pid, 'evidenza', 0); update_post_meta($pid, 'novita', 1); update_post_meta($pid, 'novita_set_date', date('Y-m-d H:i:s', $now)); } } // Handle novita -> catalogo after 120 days $novita = get_post_meta($pid, 'novita', true); $novita_date = get_post_meta($pid, 'novita_set_date', true); if ($novita == '1' && $novita_date) { $novita_ts = strtotime($novita_date); if ($now - $novita_ts >= 120 * 24 * 3600) { update_post_meta($pid, 'novita', 0); } } } });