Gestire WordPress
Gestire WordPressAutomatizzare le attività

Automatizzare le attività

Esegue automaticamente una GraphQL Persisted Query quando si verifica un evento sul sito.

Crea automazioni direttamente tramite l'editor di WordPress. Il trigger di automazione è un qualsiasi action hook di WordPress, e l'azione è l'esecuzione di una persisted query GraphQL.

Accedere a tutte le regole di automazione

Cliccando su "Automation Rules" nel menu del plugin, viene visualizzato l'elenco di tutte le regole di automazione create:

Regole di automazione
Regole di automazione

Creare una nuova regola di automazione

Clicca su "Add New Automation Rule" per aggiungere una nuova voce.

Nella schermata dell'editor, dobbiamo fornire la configurazione per:

  • Trigger di automazione
  • Azione di automazione
Editor delle regole di automazione
Editor delle regole di automazione

Azione di automazione

L'azione di automazione indica quale persisted query GraphQL verrà eseguita.

Configura questo elemento con i seguenti elementi:

Persisted Query: seleziona quale persisted query GraphQL eseguire (tra tutte quelle con stato publish o private)

Static GraphQL Variables: fornisci una stringa JSON con i valori per le variabili GraphQL nella persisted query. Questi sono valori statici.

Per esempio:

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

Questi valori vengono sovrascritti dalle variabili GraphQL "dinamiche" (vedi Trigger di automazione qui sotto).

Operation name (opzionale): se la persisted query contiene più di un'operazione, puoi indicare quale eseguire (per impostazione predefinita, è l'ultima).

Execute as user (opzionale): esegue la persisted query GraphQL effettuando l'accesso come utente specifico, fornendo lo slug dell'utente.

Regola di automazione - Esecuzione di Persisted Query
Regola di automazione - Esecuzione di Persisted Query

Trigger di automazione

Un trigger di automazione indica quale action hook di WordPress attiverà l'esecuzione della Persisted Query. Possiamo fornirne più di uno (es.: per reagire solo alla modifica di un articolo o di una pagina, possiamo fornire gli hook edit_post_post e edit_post_page).

Configura questo elemento con i seguenti elementi:

Hook name: il nome dell'action hook di WordPress.

Dynamic GraphQL Variables: fornisci una stringa JSON che mappa le variabili GraphQL agli argomenti forniti alla funzione del hook. Questi valori dinamici verranno poi forniti alla query in fase di esecuzione.

Il dizionario JSON deve contenere il nome della variabile GraphQL come chiave, e la posizione dell'argomento nell'action hook come valore.

Per esempio, il hook draft_post (dalle post status transitions) fornisce $post_id come primo argomento. Quindi, il seguente JSON indica che la variabile GraphQL $postID riceverà il valore di $post_id passato al hook:

{
  "postID": 1
}

(In questo esempio, 1 significa "valore del 1° argomento di draft_post".)

Se la stessa chiave viene utilizzata per le variabili GraphQL "dinamiche" e "statiche" (vedi Azione di automazione qui sopra), allora i valori dinamici hanno la priorità.

Regola di automazione - Action hook
Regola di automazione - Action hook

Corrispondenza degli hook di WordPress

Esistono hook di WordPress che non possono essere utilizzati direttamente nell'Automation Configurator, perché forniscono un oggetto PHP tramite il hook, che non può essere inserito come variabile GraphQL.

Diversi di questi hook sono stati mappati da Gato GraphQL, attivando un nuovo hook preceduto da gatographql: con lo stesso nome del hook, e passando l'ID dell'oggetto corrispondente come variabile, che può essere inserita come variabile GraphQL.

Per esempio, il hook WordPress draft_to_publish passa $post come variabile (di tipo WP_Post). Gato GraphQL mappa questo hook come gatographql:draft_to_publish, e passa $postId (di tipo int) come variabile.

La seguente tabella elenca gli hook WordPress mappati:

Hook WordPressHook mappato da Gato GraphQL
{$old_status}_to_{$new_status} (passando WP_Post $post)gatographql:{$old_status}_to_{$new_status} (passando int $postId, string $postType)

Inoltre, Gato GraphQL ri-attiva diversi hook WordPress con alcune informazioni aggiuntive nel nome del hook, per facilitare la cattura e l'automazione di eventi specifici.

Per esempio, gli hook che creano, aggiornano ed eliminano valori meta vengono attivati contenendo la meta key all'interno del nome del hook. Quindi, un'automazione può essere attivata quando un'immagine in evidenza viene assegnata a un articolo, tramite il hook gatographql:added_post_meta:_thumbnail_id.

Questi sono gli hook Gato GraphQL aggiuntivi:

Hook WordPress di origineHook Gato GraphQL attivato
{$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}
(Tutti passando int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Quando c'è una differenza tra i vecchi e i nuovi termini)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (Passando anche string $post_type come 5° parametro)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (Passando anche string $post_type come 5° parametro)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Passando anche string $post_type come 5° parametro)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Passando anche string $taxonomy come 5° parametro)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Passando anche string $taxonomy come 5° parametro)
deleted_term_metagatographql:deleted_term_meta:{$meta_key}
gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Passando anche string $taxonomy come 5° parametro)

Debug dei problemi

Se l'automazione non è stata eseguita, potrebbe esserci un errore nella configurazione dell'automazione, o nell'esecuzione della persisted query.

Log di esecuzione

Consulta Risoluzione dei problemi per maggiori dettagli.

Log degli errori

Tutti i problemi di configurazione (come una stringa JSON malformata per le variabili GraphQL, o un riferimento a una persisted query che è stata eliminata) e gli errori di esecuzione (come eccezioni sollevate, o voci errors nella query GraphQL) vengono inviati alla funzione PHP error_log, e quindi vengono stampati nel log degli errori di WordPress.

Questi log degli errori sono preceduti dalla stringa [Gato GraphQL].