Gerenciar WordPress
Gerenciar WordPressAutomatizando tarefas

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:

Regras de automação
Regras de automação

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
Editor de regras de automação
Editor de regras 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.

Regra de automação - Execução de Persisted Query
Regra de automação - Execução de Persisted Query

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.

Regra de automação - Action hook
Regra de automação - Action hook

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 WordPressHook 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 origemHook do Gato GraphQL acionado
{$old_status}_to_{$new_status}
(Passando 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}
(Todos passando int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Quando há uma diferença entre os termos antigos e novos)
added_post_metagatographql: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_metagatographql: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_metagatographql: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_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Também passando string $taxonomy como 5º parâmetro)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Também passando string $taxonomy como 5º parâmetro)
deleted_term_metagatographql: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].