Automatizando tarefas
Execute automaticamente uma GraphQL Persisted Query quando algum evento ocorre no site.
Crie automações diretamente pelo editor do WordPress. O gatilho de automação é qualquer action hook do WordPress, e a ação é a execução de uma persisted query GraphQL.
Acessando todas as regras de automação
Ao clicar em "Automation Rules" no menu do plugin, é exibida a lista de todas as regras de automação criadas:

Criando uma nova regra de automação
Clique em "Add New Automation Rule" para adicionar uma nova entrada.
Na tela do editor, devemos fornecer a configuração para:
- Gatilho(s) de automação
- Ação de automação

Ação de automação
A ação de automação indica qual persisted query GraphQL será executada.
Configure este item com os seguintes elementos:
Persisted Query: Selecione qual persisted query GraphQL executar (entre todas as que possuem status publish ou private)
Static GraphQL Variables: Forneça uma string JSON com valores para as variáveis GraphQL na persisted query. Estes são valores estáticos.
Por exemplo:
{
"emailSubject": "New post on the site"
}Estes valores são substituídos pelas variáveis GraphQL "dinâmicas" (veja Gatilho(s) de automação abaixo).
Operation name (opcional): Se a persisted query contiver mais de uma operação, você pode indicar qual delas executar (por padrão, é a última).
Execute as user (opcional): Execute a persisted query GraphQL estando conectado como um usuário específico, fornecendo o slug do usuário.

Gatilho(s) de automação
Um gatilho de automação indica qual action hook do WordPress acionará a execução da Persisted Query. Podemos fornecer mais de um (ex.: para reagir apenas à edição de um post ou página, podemos fornecer os hooks edit_post_post e edit_post_page).
Configure este item com os seguintes elementos:
Hook name: O nome do action hook do WordPress.
Dynamic GraphQL Variables: Forneça uma string JSON mapeando variáveis GraphQL para os argumentos fornecidos à função do hook. Esses valores dinâmicos serão então fornecidos à query em tempo de execução.
O dicionário JSON deve conter o nome da variável GraphQL como chave, e a posição do argumento no action hook como valor.
Por exemplo, o hook draft_post (das post status transitions) fornece o $post_id como primeiro argumento. Então, o seguinte JSON indica que a variável GraphQL $postID receberá o valor de $post_id passado ao hook:
{
"postID": 1
}(Neste exemplo, 1 significa "valor do 1º argumento de draft_post".)
Se a mesma chave for usada para as variáveis GraphQL "dinâmicas" e "estáticas" (veja Ação de automação acima), então os valores dinâmicos têm prioridade.

Mapeamento de hooks do WordPress
Existem hooks do WordPress que não podem ser usados diretamente no Automation Configurator, pois fornecem um objeto PHP via hook, que não pode ser inserido como variável GraphQL.
Vários desses hooks foram mapeados pelo Gato GraphQL, acionando um novo hook prefixado com gatographql: e o mesmo nome do hook, e passando o ID do objeto correspondente como variável, que pode ser inserida como variável GraphQL.
Por exemplo, o hook do WordPress draft_to_publish passa o $post como variável (do tipo WP_Post). O Gato GraphQL mapeia esse hook como gatographql:draft_to_publish, e passa o $postId (do tipo int) como variável.
A tabela a seguir lista os hooks do WordPress mapeados:
| Hook do WordPress | Hook mapeado pelo Gato GraphQL |
|---|---|
{$old_status}_to_{$new_status} (passando WP_Post $post) | gatographql:{$old_status}_to_{$new_status} (passando int $postId, string $postType) |
Além disso, o Gato GraphQL re-aciona vários hooks do WordPress com algumas informações extras no nome do hook, para facilitar a captura e automação de eventos específicos.
Por exemplo, hooks que criam, atualizam e excluem valores meta são acionados contendo a meta key como parte do nome do hook. Assim, uma automação pode ser acionada quando uma imagem destacada é atribuída a um post, no hook gatographql:added_post_meta:_thumbnail_id.
Estes são os hooks adicionais do Gato GraphQL:
| Hook do WordPress de origem | Hook do Gato GraphQL acionado |
|---|---|
{$old_status}_to_{$new_status}(Passando 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 passando int $postId, string $postType) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Quando há uma diferença entre os termos antigos e novos) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (Também passando string $post_type como 5º parâmetro) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (Também passando string $post_type como 5º parâmetro) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Também passando string $post_type como 5º parâmetro) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Também passando string $taxonomy como 5º parâmetro) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Também passando string $taxonomy como 5º parâmetro) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Também passando string $taxonomy como 5º parâmetro) |
Depurando problemas
Se a automação não foi executada, pode haver um erro na configuração da automação, ou na execução da persisted query.
Logs de execução
Consulte Solução de problemas para mais detalhes.
Logs de erro
Todos os problemas de configuração (como uma string JSON malformada para as variáveis GraphQL, ou um apontamento para uma persisted query que foi excluída) e erros de execução (como exceções lançadas, ou entradas errors na query GraphQL) são enviados para a função PHP error_log, sendo impressos no log de erros do WordPress.
Esses logs de erro são prefixados com a string [Gato GraphQL].