Automation
AutomationAutomation Configurator

Automation Configurator

Menjalankan GraphQL Persisted Query secara otomatis ketika suatu peristiwa terjadi di situs.

Modul Automation Configurator menyediakan antarmuka pengguna "otomatisasi" untuk membuat otomatisasi melalui editor WordPress.

Pemicu otomatisasi adalah action hook WordPress apa pun, dan aksinya adalah eksekusi GraphQL persisted query.

Sebuah Custom Post Type "Automation Rules" disediakan untuk membuat otomatisasi. Saat membuat entri baru, kita harus memberikan konfigurasi untuk:

  • Pemicu otomatisasi
  • Aksi otomatisasi
Editor Aturan Otomatisasi
Editor Aturan Otomatisasi

Aksi otomatisasi

Aksi otomatisasi menunjukkan GraphQL persisted query mana yang akan dieksekusi.

Konfigurasikan item ini dengan elemen-elemen berikut:

Persisted Query: Pilih GraphQL persisted query mana yang akan dieksekusi (dari semua yang berstatus publish atau private)

Static GraphQL Variables: Berikan string JSON dengan nilai-nilai untuk variabel GraphQL dalam persisted query. Ini adalah nilai-nilai statis.

Misalnya:

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

Nilai-nilai ini ditimpa oleh variabel GraphQL "dinamis" (lihat Pemicu otomatisasi di bawah).

Operation name (opsional): Jika persisted query mengandung lebih dari satu operasi, Anda dapat menunjukkan mana yang akan dieksekusi (secara default, adalah yang terakhir).

Execute as user (opsional): Menjalankan GraphQL persisted query dengan login sebagai pengguna tertentu, dengan memberikan slug pengguna.

Aturan Otomatisasi - Eksekusi Persisted Query
Aturan Otomatisasi - Eksekusi Persisted Query

Pemicu otomatisasi

Pemicu otomatisasi menunjukkan action hook WordPress mana yang akan memicu eksekusi Persisted Query. Kita dapat memberikan lebih dari satu (misalnya: untuk bereaksi hanya terhadap pengeditan post atau halaman, kita dapat memberikan hooks edit_post_post dan edit_post_page).

Konfigurasikan item ini dengan elemen-elemen berikut:

Hook name: Nama action hook WordPress.

Dynamic GraphQL Variables: Berikan string JSON yang memetakan variabel GraphQL ke argumen yang diberikan ke fungsi hook. Nilai-nilai dinamis ini kemudian akan diberikan ke query pada saat runtime.

Kamus JSON harus berisi nama variabel GraphQL sebagai kunci, dan posisi argumen dalam action hook sebagai nilai.

Misalnya, hook draft_post (dari transisi status post) memberikan $post_id sebagai argumen pertama. Kemudian, JSON berikut menunjukkan bahwa variabel GraphQL $postID akan menerima nilai $post_id yang diteruskan ke hook:

{
  "postID": 1
}

(Dalam contoh ini, 1 berarti "nilai argumen ke-1 dari draft_post".)

Jika kunci yang sama digunakan untuk variabel GraphQL "dinamis" dan "statis" (lihat Aksi otomatisasi di atas), maka nilai dinamis memiliki prioritas.

Aturan Otomatisasi - Action hook
Aturan Otomatisasi - Action hook

Pemetaan hook WordPress

Ada hook WordPress yang tidak dapat digunakan langsung di Automation Configurator, karena hook tersebut menyediakan objek PHP melalui hook, yang tidak dapat diinput sebagai variabel GraphQL.

Beberapa hook ini telah dipetakan oleh Gato GraphQL, dengan memicu hook baru yang diawali dengan gatographql: dan nama hook yang sama, dan meneruskan ID objek yang sesuai sebagai variabel, yang dapat diinput sebagai variabel GraphQL.

Misalnya, hook WordPress draft_to_publish meneruskan $post sebagai variabel (bertipe WP_Post). Gato GraphQL memetakan hook ini sebagai gatographql:draft_to_publish, dan meneruskan $postId (bertipe int) sebagai variabel.

Tabel berikut mencantumkan hook WordPress yang dipetakan:

Hook WordPressHook yang dipetakan oleh Gato GraphQL
{$old_status}_to_{$new_status} (meneruskan WP_Post $post)gatographql:{$old_status}_to_{$new_status} (meneruskan int $postId, string $postType)

Selain itu, Gato GraphQL memicu ulang beberapa hook WordPress dengan informasi tambahan pada nama hook, untuk memudahkan penangkapan dan otomatisasi peristiwa tertentu.

Misalnya, hook yang membuat, memperbarui, dan menghapus nilai meta dipicu dengan menyertakan kunci meta sebagai bagian dari nama hook. Kemudian, sebuah otomatisasi dapat dipicu ketika gambar unggulan ditetapkan ke post, pada hook gatographql:added_post_meta:_thumbnail_id.

Berikut adalah hook Gato GraphQL tambahan:

Hook WordPress sumberHook Gato GraphQL yang dipicu
{$old_status}_to_{$new_status}
(Meneruskan 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}
(Semua meneruskan int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Ketika ada perbedaan antara term lama dan baru)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Juga meneruskan string $taxonomy sebagai parameter ke-5)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Juga meneruskan string $taxonomy sebagai parameter ke-5)
deleted_term_metagatographql:deleted_term_meta:{$meta_key}
gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Juga meneruskan string $taxonomy sebagai parameter ke-5)

Debugging masalah

Jika otomatisasi belum dieksekusi, mungkin ada kesalahan pada konfigurasi otomatisasi, atau eksekusi persisted query.

Log eksekusi

Periksa Troubleshooting issues untuk detail lebih lanjut.

Log kesalahan

Semua masalah konfigurasi (seperti string JSON yang tidak valid untuk variabel GraphQL, atau menunjuk ke persisted query yang telah dihapus) dan kesalahan eksekusi (seperti exception yang dilempar, atau entri errors dalam query GraphQL) dikirim ke fungsi PHP error_log, sehingga dicetak dalam log kesalahan WordPress.

Log kesalahan ini diawali dengan string [Gato GraphQL].

Contoh

Berikut adalah beberapa contoh cara menggunakannya:

  • Membuat gambar unggulan untuk post baru menggunakan AI
  • Menambahkan blok wajib ke post saat diterbitkan
  • Mengganti http dengan https di semua sumber gambar dan tautan saat post diperbarui
  • Mengirim email ke admin ketika ada post baru
  • Mengirim email ke pengguna yang komentarnya mendapat balasan baru
  • [Multisite] Menerjemahkan post baru ke berbagai bahasa, dan menambahkan post yang diterjemahkan ke setiap situs
  • Menjalankan aksi pada layanan eksternal (misalnya: secara otomatis berbagi post baru di Facebook)

Misalnya, saat membuat post baru dengan status draft, aturan otomatisasi bawaan Add comments block to new post memeriksa apakah blok core/comments ada dan, jika tidak, menambahkannya di bagian bawah post:

Secara otomatis menyisipkan blok komentar ke post 'draft' baru
Secara otomatis menyisipkan blok komentar ke post 'draft' baru