web-dev-qa-db-fra.com

Écrire des scripts en utilisant des classes Wordpress/WooCommerce?

Je souhaite exécuter divers scripts de traitement qui modifient les données de commande WooCommerce. Actuellement, je crée les scripts en tant que fonction dans le fichier functions.php de mon thème, puis j'attache la fonction à un shortcode. Je construis ensuite une page dans Wordpress qui ne contient que ce code court et charge la page dans mon navigateur pour exécuter le script.

Cela semble incroyablement compliqué et il doit exister une manière "appropriée" de le faire, qui ne consiste pas à créer des pages et à exécuter des tâches à travers le thème.

J'ai besoin d'accéder à des éléments tels que WP_Query et la classe WooCommerce Order, mais j'aimerais essentiellement disposer de l'intégralité des classes/fonctions Wordpress et WooCommerce, comme si je lisais des pages ou des codes courts.

Existe-t-il un moyen approprié d’amorcer facilement tous les contenus Wordpress sans avoir à parcourir tout le thème?

1
ssharp_wp

Existe-t-il un moyen approprié d’amorcer facilement tous les contenus Wordpress sans avoir à parcourir tout le thème?

C'est la mauvaise question. Les codes abrégés sont loin de la seule façon d’exécuter du code à partir d’un thème ou d’un plugin. Vous les avez correctement identifiés comme inappropriés pour le travail cependant. Ce que je pense que vous devriez chercher à faire est de trouver un meilleur moyen d’exécuter vos scripts à partir d’un thème ou d’un plugin.

Selon moi, vous avez 2 options principales, dépendant essentiellement de la manière dont vous voulez que votre script soit déclenché.

Si vous voulez déclencher manuellement le script , vous devez créer une page dans l'administrateur avec un bouton déclenchant le script. Les étapes de base pour cela seraient:

  1. Utilisez add_menu_page() pour ajouter la page à l’administrateur quelque part.
  2. Pour le contenu de la page, un formulaire avec la variable action définie sur <?php echo esc_url( admin_url( 'admin-post.php' ) ); ?> et une entrée masquée avec les codes name"action" et value en tant qu'identificateur unique de votre fonctionnalité.
  3. Ajoutez un crochet à admin_post_{whatever your action name is} qui exécute votre script.

Ce tutoriel sur les formulaires admin couvre le sujet plus en détail.

Maintenant, vous aurez une place dans l’administrateur où vous pourrez aller et appuyez sur un bouton pour exécuter vos scripts.

Si vous voulez déclencher automatiquement les scripts sur une planification , vous devez utiliser WP Cron pour planifier la fonction de script à exécuter. La documentation à cet effet est ici , mais plutôt que d'ajouter votre fonction de script à un shortcode avec add_shortcode(), ajoutez la fonction à un point d'ancrage avec add_action(), puis utilisez wp_schedule_event() pour planifier l'exécution de l'action à certains moments.

Vous pouvez utiliser wp_next_scheduled() pour planifier automatiquement l'exécution du script après chaque exécution:

if ( ! wp_next_scheduled( '{whatever your hook name is}' ) ) {
    wp_schedule_event( time(), 'hourly', '{whatever your hook name is}', $args );
}
3
Jacob Peattie