Automatizar tareas
Ejecuta automáticamente una GraphQL Persisted Query cuando ocurra algún evento en el sitio.
Crea automatizaciones directamente mediante el editor de WordPress. El disparador de automatización es cualquier action hook de WordPress, y la acción es la ejecución de una persisted query de GraphQL.
Acceder a todas las reglas de automatización
Haciendo clic en "Automation Rules" en el menú del plugin, se muestra la lista de todas las reglas de automatización creadas:

Crear una nueva regla de automatización
Haz clic en "Add New Automation Rule" para añadir una nueva entrada.
En la pantalla del editor, debemos proporcionar la configuración para:
- Disparador(es) de automatización
- Acción de automatización

Acción de automatización
La acción de automatización indica qué persisted query GraphQL se ejecutará.
Configura este elemento con los siguientes elementos:
Persisted Query: selecciona qué persisted query GraphQL ejecutar (entre todas las que tengan estado publish o private)
Static GraphQL Variables: proporciona una cadena JSON con valores para las variables GraphQL en la persisted query. Estos son valores estáticos.
Por ejemplo:
{
"emailSubject": "New post on the site"
}Estos valores son sobrescritos por las variables GraphQL "dinámicas" (véase Disparador(es) de automatización más abajo).
Operation name (opcional): si la persisted query contiene más de una operación, puedes indicar cuál ejecutar (por defecto, es la última).
Execute as user (opcional): ejecuta la persisted query GraphQL estando autenticado como un usuario específico, proporcionando el slug del usuario.

Disparador(es) de automatización
Un disparador de automatización indica qué action hook de WordPress disparará la ejecución de la Persisted Query. Podemos proporcionar más de uno (p. ej.: para reaccionar a editar una entrada o página solamente, podemos proporcionar los hooks edit_post_post y edit_post_page).
Configura este elemento con los siguientes elementos:
Hook name: el nombre del action hook de WordPress.
Dynamic GraphQL Variables: proporciona una cadena JSON mapeando variables GraphQL a los argumentos proporcionados a la función del hook. Estos valores dinámicos se proporcionarán entonces a la consulta en tiempo de ejecución.
El diccionario JSON debe contener el nombre de la variable GraphQL como clave, y la posición del argumento en el action hook como valor.
Por ejemplo, el hook draft_post (de las post status transitions) proporciona $post_id como primer argumento. Entonces, el siguiente JSON indica que la variable GraphQL $postID recibirá el valor de $post_id pasado al hook:
{
"postID": 1
}(En este ejemplo, 1 significa "valor del 1er argumento por draft_post".)
Si se utiliza la misma clave para las variables GraphQL "dinámicas" y "estáticas" (véase Acción de automatización más arriba), entonces los valores dinámicos tienen prioridad.

Mapeo de hooks de WordPress
Hay hooks de WordPress que no pueden usarse directamente en el Automation Configurator, porque proporcionan un objeto PHP a través del hook, que no puede ser introducido como variable GraphQL.
Varios de estos hooks han sido mapeados por Gato GraphQL, disparando un nuevo hook con el prefijo gatographql: y el mismo nombre de hook, y pasando el ID del objeto correspondiente como variable, que sí puede ser introducido como variable GraphQL.
Por ejemplo, el hook de WordPress draft_to_publish pasa $post como variable (de tipo WP_Post). Gato GraphQL mapea este hook como gatographql:draft_to_publish, y pasa $postId (de tipo int) como variable.
La siguiente tabla lista los hooks de WordPress mapeados:
| Hook de WordPress | Hook mapeado por Gato GraphQL |
|---|---|
{$old_status}_to_{$new_status} (pasando WP_Post $post) | gatographql:{$old_status}_to_{$new_status} (pasando int $postId, string $postType) |
Además, Gato GraphQL re-dispara varios hooks de WordPress con información extra en el nombre del hook, para facilitar capturar y automatizar eventos específicos.
Por ejemplo, los hooks que crean, actualizan y eliminan valores meta se disparan conteniendo la meta key como parte del nombre del hook. Entonces, una automatización puede dispararse cuando se asigna una imagen destacada a una entrada, mediante el hook gatographql:added_post_meta:_thumbnail_id.
Estos son los hooks adicionales de Gato GraphQL:
| Hook de WordPress origen | Hook de Gato GraphQL disparado |
|---|---|
{$old_status}_to_{$new_status}(Pasando WP_Post $post) | gatographql:any_to_{$new_status}gatographql:{$old_status}_to_anygatographql:{$old_status}_to_{$new_status}:{$post_type}gatographql:any_to_{$new_status}:{$post_type}gatographql:{$old_status}_to_any:{$post_type}(Todos pasando int $postId, string $postType) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Cuando hay una diferencia entre los términos antiguos y nuevos) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (También pasando string $post_type como 5º parámetro) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (También pasando string $post_type como 5º parámetro) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (También pasando string $post_type como 5º parámetro) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (También pasando string $taxonomy como 5º parámetro) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (También pasando string $taxonomy como 5º parámetro) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (También pasando string $taxonomy como 5º parámetro) |
Depurar problemas
Si la automatización no se ha ejecutado, podría haber un error con la configuración de la automatización, o con la ejecución de la persisted query.
Logs de ejecución
Consulta Solución de problemas para más detalles.
Logs de errores
Todos los problemas de configuración (como una cadena JSON malformada para las variables GraphQL, o apuntar a una persisted query que ha sido eliminada) y los errores de ejecución (como excepciones lanzadas, o entradas errors en la consulta GraphQL) se envían a error_log de la función PHP, así que estos se imprimen en el registro de errores de WordPress.
Estos logs de errores van precedidos de la cadena [Gato GraphQL].