以下の条件でSubscribe2を使う場合の設定メモです。
条件
- 投稿時に通知する/しないを選択したい
- Subscribe2のメールマガジン登録者は無し
- WordPressのユーザーのみに送信
- 一部のWordPressユーザーには送信しない
- カスタム投稿タイプでもSubscribe2で通知をしたい
環境
- WordPress 4.7.1
- Subscribe2 10.21
またSubscribe2日本語化ファイルを以下よりダウンロードし、インストールしました。
http://www.sandalot.com/subscribe2-v9-2の日本語化ファイルをリリースしました/
まず上記の1.ですが、Subscribe2をインストールすると新規投稿画面に「Subscribe2通知設定」が表示されます。
チェック無しでは通知、チェックを入れると通知しない。
Subscribe2ではメールマガジン登録者とWordPressのユーザーそれぞれに設定があり、ややこしいのですが、今回はメールマガジン登録者無しでWordPressのユーザーのみが対象なので楽です。
まずはSubscribe2(日本語化も)インストール直後に投稿通知テスト
WordPressのユーザーにも通知は無し。
とりあえず送信先を自分のみにして検証
- [Subscribe2]ー[設定]ー[登録ユーザー]で「プロフィールページにワンクリック購読を設置」を「はい」にする。
- 自分のプロフィールページで「購読メールアドレス」の「購読 / 購読解除」で「通知を受信」をオンにする。 その他のユーザーはデフォルトでオフになっているのでそのまま。
- 投稿するとエラー。
Fatal error: Uncaught exception ‘phpmailerException’ with message ‘Invalid address: (setFrom) =?UTF-8?….. - [Subscribe2]ー[設定]ー[メール通知設定]で「メール送信者」がサイトタイトル(日本語(2byte))だったので「投稿者」に変更すると、エラーが出ずに正常に送信された。
- [設定]ー[一般]でサイトタイトルを半角英字にし、[Subscribe2]ー[設定]ー[メール通知設定]で「メール送信者」をサイトタイトル(英語(1byte))にして投稿しても、エラーが出ずに正常に送信された。
サイトタイトルは日本語にしておきたいので、メール送信者を「投稿者」にした状態で次の検証に進む。
投稿画面のTinyMCEのツールバーにSubscribe2のボタンを表示しない
[Subscribe2]ー[設定]ー[外観]で設定。
ついでに「Subscribe2のウィジェットを有効にしますか?」もオフにする。
メール本文に「?」が表示される
どうやら
<p> </p>
が原因のようだ。
HTMLメールにして検証するため、[Subscribe2]ー[設定]ー[登録ユーザー]で「自動購読したユーザーへ送信するメール形式 : 」を「」から「」に変更したが、Plain Textで送信された。
こちらはWordPressに新規登録時の設定か?
[Subscribe2]ー[読者設定画面]の「Notification Settings」でメール形式を「HTML – Full」にすると、HTMLメールで送信できた。(注:WordPressユーザーのみで、メルマガ読者にはHTMLメールを送信できず、Plain Textのみです)
またほとんどの「?」は表示されなくなったが、表組みの中で空欄となっている箇所は「?」になった。
HTMLメールを抜粋にするには
[Subscribe2]ー[読者設定画面]の「Notification Settings」でメール形式を「HTML – Excerpt」にする。
既存のWordPressのユーザーに通知するよう設定変更した場合のメール形式
Plain Textで送信された。[Subscribe2]ー[読者設定画面]の「Notification Settings」はログインしているユーザーに対する設定か?
既存のWordPressのユーザーにもHTMLで送信するには、[Subscribe2]ー[メルマガ読者]ー[登録済みの購読者]で、現在の読者(メールアドレス)の編集画面を表示し、メール形式を「」から「」に変更する。
一括して変更したい時は、[Subscribe2]ー[メルマガ読者]ー[登録済みの購読者]で「この名義でメールを送信」を「」にし、[書式をまとめて更新]ボタンをクリックすると変更できた。
この一括変更はWordPressのユーザー全てに適用されているが、ダッシュボードの各ユーザーのプロフィールで「購読メールアドレス」の「購読 / 購読解除」で「通知を受信」がオンになっていない限りは通知されない。
新規にWordPressに登録するユーザーに対する設定
[Subscribe2]ー[設定]ー[登録ユーザー]の「Auto-Subscribe」で以下を設定する。
- サイトへのユーザー登録時 : 自動的に登録
- 自動購読したユーザーへ送信するメール形式 : HTML – Full
※「サイトへのユーザー登録時 :
カスタム投稿タイプでも投稿時に通知する
Googleで色々調べた結果、以下のサイトが参考になった。
WordPress プラグインSubscribe2 カスタム投稿・タクソノミーに対応する方法
そこに「➔ readme.txtにも書いてあります。」とあるので念のためプラグインの中のreadme.txt を開いても、それらしき記述は見つからない。が、FAQのページが記載されており、そこを見ると、
27. How do I make use of the support for Custom Post Types?
とあり、上記参考サイトと同じソースが記載されていた。
(ちなみに元の作者?のGithubのreadme 191行目以下にも同じことが書かれていた。
https://github.com/niconoe/Subscribe2-WP-plugin-with-new-filters-/blob/master/ReadMe.txt )
したがってfunctions.phpにフィルターを適用するように記述。
ただ、上記参考サイトでは、
> カスタム投稿編集画面で「Subscribe2通知設定」は追加表示されません。無条件に通知されます。
とあり、その解決方法としてプラグインのソースファイルを変更するよう記載されていたが、Subscribe2バージョン10.21ではすでに表示されるようになっていた。
カスタム投稿編集画面で「Subscribe2通知設定」のデフォルトをオフにする
Subscribe2では投稿時、通知のデフォルト値はオンです。(「この記事のメール通知を行わない場合はチェックしてください」がオフ状態)
このデフォルト値を逆にしたいと思いながらも、その方法が分からなかった。
しかし前述のカスタム投稿タイプでも投稿時に通知する方法を探っている時、subscribe2/classes/class-s2-admin.phpの265行目以下にそれらしき記述を発見。改めてダッシュボードで確認してみると、[Subscribe2]ー[設定]ー[外観]で「編集中のページの更新通知をデフォルトでオフにしますか?」をオンにすると、投稿編集画面の「この記事のメール通知を行わない場合はチェックしてください」がデフォルトでオンになることがわかった。
Yukawa, Hayashi