Welcartでログインパスワードを忘れてしまった場合に再設定用のURLをリクエストする機能がありますが、リクエスト後に自動送信されるメールは管理画面からカスタマイズが出来ないため “usces_filter_send_lostmail_para1” というフィルターフックを利用してカスタマイズ対応を行います。
パスワード再設定リクエスト後の送信メールカスタマイズ
/**
* パスワードを忘れた場合の再設定リクエスト後の送信メールカスタマイズ
* $para1
* 'to_name' => sprintf(_x('%s', 'honorific', 'usces'), $usces_lostmail),
* 'to_address' => $usces_lostmail, //
* 'from_name' => get_option('blogname'), //
* 'from_address' => $usces->options['sender_mail'], //
* 'return_path' => $usces->options['sender_mail'], //
* 'subject' => $subject, //タイトル
* 'message' => do_shortcode($message), //本文
*/
function ag_usces_filter_send_lostmail_para1( $para1 )
{
global $usces;
$mail_data = $usces->options['mail_data'];
$footer = $mail_data['footer']['othermail'];
//パスワード再発行用URL抽出
if( preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $para1['message'], $match) !== false){
$url = $match[0][0];
} else {
$url = '';
}
//タイトル
$para1['subject'] = 'パスワード再設定';
//本文
$message .= "当サイトをご利用いただきありがとうございます。\n";
$message .= "ご連絡いただきましたパスワードの再設定についてご案内させていただきます。\n";
$message .= "\n";
$message .= "1.下記のURLをクリックしてください。\n";
$message .= $url."\n";
$message .= "\n";
$message .= "2.サイト内で新たなパスワードを再設定してください。\n";
$message .= "\n";
$message .= "不明点などがございましたら、下記のお問い合わせフォームからご連絡ください。\n";
$message .= "https://analyzegear.co.jp/contact\n";
$message .= "\n";
$message .= $footer;
$para1['message'] = $message;
return $para1;
}
add_filter( 'usces_filter_send_lostmail_para1', 'ag_usces_filter_send_lostmail_para1', 10, 3 );
タイトルのみや本文のみをカスタマイズする場合
“usces_filter_send_lostmail_para1” はメール全体をカスタマイズするためのフィルターフックですが、タイトルのみは “usces_filter_lostmail_subject” 、本文のみは “usces_filter_lostmail_message“と部分的にカスタマイズするためのフィルターフックも用意されています。
関連するフィルターフック
フィルターフック名 | 内容 |
---|---|
usces_filter_lostmail_subject | タイトル用 |
usces_filter_lostmail_message | 本文用 |
usces_filter_lostmail_footer | フッター用 |
usces_filter_send_lostmail_para1 | メール全体用 |
メール送信関数
” \wp-content\plugins\usc-e-shop\functions\function.php ” の 778行目の “usces_lostmail($url) { … } ” という関数でパスワード再設定用のリンクを送信するメールの生成及び送信を行っています。
こちらの関数内に関連する各フィルターフックが呼び出されていることが確認出来ます。
動作環境情報
エックスサーバー(x10) PHP 7.3.16 MySQL 5.7 WordPress 5.4.2 Welcart e-Commerce 1.9.31
コメント