WEEK_IN_SECONDS, 'display' => __( 'Every Week' ) ); return $schedules; } ); function ldc_m_plugin_activation() { // CRON RAPPEL NB MESSAGES if (!wp_next_scheduled ( 'nb_messages_ldc_m' )) { wp_schedule_event(strtotime('4:30:00'), 'everyweek', 'nb_messages_ldc_m'); } // CRON SUPPRESSION ARCHIVES > 2 ans if (!wp_next_scheduled ( 'nb_messages_ldc_m_archives' )) { wp_schedule_event(strtotime('4:30:00'), 'everyweek', 'nb_messages_ldc_m_archives'); } } register_activation_hook(WP_CONTENT_DIR . '/plugins/ldc-messages/ldc-messages.php', 'ldc_m_plugin_activation'); // ---- unschedule event upon plugin deactivation function ldc_m_plugin_deactivation() { // CRON RAPPEL NB MESSAGES $timestamp = wp_next_scheduled ('nb_messages_ldc_m'); wp_unschedule_event ($timestamp, 'nb_messages_ldc_m'); // CRON SUPPRESSION ARCHIVES > 2 ans $timestamp = wp_next_scheduled ('nb_messages_ldc_m_archives'); wp_unschedule_event ($timestamp, 'nb_messages_ldc_m_archives'); } register_deactivation_hook (WP_CONTENT_DIR . '/plugins/ldc-messages/ldc-messages.php', 'ldc_m_plugin_deactivation'); function sendNotificationWeek($typeID) { switch ($typeID){ // Nous rejoindre en tant qu'éleveur case 1: $email = ['vincent.bridier@ldc.fr']; break; // Export case 2: $email = ['vincent.bridier@ldc.fr']; break; // Une demande en tant que client / détaillant / distributeur case 7: $email = ['vincent.bridier@ldc.fr']; break; // La finance case 3: $email = ['vincent.bridier@ldc.fr']; break; // Nos engagements case 4: $email = ['vincent.bridier@ldc.fr']; break; // Une autre information générale case 6: $email = ['vincent.bridier@ldc.fr']; break; // Espace presse case 5: $email = ['vincent.bridier@ldc.fr']; break; } return $email; } function NbMessages_ldc_m(){ global $wpdb; $messages = $wpdb->get_results("SELECT ref, date, type_id FROM wp_messages WHERE STATUS = 0 ORDER BY type_id"); $groupMsg = []; for ($i = 0; $i < count($messages); $i++){ $groupMsg[] = $messages[$i]->ref . " | " . date('d-m-Y H:i', strtotime($messages[$i]->date)); if ($messages[$i]->type_id !== $messages[$i + 1]->type_id){ $email = sendNotificationWeek($messages[$i]->type_id); wp_mail($email, "[RAPPEL] Vous avez ". count($groupMsg) ." message(s) à traiter sur le site LDC", implode('
', $groupMsg)); $groupMsg = []; } } if (!wp_next_scheduled ( 'nb_messages_ldc_m' )) { wp_schedule_event(strtotime('4:30:00'), 'everyweek', 'nb_messages_ldc_m'); } } add_action ('nb_messages_ldc_m', 'NbMessages_ldc_m'); function NbMessagesArchives_ldc_m(){ global $wpdb; $wpdb->query("DELETE FROM wp_messages WHERE DATE < CURDATE() - INTERVAL 2 YEAR"); if (!wp_next_scheduled ( 'nb_messages_ldc_m_archives' )) { wp_schedule_event(strtotime('4:30:00'), 'everyweek', 'nb_messages_ldc_m_archives'); } } add_action ('nb_messages_ldc_m_archives', 'NbMessagesArchives_ldc_m');