Quản lý WordPress
Quản lý WordPressTự động hóa các nhiệm vụ

Tự động hóa các nhiệm vụ

Tự động thực thi một GraphQL Persisted Query khi có sự kiện xảy ra trên trang web.

Tạo các luồng tự động hóa trực tiếp qua trình soạn thảo WordPress. Trigger của tự động hóa là bất kỳ action hook nào của WordPress, và hành động là việc thực thi một GraphQL persisted query.

Truy cập tất cả các quy tắc tự động hóa

Nhấp vào "Automation Rules" trong menu của plugin để hiển thị danh sách tất cả các quy tắc tự động hóa đã tạo:

Quy tắc tự động hóa
Quy tắc tự động hóa

Tạo quy tắc tự động hóa mới

Nhấp vào "Add New Automation Rule" để thêm một mục mới.

Trong màn hình trình soạn thảo, chúng ta cần cung cấp cấu hình cho:

  • Trigger tự động hóa
  • Hành động tự động hóa
Trình soạn thảo quy tắc tự động hóa
Trình soạn thảo quy tắc tự động hóa

Hành động tự động hóa

Hành động tự động hóa chỉ định GraphQL persisted query nào sẽ được thực thi.

Cấu hình mục này với các thành phần sau:

Persisted Query: Chọn GraphQL persisted query nào cần thực thi (trong số tất cả các query có trạng thái publish hoặc private)

Static GraphQL Variables: Cung cấp một chuỗi JSON với các giá trị cho các biến GraphQL trong persisted query. Đây là các giá trị tĩnh.

Ví dụ:

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

Các giá trị này sẽ bị ghi đè bởi các biến GraphQL "động" (xem Trigger tự động hóa bên dưới).

Operation name (tùy chọn): Nếu persisted query chứa nhiều hơn một thao tác, bạn có thể chỉ định thao tác nào sẽ được thực thi (mặc định là thao tác cuối cùng).

Execute as user (tùy chọn): Thực thi GraphQL persisted query khi đăng nhập với tư cách một người dùng cụ thể, bằng cách cung cấp slug của người dùng đó.

Quy tắc tự động hóa - Thực thi Persisted Query
Quy tắc tự động hóa - Thực thi Persisted Query

Trigger tự động hóa

Một trigger tự động hóa chỉ định action hook nào của WordPress sẽ kích hoạt việc thực thi Persisted Query. Chúng ta có thể cung cấp nhiều hơn một trigger (ví dụ: để phản ứng khi chỉnh sửa bài viết hoặc trang, chúng ta có thể cung cấp các hook edit_post_postedit_post_page).

Cấu hình mục này với các thành phần sau:

Hook name: Tên action hook của WordPress.

Dynamic GraphQL Variables: Cung cấp một chuỗi JSON ánh xạ các biến GraphQL tới các đối số được truyền vào hàm hook. Các giá trị động này sau đó sẽ được cung cấp cho query khi chạy.

Từ điển JSON phải chứa tên biến GraphQL làm khóa, và vị trí của đối số trong action hook làm giá trị.

Ví dụ, hook draft_post (từ post status transitions) cung cấp $post_id làm đối số đầu tiên. Khi đó, JSON sau đây chỉ định rằng biến GraphQL $postID sẽ nhận giá trị của $post_id được truyền vào hook:

{
  "postID": 1
}

(Trong ví dụ này, 1 có nghĩa là "giá trị của đối số thứ 1 của draft_post".)

Nếu cùng một khóa được dùng cho cả biến GraphQL "động" và "tĩnh" (xem Hành động tự động hóa bên trên), thì các giá trị động sẽ được ưu tiên.

Quy tắc tự động hóa - Action hook
Quy tắc tự động hóa - Action hook

Ánh xạ hook WordPress

Có những hook WordPress không thể được sử dụng trực tiếp trong Automation Configurator, vì chúng truyền một đối tượng PHP qua hook, mà không thể dùng làm biến GraphQL.

Một số hook này đã được Gato GraphQL ánh xạ, bằng cách kích hoạt một hook mới có tiền tố gatographql: và cùng tên hook, đồng thời truyền ID của đối tượng tương ứng làm biến, có thể dùng làm biến GraphQL.

Ví dụ, hook WordPress draft_to_publish truyền $post làm biến (kiểu WP_Post). Gato GraphQL ánh xạ hook này thành gatographql:draft_to_publish, và truyền $postId (kiểu int) làm biến.

Bảng dưới đây liệt kê các hook WordPress đã được ánh xạ:

Hook WordPressHook được ánh xạ bởi Gato GraphQL
{$old_status}_to_{$new_status} (truyền WP_Post $post)gatographql:{$old_status}_to_{$new_status} (truyền int $postId, string $postType)

Ngoài ra, Gato GraphQL kích hoạt lại một số hook WordPress với thông tin bổ sung trong tên hook, để dễ dàng bắt và tự động hóa các sự kiện cụ thể.

Ví dụ, các hook tạo, cập nhật và xóa giá trị meta được kích hoạt có chứa meta key trong tên hook. Khi đó, một tự động hóa có thể được kích hoạt khi ảnh đại diện được gán cho bài viết, trên hook gatographql:added_post_meta:_thumbnail_id.

Đây là các hook Gato GraphQL bổ sung:

Hook WordPress nguồnHook Gato GraphQL được kích hoạt
{$old_status}_to_{$new_status}
(Truyền 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}
(Tất cả đều truyền int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Khi có sự thay đổi giữa các term cũ và mới)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (Cũng truyền string $post_type làm tham số thứ 5)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (Cũng truyền string $post_type làm tham số thứ 5)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Cũng truyền string $post_type làm tham số thứ 5)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Cũng truyền string $taxonomy làm tham số thứ 5)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Cũng truyền string $taxonomy làm tham số thứ 5)
deleted_term_metagatographql:deleted_term_meta:{$meta_key}
gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Cũng truyền string $taxonomy làm tham số thứ 5)

Gỡ lỗi sự cố

Nếu tự động hóa chưa được thực thi, có thể có lỗi trong cấu hình tự động hóa, hoặc trong quá trình thực thi persisted query.

Nhật ký thực thi

Xem Khắc phục sự cố để biết thêm chi tiết.

Nhật ký lỗi

Tất cả các vấn đề cấu hình (chẳng hạn như chuỗi JSON không hợp lệ cho các biến GraphQL, hoặc trỏ đến một persisted query đã bị xóa) và các lỗi thực thi (chẳng hạn như các ngoại lệ được ném ra, hoặc các mục errors trong GraphQL query) đều được gửi đến hàm PHP error_log, vì vậy chúng được in trong nhật ký lỗi WordPress.

Các nhật ký lỗi này được thêm tiền tố bằng chuỗi [Gato GraphQL].