Gérer WordPress
Gérer WordPressAutomatiser les tâches

Automatiser les tâches

Exécute automatiquement une GraphQL Persisted Query lorsqu'un événement se produit sur le site.

Crée des automatisations directement via l'éditeur WordPress. Le déclencheur d'automatisation est n'importe quel action hook WordPress, et l'action est l'exécution d'une persisted query GraphQL.

Accéder à toutes les règles d'automatisation

En cliquant sur "Automation Rules" dans le menu du plugin, la liste de toutes les règles d'automatisation créées s'affiche :

Règles d'automatisation
Règles d'automatisation

Créer une nouvelle règle d'automatisation

Cliquez sur "Add New Automation Rule" pour ajouter une nouvelle entrée.

Dans l'écran de l'éditeur, nous devons fournir la configuration pour :

  • Déclencheur(s) d'automatisation
  • Action d'automatisation
Éditeur de règles d'automatisation
Éditeur de règles d'automatisation

Action d'automatisation

L'action d'automatisation indique quelle persisted query GraphQL sera exécutée.

Configurez cet élément avec les éléments suivants :

Persisted Query : sélectionnez quelle persisted query GraphQL exécuter (parmi toutes celles ayant le statut publish ou private)

Static GraphQL Variables : fournissez une chaîne JSON avec des valeurs pour les variables GraphQL dans la persisted query. Ce sont des valeurs statiques.

Par exemple :

{
  "emailSubject": "New post on the site"
}

Ces valeurs sont remplacées par les variables GraphQL « dynamiques » (voir Déclencheur(s) d'automatisation ci-dessous).

Operation name (optionnel) : si la persisted query contient plus d'une opération, vous pouvez indiquer laquelle exécuter (par défaut, c'est la dernière).

Execute as user (optionnel) : exécute la persisted query GraphQL en étant connecté en tant qu'utilisateur spécifique, en fournissant le slug de l'utilisateur.

Règle d'automatisation - Exécution de Persisted Query
Règle d'automatisation - Exécution de Persisted Query

Déclencheur(s) d'automatisation

Un déclencheur d'automatisation indique quel action hook WordPress déclenchera l'exécution de la Persisted Query. Nous pouvons en fournir plus d'un (ex. : pour réagir à la modification d'un article ou d'une page uniquement, nous pouvons fournir les hooks edit_post_post et edit_post_page).

Configurez cet élément avec les éléments suivants :

Hook name : le nom de l'action hook WordPress.

Dynamic GraphQL Variables : fournissez une chaîne JSON mappant les variables GraphQL aux arguments fournis à la fonction du hook. Ces valeurs dynamiques seront ensuite fournies à la requête lors de l'exécution.

Le dictionnaire JSON doit contenir le nom de la variable GraphQL comme clé, et la position de l'argument dans l'action hook comme valeur.

Par exemple, le hook draft_post (des post status transitions) fournit $post_id comme premier argument. Ainsi, le JSON suivant indique que la variable GraphQL $postID recevra la valeur de $post_id passée au hook :

{
  "postID": 1
}

(Dans cet exemple, 1 signifie « valeur du 1er argument par draft_post ».)

Si la même clé est utilisée pour les variables GraphQL « dynamiques » et « statiques » (voir Action d'automatisation ci-dessus), alors les valeurs dynamiques ont la priorité.

Règle d'automatisation - Action hook
Règle d'automatisation - Action hook

Correspondance des hooks WordPress

Il existe des hooks WordPress qui ne peuvent pas être utilisés directement dans l'Automation Configurator, car ils fournissent un objet PHP via le hook, qui ne peut pas être saisi comme variable GraphQL.

Plusieurs de ces hooks ont été mappés par Gato GraphQL, en déclenchant un nouveau hook préfixé par gatographql: avec le même nom de hook, et en passant l'ID de l'objet correspondant comme variable, qui peut être saisi comme variable GraphQL.

Par exemple, le hook WordPress draft_to_publish passe $post comme variable (de type WP_Post). Gato GraphQL mappe ce hook comme gatographql:draft_to_publish, et passe $postId (de type int) comme variable.

Le tableau suivant liste les hooks WordPress mappés :

Hook WordPressHook mappé par Gato GraphQL
{$old_status}_to_{$new_status} (passant WP_Post $post)gatographql:{$old_status}_to_{$new_status} (passant int $postId, string $postType)

De plus, Gato GraphQL re-déclenche plusieurs hooks WordPress avec des informations supplémentaires dans le nom du hook, afin de faciliter la capture et l'automatisation d'événements spécifiques.

Par exemple, les hooks qui créent, mettent à jour et suppriment des valeurs meta sont déclenchés en contenant la meta key dans le nom du hook. Ainsi, une automatisation peut être déclenchée lorsqu'une image mise en avant est assignée à un article, via le hook gatographql:added_post_meta:_thumbnail_id.

Voici les hooks Gato GraphQL supplémentaires :

Hook WordPress sourceHook Gato GraphQL déclenché
{$old_status}_to_{$new_status}
(Passant WP_Post $post)
gatographql:any_to_{$new_status}
gatographql:{$old_status}_to_any
gatographql:{$old_status}_to_{$new_status}:{$post_type}
gatographql:any_to_{$new_status}:{$post_type}
gatographql:{$old_status}_to_any:{$post_type}
(Tous passant int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Lorsqu'il y a une différence entre les anciens et les nouveaux termes)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (Passant aussi string $post_type comme 5e paramètre)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (Passant aussi string $post_type comme 5e paramètre)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Passant aussi string $post_type comme 5e paramètre)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Passant aussi string $taxonomy comme 5e paramètre)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Passant aussi string $taxonomy comme 5e paramètre)
deleted_term_metagatographql:deleted_term_meta:{$meta_key}
gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Passant aussi string $taxonomy comme 5e paramètre)

Déboguer les problèmes

Si l'automatisation n'a pas été exécutée, il pourrait y avoir une erreur dans la configuration de l'automatisation, ou dans l'exécution de la persisted query.

Journaux d'exécution

Consultez Résolution des problèmes pour plus de détails.

Journaux d'erreurs

Tous les problèmes de configuration (tels qu'une chaîne JSON malformée pour les variables GraphQL, ou un pointeur vers une persisted query qui a été supprimée) et les erreurs d'exécution (telles que des exceptions levées, ou des entrées errors dans la requête GraphQL) sont envoyés à la fonction PHP error_log, et sont donc imprimés dans le journal d'erreurs WordPress.

Ces journaux d'erreurs sont précédés de la chaîne [Gato GraphQL].