web-dev-qa-db-fra.com

Impossible d'accéder à wp_filesystem dans la fonction cron

J'écris un plugin pour intégrer WP avec Visma. En gros, il crache un fichier XML toutes les trois heures à l'aide de wp cron (en accédant au répertoire d'installation du serveur pour wp-cron.php sur le site actif) et l'enregistre dans le dossier de téléchargement.

J'ai tout fait en travaillant manuellement (soumettez-le dans wp-admin). Cependant, lors de l'exécution de la fonction cron, il semble que $wp_filesystem ne soit pas accessible et qu'il ne soit pas possible de le configurer avec request_filesystem_credentials(). Si j'essaie d'exécuter request_filesystem_credentials() dans la fonction cron, un message d'erreur indiquant que la fonction n'existe pas apparaît. Si je le laisse à mon autre fonction (connectée à admin_init), $wp_filesystem est simplement vide (non existant).

J'essaye de sauvegarder des choses dans uploads-folder dans une fonction cron.

J'ai essayé de définir les constantes FTP dans wp-config.php. J'ai essayé de définir la priorité de la fonction d'installation wp_filesystem sur 1 (pour m'assurer qu'elle fonctionne le plus rapidement possible).

Je préférerais utiliser le wp_filesystem car il offre de nombreux avantages en termes de stabilité et de sécurité.

2
Jonathan de Jong

Alors bien sûr, dès que je poste ceci, je trouve la solution. Après avoir cherché pendant une journée. Je devais inclure le fichier traitant les request_filesystem_credentials manuellement dans la fonction. Pour référence c'était require ABSPATH . 'wp-admin/includes/file.php';

1
Jonathan de Jong