81 lines
2.7 KiB
PHP
81 lines
2.7 KiB
PHP
<?php
|
|
|
|
require_once __DIR__ . '/contact-list.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($MessageTypeID)
|
|
{
|
|
foreach (getContactsList() as $contactsList) {
|
|
if (in_array($contactsList['MessageTypeID'], $MessageTypeID)) {
|
|
return $contactsList['contacts'];
|
|
}
|
|
}
|
|
return [];
|
|
}
|
|
|
|
|
|
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');
|