Comment créer un CRON avec WordPress

Suite à de nombreuses demandes, nous allons voir comment créer un CRON avec WordPress.

Rappelons-le, le CRON est un système qui génère automatiquement une tache depuis un fichier toutes les X secondes qui peut être défini en secondes, heures, jours, semaines etc …

 

Comment créer un CRON avec WordPress

A quel endroit l’intégrer ?

  • Depuis un thème directement dans le fichier “fonction.php”
  • Sur un plugin à intégrer en brut.

Dans cet exemple, nous allons exécuter un simple envoi de mail toutes les 30 secondes.

On créé une fonction mail qui sera envoyée toutes les 30 secondes

function envoi_mail() {
$destinataire = get_option( ‘admin_email’ );
$sujet = “Test CRON”;
$from = “From:” . get_option( ‘admin_email’ ) . “n”;
$from .= “MIME-version: 1.0n”;
$from .= “Reply-To: ” . get_option( ‘admin_email’ ) . “n”;
$from .= “Return-Path: <” . get_option( ‘admin_email’ ) . “>n”;
$from .= “X-Mailer: Test CRON de mon siten”;
$from .= “Content-type: text/html; charset= utf-8n”;
mail($destinataire,$sujet,”test CRON réussi :)”,$from);
}

On enregistre le CRON et on l’exécute

register_activation_hook(__FILE__, ‘cron_envoi_mail’);
add_action(‘cron_schedules’, ‘cron_envoi_mail’);

On créé le chronomètre et on le paramètre à 30 secondes

function cron_envoi_mail($schedules) {
$schedules[‘temps_personnalise’] = array(‘interval’=>30, ‘display’=>’Temps_personnalise_a_30s’);
return $schedules;
}
if (!wp_next_scheduled(‘chronometre’)) {
wp_schedule_event(time(), ‘temps_personnalise’, ‘chronometre’);
}
add_action(‘chronometre’, ‘envoi_mail’);

On désactive le CRON

register_deactivation_hook(__FILE__, ‘cron_envoi_mail_stop’);
function cron_envoi_mail_stop() {
wp_clear_scheduled_hook(‘chronometre’);
}

NOTE : La désactivation du CRON se fait automatiquement lorsque l’on désactive un plugin qui contient ce CRON. Si le CRON est appelé dans le fichier “fonctions.php” de votre thème, il faudra tout simplement lancer la commande cron_envoi_mail_stop(); pour arrêter la fonction.

Ces fonctions sont a appliquer comme bon vous semble. Dans cet exemple, nous avons juste fait un test sur l’envoi d’un simple mail, mais vous pouvez y ajouter les fonctions que vous souhaitez et aussi paramétrer le temps (30 secondes ou plus).

Si vous avez des questions, n’hésitez pas à en parler.

Leave A Comment

Vous souhaitez créer un site web ou le référencer sur Google ?

Demandez votre devis gratuit