ldc-groupe/content/plugins/ldc-messages/cron.php
2020-10-13 11:23:51 +02:00

103 lines
3.4 KiB
PHP

<?php
add_filter( 'cron_schedules', function ( $schedules ) {
$schedules['everyweek'] = array(
'interval' => 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('<br>', $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');