Automatyzowanie zadań
Automatycznie wykonuj GraphQL Persisted Query, gdy na stronie wystąpi jakieś zdarzenie.
Twórz automatyzacje bezpośrednio w edytorze WordPress. Wyzwalaczem automatyzacji jest dowolny action hook WordPress, a akcją jest wykonanie persisted query GraphQL.
Dostęp do wszystkich reguł automatyzacji
Po kliknięciu "Automation Rules" w menu wtyczki wyświetlana jest lista wszystkich utworzonych reguł automatyzacji:

Tworzenie nowej reguły automatyzacji
Kliknij "Add New Automation Rule", aby dodać nowy wpis.
Na ekranie edytora należy podać konfigurację dla:
- Wyzwalacza(-y) automatyzacji
- Akcji automatyzacji

Akcja automatyzacji
Akcja automatyzacji wskazuje, która persisted query GraphQL zostanie wykonana.
Skonfiguruj ten element za pomocą następujących elementów:
Persisted Query: Wybierz, którą persisted query GraphQL wykonać (spośród wszystkich ze statusem publish lub private)
Static GraphQL Variables: Podaj ciąg JSON z wartościami dla zmiennych GraphQL w persisted query. Są to wartości statyczne.
Na przykład:
{
"emailSubject": "New post on the site"
}Wartości te są nadpisywane przez "dynamiczne" zmienne GraphQL (patrz Wyzwalacz(-e) automatyzacji poniżej).
Operation name (opcjonalnie): Jeśli persisted query zawiera więcej niż jedną operację, możesz wskazać, którą z nich wykonać (domyślnie jest to ostatnia).
Execute as user (opcjonalnie): Wykonaj persisted query GraphQL będąc zalogowanym jako konkretny użytkownik, podając slug użytkownika.

Wyzwalacz(-e) automatyzacji
Wyzwalacz automatyzacji wskazuje, który action hook WordPress wyzwoli wykonanie Persisted Query. Można podać więcej niż jeden (np.: aby reagować tylko na edycję posta lub strony, można podać hooki edit_post_post i edit_post_page).
Skonfiguruj ten element za pomocą następujących elementów:
Hook name: Nazwa action hooka WordPress.
Dynamic GraphQL Variables: Podaj ciąg JSON mapujący zmienne GraphQL na argumenty przekazywane do funkcji hooka. Te dynamiczne wartości będą następnie przekazywane do queries w czasie wykonywania.
Słownik JSON musi zawierać nazwę zmiennej GraphQL jako klucz, a pozycję argumentu w action hooku jako wartość.
Na przykład, hook draft_post (z post status transitions) przekazuje $post_id jako pierwszy argument. Poniższy JSON wskazuje, że zmienna GraphQL $postID otrzyma wartość $post_id przekazaną do hooka:
{
"postID": 1
}(W tym przykładzie 1 oznacza "wartość 1. argumentu draft_post".)
Jeśli ten sam klucz jest używany dla zmiennych GraphQL "dynamicznych" i "statycznych" (patrz Akcja automatyzacji powyżej), to wartości dynamiczne mają pierwszeństwo.

Mapowanie hooków WordPress
Istnieją hooki WordPress, których nie można bezpośrednio używać w Automation Configurator, ponieważ przekazują obiekt PHP przez hook, który nie może być użyty jako zmienna GraphQL.
Kilka z tych hooków zostało zmapowanych przez Gato GraphQL poprzez wyzwolenie nowego hooka z prefiksem gatographql: i tą samą nazwą hooka, oraz przekazanie odpowiedniego ID obiektu jako zmiennej, która może być użyta jako zmienna GraphQL.
Na przykład, hook WordPress draft_to_publish przekazuje $post jako zmienną (typu WP_Post). Gato GraphQL mapuje ten hook jako gatographql:draft_to_publish i przekazuje $postId (typu int) jako zmienną.
Poniższa tabela zawiera listę zmapowanych hooków WordPress:
| Hook WordPress | Hook zmapowany przez Gato GraphQL |
|---|---|
{$old_status}_to_{$new_status} (przekazując WP_Post $post) | gatographql:{$old_status}_to_{$new_status} (przekazując int $postId, string $postType) |
Ponadto Gato GraphQL ponownie wyzwala kilka hooków WordPress z dodatkowymi informacjami w nazwie hooka, aby ułatwić przechwytywanie i automatyzowanie określonych zdarzeń.
Na przykład, hooki, które tworzą, aktualizują i usuwają wartości meta, są wyzwalane z kluczem meta jako częścią nazwy hooka. Dzięki temu automatyzacja może być wyzwolona, gdy do posta zostanie przypisany obraz wyróżniający, na hooku gatographql:added_post_meta:_thumbnail_id.
Oto dodatkowe hooki Gato GraphQL:
| Źródłowy hook WordPress | Wyzwolony hook Gato GraphQL |
|---|---|
{$old_status}_to_{$new_status}(Przekazując 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}(Wszystkie przekazując int $postId, string $postType) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Gdy istnieje różnica między starymi a nowymi terminami) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (Również przekazując string $post_type jako 5. parametr) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (Również przekazując string $post_type jako 5. parametr) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Również przekazując string $post_type jako 5. parametr) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Również przekazując string $taxonomy jako 5. parametr) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Również przekazując string $taxonomy jako 5. parametr) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Również przekazując string $taxonomy jako 5. parametr) |
Debugowanie problemów
Jeśli automatyzacja nie została wykonana, może wystąpić błąd w konfiguracji automatyzacji lub podczas wykonywania persisted query.
Logi wykonania
Sprawdź Rozwiązywanie problemów, aby uzyskać więcej szczegółów.
Logi błędów
Wszystkie problemy z konfiguracją (takie jak źle sformułowany ciąg JSON dla zmiennych GraphQL lub wskazanie na persisted query, która została usunięta) oraz błędy wykonania (takie jak zgłoszone wyjątki lub wpisy errors w query GraphQL) są wysyłane do funkcji PHP error_log, więc są drukowane w logu błędów WordPress.
Te logi błędów są poprzedzone ciągiem [Gato GraphQL].