Bonsoir, je reviens vers vous pour remonter ce sujet car je n'arrive pas à faire marcher les taches crons malgré votre codage.
Je suis en prestashop 1.7 avec un OVH mutualisé.
Je veux faire tourner une tâche cron d'un module de génération de relances via messenger. J'ai donc mis la tache cron indiquée dans ce module dans le module cronjob. Et j'ai copié votre script dans un fichier cron.php que j'ai mis à la racine de mon fichier admin dans le www (c'est-à-dire : www/adminxx/cron.php). J'ai pris soin de mettre la tache cron indiquée dans cronjob dans ce cron.php.
Je vous recolle le texte indiqué dans cron.php peut-être ai-je fait une erreur ?
J'ai levé mon nom de domaine et les clés en remplaçant par xxx
<?php
/*
** Changez cette variable en true ou false pour que le cron
** affiche quelque chose - ceci apparaît dans les log de la
** console
*/
$verbose = true;
/*
** sur l'écran de configuration du module cronjobs
** après avoir activé le mode avancé
*/
$cronjob_url = <<< EOT
https://www.monnomdomaine.fr/adminxxx/index.php?controller=AdminCronJobs&token=xxxx
EOT;
/**************************************
** Ne rien modifier après cette ligne **
***************************************/
error_reporting(E_ALL);
$break_line = (php_sapi_name() == "cli") ? PHP_EOL : '<br/>';
$output = $verbose ? $break_line.'Cron Report of '.date('c').$break_line.$break_line : '';
$cronjob_url = trim($cronjob_url);
$ch = curl_init($cronjob_url);
curl_setopt($ch, CURLOPT_URL, $cronjob_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$data = curl_exec($ch);
if ($verbose) {
if($data)
$output .= 'Ok'.$break_line.$data;
else
$output .= 'Failed';
}
curl_close($ch);
die($output);
Sur ovh, j'ai crée le lien pour aller chercher ce cron.php
Quand je le teste avec www.monnodomaine.fr/adminxxx/cron.php j'ai le resultat suivant qui semble indiquer que cela fonctionne :
cronjobs_prestashop
Cron Report of 2018-08-20T19:17:37+02:00
Ok
1
Quand je vais dans cronjob, cela m'indique que la requete a tourné (peut etre parce que j'ai testé manuellement comme indiqué ci-dessus). Pour autant les fameux messages par messenger ne sont jamais envoyés.
Quelqu'un pourrait-il regarder pour vérifier si j'ai oublié quelque chose ou mal retranscrit une étape ?
Sinon y a t il une autre moyen ? J'ai vu qu'il y a un module crontab. est-il plus efficace ?
Je vous remercie par avance pour l'aide que vous pourrez m'apporter.
Bonne soirée