新しい投稿を通知するメールを全購読者に自動送信する
WordPressサイトに新しい投稿が作成されるたびに、すべての購読ユーザーへ自動的に通知メールを送信します。

Gato GraphQLを使用すると、サイトに新しい投稿が作成されるたびに、メールリストを購読しているすべてのユーザーへ自動的に通知メールを送信できます。
デモ動画では、まずパーシステッドクエリ Send email to users about post を実行し、特定の投稿の内容を含むメールの送信をテストします。
JSONディクショナリでGraphQL変数 $postId に値 1 を渡してGraphQLクエリを実行します。すべてのメールをインターセプトするMailpitで確認すると、すべてのユーザーへパーソナライズされたメールが送信されたことが検証できます。
たとえば、ユーザー「Blogger Davenport」は次のようなメールを受信しました。

デフォルトでは、このGraphQLパーシステッドクエリはすべてのユーザーへメールを送信します。特定のメールリストを購読しているユーザーなど、送信先ユーザーを指定することも可能です。クエリ内の users(filter:) 入力のコメントを外すことで実現できます。
{
users
# # Retrieve only users subscribed to an email list (uncomment if needed)
# (
# filter: {
# metaQuery: {
# key: "email_list",
# compareBy: {
# arrayValue: {
# value: "new_posts",
# operator: IN
# }
# }
# }
# }
# )
}このフィルターは、メタ email_list(リスト名の配列)に値 new_posts を持つユーザーを取得します。
再度クエリを実行すると、今度はそのメールリストを購読している3名のユーザーへメールが送信されました。
最後に、サイトに新しい投稿があるたびに通知メールが自動送信されるようプロセスを自動化します。そのために、オートメーションルール Send notification email to users when there is a new post を公開します。
このオートメーションルールは フック gatographql:draft_to_publish によってトリガーされます。投稿のステータスが draft から publish に切り替わるたびに、ユーザーへ通知メールが自動的に送信されます。