web-dev-qa-db-fra.com

Envoyer un email tous les jours à partir du site WordPress

J'ai personnalisé un plugin de calendrier qui affiche les anniversaires d'aujourd'hui et la liste des anniversaires du mois en cours sur la page d'accueil du site. J'ai écrit un code dans la page d'affichage de ce plugin en utilisant wp_mail et le courrier va envoyer. Mais cela ne se produit que lorsque le site est visité. Mon code:

if($dat==date('Y-m-d'))/*$dat is the date of event from DB*/
 {
 if($eid!=''){ /*if recipient email id is not null*/
 if($se!=1)  /*if email is sending first time then($se=db column 'send'value) $se=0 otherwise it is 1*/
 {
 $to=$eid;
 $sub="Birthday Wishes";
  $msg='Happy Birthday '.$ev_title[$j];
 $headers= 'From:Mysite <[email protected]>' . "\r\n".'Content-type: text/html'; 
  $attachments=array(WP_CONTENT_DIR . '/plugins/spider-event-calendar/images/happybday.gif');
  $rx=wp_mail($to,$sub,$msg,$headers,$attachments);
  $wpdb->update($wpdb->prefix.  "spidercalendar_event",array('send'=>1),array('id'=>$ev_id[$j]));/**/
   //echo "email send";
   }
  else{
      //echo "email already sent";
    }
  }
 }

J'ai entendu parler de wp_cron, mais lorsque j'ai cherché dans ce forum des explications sur l'écriture de cron dans WordPress, j'ai vu une réponse comme

Malheureusement, les travaux WordPress ne sont déclenchés que lorsque votre site est visité

Si c'est vrai, comment puis-je envoyer des courriels quotidiennement même sans visiter la page Web? Y a-t-il un autre moyen pour cela?

2
Zammuuz

Malheureusement, les travaux WordPress ne sont déclenchés que lorsque votre site est visité

C'est vrai.

Le seul moyen d'exécuter le code de manière fiable (même si les visiteurs ne visitent pas votre site) est d'utiliser les fonctions cron unix.

Vous pouvez simplement configurer un travail cron unix qui fera un wget sur votre page d’accueil.

Modifier :

Vous pouvez lire cet article pour savoir comment configurer un travail cron unix.

Configurez simplement le fichier wp_cron habituel et programmez-le pour qu'il soit exécuté à l'heure de votre choix.

Après cela, configurez un travail cron unix pour faire un wget sur votre page d’accueil. Cela déclenchera une vue de page qui déclenchera à son tour le travail wp_cron.

1
Sudar