Subscribe2 10.35 カスタマイズ

WordPress Plugin

WordPress メルマガ / Newsletter プラグインでお馴染みのSubscribe2。バージョンアップに手がかかりますが、、忘れずにカスタマイズすることをおさらいします。
無料版でもできることいっぱい!フィルターフックで使い方がさらに広がります。

【環境】
・WordPress 5.7.2
・PHP 7.4
・Subscribe2 10.35

◎アップデート時は、上記1つ目と翻訳ファイルをセット(使い方によります)

Subscribe2 one click subscribe
[管理画面] ユーザープロフィール

バージョン9.x頃までは機能していたと思いますが、===で比較するように変更されてから、通知OFFからONにセットできなくなりました。次のようにソースコードを修正します。
※===は方比較するため、'1' にするか、==で比較するか、(int)で$_POSTをキャスト、で対応します。

subscribe2/classes/class-s2-admin.php 1147行目//変更前
if ( isset( $_POST['sub2-one-click-subscribe'] ) && 1 === $_POST['sub2-one-click-subscribe'] ) {
//変更後
if ( isset( $_POST['sub2-one-click-subscribe'] ) && '1' === $_POST['sub2-one-click-subscribe'] ) {

Settings画面で送信者(Send Email From:)をサイト管理者・登録ユーザー・投稿者から選択できます。

プラグインのインストール直後は、Subscribe2のオプション変数に「dismiss_sender_warning」が含まれておらず不調なため、一度、サイト管理者以外を選択して設定保存すること。→①
その後、改めて送信者(Send Email From:)を設定します。

送信メールドメインに注意
メールドメインがサイトドメイン(サブドメイン可)と異なる場合は、管理画面上部にエラーメッセージが表示されます。

送信メールドメイン・エラーメッセージ

①の設定保存をしていない場合は、メッセージは表示されません。

※SMTP送信プラグイン等の利用で、送信者Fromを一律変更していても、Subscribe2のロジックにより送信できません。

カスタムポストを送信対象にする場合は、フィルターフックで追加します。

funcitons.php などadd_filter( 's2_post_types', function( $types ){
  $types[] = 'recipe'; //カスタムポストをセット
  return $types;
} );

※ブロックエディタ対応により、カスタムポスト編集画面にデフォルトで「Subscribe2 Sidebar」が追加されましたが、メール送信するには、このフィルターフックでの追加が必要です。

Subscribe2 Sidebar
Subscribe2 Sidebar

メール配信するか否かは、投稿に設定したカテゴリ(タクソノミ)により決まります。
デフォルトでは「カテゴリー」のみですので、タグや独自設置したタクソノミを対象にする場合は。フィルターフックで追加します。

functions.php などadd_filter( 's2_taxonomies', function( $taxonomies ){
	$taxonomies[] = 'cookware'; //タクソノミをセット
	return $taxonomies;
} );

フィルターフックでセットできます。
※テンプレートはhtmlメールとテキストメールとも共通なので、どちらにも対応できるようコーディングすることがポイント。(テキストメールはタグが削除された状態になるので、空白行に注意)

add_filter( 's2_email_template', function( $mailtext ){
	$mailtext = <<<EOD
<table><tr><td class="inner"><div class="contents">
...
</div></td></tr></table>
EOD;
	return $mailtext;
} );

HTMLメールのソースもフィルターフックを利用できます。
スタイルシートがコーディングしやすくなって◎。

add_filter( 's2_html_email', function( $html_email, $subject, $message ){
	$html_email = <<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>{$subject}</title>
<style>
...
</style>
</head>
<body>
{$message}
</body>
</html>
EOD;
	return $html_email;
}, 10, 3 );

ブロックエディタで、Subscribe2 HTMLブロックをセットできます。
ショートコード[ subscribe2 ]と同等です(ショートコードがセットされます)。
※undefinedになる場合は、一度Subscribe2 HTMLブロックの設定で何か保存してみましょう。

ボタンテキストを変更するフィルターフックs2_subscribe_button, s2_unsubscribe_buttonです。

functions.phpなどadd_filter( 's2_unsubscribe_button', function( $text ){
	return "配信停止";
} );
add_filter( 's2_subscribe_button', function( $text ){
	return "登録";
} );

Subscribe2フォームから送信される確認メールの本文は、フィルターフックs2_confirm_emailで変更できます。
登録と登録解除は、テンプレートキーワード{ACTION}で置換できます。

add_filter( 's2_confirm_email', function( $body ){
	$body = <<<EOD
メールアドレスの{ACTION}を受け付けました。
{ACTION}の手続きを完了するためには、下記URLをクリックしてください。
{LINK}
※このメールにお心当たりのない方は、削除をお願いします。
---
{BLOGNAME}
{BLOGLINK}
EOD;
	return $body;
} );

Subscribe2フォームから登録する際に送信される、登録確認メールの本文を変更するフィルターフックです。

add_filter( 's2_subscribe_confirmed', function( $message ){
    $message .= <<<EOD
<p>ご登録ありがとうございます。.....</p>
EOD;
    return $message;
} );

同様に、登録解除確認のメール本文を変更するフィルターフックです。

add_filter( 's2_unsubscribe_confirmed', function( $message ){
    $message .= <<<EOD
<p>ご利用ありがとうございました。</p>
EOD;
    return $message;
} );

その他
クラシックエディタご利用の場合は、以前の記事が参考になることがあるかもしれません。

参考
https://subscribe2.wordpress.com/
https://getwemail.io/docs/subscribe-2/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です