web-dev-qa-db-fra.com

Script ou plugin pour envoyer automatiquement le courrier électronique d'activation après 2 heures

J'aimerais définir un travail cron sur mon serveur pour exécuter un script automatisé qui indiquerait à Wordpress:

  • Vérifiez les utilisateurs qui se sont inscrits mais ne se sont pas connectés au cours des 2 dernières heures.
  • Renvoyez l'e-mail de bienvenue aux seuls utilisateurs qui se sont inscrits au cours des 2 dernières heures.
  • Lors du prochain travail cron, les utilisateurs auxquels un autre message de bienvenue aura été envoyé lors des exécutions précédentes seront ignorés. Vous pouvez même supprimer les utilisateurs qui ne se sont pas connectés dans la limite de 2 heures si cela leur est plus facile.

Vraiment apprécier des conseils ou des indications sur la façon de mettre cela en place. J'ai cherché sur le net pour une réponse en vain. J'espère que quelqu'un pourra vous aider.

1
user1249523

La table wp_users contient les champs user_registered et user_activation_key que vous devriez utiliser pour cela.

Pour le travail cron, vous devez utiliser wp_schedule_event () . Il a cependant un inconvénient.

L'action se déclenche lorsque quelqu'un visite votre site WordPress, si l'heure prévue est passée.

Pour un site occupé, ce n'est pas un problème. Mais si votre site ne compte aucun visiteur pendant 2 heures, cette tâche périodique ne se déclenchera pas. Vous ne pouvez rien faire à ce sujet si vous devez utiliser Wordpress Cron Job.

Dans votre fonction cron, vous devez interroger les utilisateurs qui se sont inscrits, mais le compte n'a pas été activé au cours des 2 dernières heures à l'aide de ces deux champs.

EDIT:

Vous pouvez vérifier les utilisateurs qui se sont inscrits mais qui n'ont pas activé leur compte au cours de la dernière heure avec le code suivant -

global $wpdb;
$users = $wpdb->select_results("SELECT * FROM $wpdb->users
                               WHERE user_activation_key = ''
                                 AND user_registered >= NOW() - INTERVAL 2 HOUR"
                               );
foreach( $users as $user ) {
    //Send activation mail
}

Si vous avez besoin d'aide avec le modèle de courrier électronique, vous devez contacter l'auteur du plug-in dans le support du forum Wordpress. Le support des plugins est hors sujet ici.

0
sakibmoon