Welcart パスワードを忘れた場合の再設定リクエスト後の送信メールをカスタマイズする方法

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

関連記事

コメント

タイトルとURLをコピーしました