質問するログイン新規登録

質問編集履歴

1

コードの追加

2021/09/21 20:05

投稿

hiroaki_
hiroaki_

スコア6

title CHANGED
File without changes
body CHANGED
@@ -41,4 +41,53 @@
41
41
  メール自体はページ更新時に配信されるようにはなったのですが、何故かメールが必ず2通届いてしまいます。。
42
42
  $to部分にメールアドレスを直接記載してみたり、mb_send_mailを使ってみたりしてみたのですが、どの場合も必ず2回メールが届いてしまいます。
43
43
  原因不明なのですが、過去に同じような経験をした方がいればと思い質問させていただきました。
44
- よろしくおねがいします。
44
+ よろしくおねがいします。
45
+
46
+
47
+
48
+ ご回答いただいた方法で少しコードを書き直しましたので再投稿致します。
49
+ 現状はまだ2回送信されています。
50
+ wordpressのwp mail logging で送信ログを確認したところ2回同じメールアドレスに送信がされていることが確認できました。
51
+
52
+ ```ここに言語を入力
53
+ <?php
54
+ function my_post_updated($post_ID, $post_after, $post_before) {
55
+
56
+ //ユーザー一覧の取得
57
+ $blogusers = get_users('role=subscriber');
58
+
59
+
60
+ // post_ID:1006
61
+ if ($post_ID == 1006 && $post_type = 'page') {
62
+
63
+ foreach ( $blogusers as $user) {
64
+
65
+ $to_mail = ($user -> user_email);
66
+
67
+ // 送信先のメールアドレス(複数指定可)
68
+ $to = $to_mail;
69
+
70
+ // 件名
71
+ $subject = '新しい記事が公開されました';
72
+
73
+ // 本文
74
+ $message = $post_after->post_title . "\n"; //更新後の固定ページタイトル
75
+ $message .= get_permalink($post_ID) . "\n"; //固定ページのURL
76
+ $message .= "上記リンクから最新ページにアクセス可能です。";
77
+
78
+ // FromやReply-Toを記述。WordPressの一般設定で設定しているメールアドレスをFromにする場合は空配列。
79
+ $headers = [];
80
+
81
+ // 添付ファイルがあればファイルパスを記述
82
+ $attachments = [];
83
+
84
+ if(did_action('post_updated') == 1){
85
+ wp_mail($to, $subject, $message, $headers, $attachments);
86
+ }
87
+ remove_action('post_updated','my_post_updated',10);
88
+ };
89
+ };
90
+ };
91
+
92
+ add_action('post_updated','my_post_updated',10,3);
93
+ ```