「MailPoet Newsletters」の購読中止画面をオリジナルに変更する

「MailPoet Newsletters」は初期状態で、送信したメルマガから読者が直接購読を解除できる「購読中止」リンクが付いています。

メルマガを送信毎に、この「購読中止」が何人に押されたかどうかの購読や、実際にメルマガを開いた人数もダッシュボードにて確認できるようです。

初期状態だと「購読中止」リンクを押した後のページがエントリーのデザインを利用した予期せぬものになったりするためこれを変更する必要があるかと思います。

公式にもガイドが用意されており、とてもわかり易いのですが改めて手順を残しておきたいと思います。
公式のカスタマイズガイドはこちら:Customize your Confirmation and Unsubscribe pages

事前の用意

functions.phpに下記のコードを追加します。

/* メルマガ用 */
/**
 * function to return an undo unsbscribe string for MailPoet newsletters
 * you could place it in the functions.php of your theme
 * @return string
 */
function mpoet_get_undo_unsubscribe(){
 if(class_exists('WYSIJA') && !empty($_REQUEST['wysija-key'])){

 $undo_paramsurl = array(
 'wysija-page'=>1,
 'controller'=>'confirm',
 'action'=>'undounsubscribe',
 'wysija-key'=>$_REQUEST['wysija-key']
 );

 $model_config = WYSIJA::get('config','model');
 $link_undo_unsubscribe = WYSIJA::get_permalink($model_config->getValue('confirmation_page'),$undo_paramsurl);

 $undo_unsubscribe = str_replace(
 array('[link]','[/link]'),
 array('<a href="'.$link_undo_unsubscribe.'">','</a>'),
 '<p><b>'.__('You made a mistake? [link]Undo unsubscribe[/link].',WYSIJA)).'</b><p>';
//日本語翻訳の訳を利用したくない場合はこちらを直接変えることでページに反映できます。 
 return $undo_unsubscribe;
 }
 return '';
}

add_shortcode('mailpoet_undo_unsubscribe', 'mpoet_get_undo_unsubscribe');
  1. 新規ページ作成で「購読停止」ページを作成します。
  2. 本文に適当な文と [mailpoet_undo_unsubscribe] のショートコードを挿入します。
  3. 保存します。
    ※こちらのプレビューからは実際の画面は確認できません。
  4. 次にサイドメニューから「MailPoet」>「設定」を開きます。
  5. 画面の下のほうにあります、「購読中止ページ」から先ほど作成したページのタイトルを選択します。
  6. 「プレヴュー」から実際の画面が確認できます。
  7. 「設定を保存」で終了です。