Welcart新規会員登録メール認証のカスタマイズ方法

welcartには、会員登録時のメール認証が拡張機能として用意されています。
https://www.welcart.com/documents/manual-welcart/manual-2/welcart-shop/%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e8%a8%ad%e5%ae%9a/%e6%8b%a1%e5%bc%b5%e6%a9%9f%e8%83%bd#anc4

メール認証の際に出現するページは2つあります。

  1. 認証中の案内ページ(デフォルトのh2見出し:認証メール送信完了)
    登録フォームに会員情報を送信後、表示されます。
    デフォルトのページにある案内文は下記のとおりです。
    「認証メールを送信しました。メール内の承認用のURLをクリックして会員登録を完了してください。○ 時間以内に認証を完了しない場合は、この登録は無効となります。」
    (○印の制限時間は、登録を実行した時から翌日の午前3時までの時間です)
  2. 認証完了ページ(デフォルトのh2見出し:会員登録完了)
    認証メール内のURLにアクセスすると表示されます。
    このページにアクセスすることで登録が完了します。

これらのページをテーマ側でカスタマイズする方法が分かりにくいので、メモしておきます。

デフォルトのテンプレート

welcart_basic等の頒布テーマには、上記2つのページで使用されるテンプレートファイルが存在しません。
これまで、welcart開発元(株式会社Welcart)やTCDによるwelcart対応テーマを10件ほど触ってきましたが、そのどれにもなかったです。

上記2つのページを表示する際は、Welcart本体の下記ビルトインテンプレートが使われています。

  • usc-e-shop/templates/cart/verifying.php
    注文手続き途中での会員登録の際に表示される認証中の案内ページ
  • usc-e-shop/templates/cart/verified.php
    認証完了ページ
  • usc-e-shop/templates/member/verifying.php
    会員登録の手続き中に表示される認証中の案内ページ

Welcart本体のビルトインテンプレートファイルは、テーマのwc_templatesフォルダにあるテンプレートファイルとは構造が異なります。

テーマのwc_templatesフォルダにあるテンプレートファイルは、get_header()からget_footer()まで、ページすべてがコーディングされています。

一方、ビルトインテンプレートファイルは違います。
the_contentフィルターフックで出力される部分のみのコーディングです。

カスタマイズ方法

2通りあります。

1.フルコーディングのテンプレートファイルを用意する

テーマのwc_templatesフォルダ内に、下記テンプレートファイルを設置する方法です。
wc_templatesフォルダ内にあるその他テンプレートと同様に、get_header()からget_footer()までフルコーディングする必要があります。

設置場所・ファイル名は下記のとおり決められています。
決められた場所・ファイル名で設置すると、Welcartがビルトインテンプレートよりも優先してインクルードしてくれます。

  • テーマフォルダ/wc_templates/cart/wc_cart_verifying.php
  • テーマフォルダ/wc_templates/cart/wc_cart_verified.php
  • テーマフォルダ/wc_templates/member/wc_member_verifying.php

関連するファイルとメソッド
usc-e-shop/extensions/VerifyMembersEmail/verify_members_email.php
USCES_VERIFY_MEMBERS_EMAIL->start_verifying()
USCES_VERIFY_MEMBERS_EMAIL->start_verifying_cart()
USCES_VERIFY_MEMBERS_EMAIL->complete_verifying()

2.部分コーディングのテンプレートファイルを用意する

テーマのfunctions.phpに、下記のフィルターフックを使って任意のファイルをインクルードする方法です。
設置場所・ファイル名にルールはありません。テーマ内の任意のフォルダと任意のファイル名でOKです。
インクルードされたファイルの内容は、the_contentフィルターフックで出力されます。

$temp_path = apply_filters( ‘usces_template_path_cartverifying’, USCES_PLUGIN_DIR . ‘/templates/cart/verifying.php’ );
$temp_path = apply_filters( ‘usces_template_path_cartverified’, USCES_PLUGIN_DIR . ‘/templates/cart/verified.php’ );
$temp_path = apply_filters( ‘usces_template_path_memberverifying’, USCES_PLUGIN_DIR . ‘/templates/member/verifying.php’ );

add_filter( 'usces_template_path_cartverifying', function( $temp_path ) {
    return 'インクルードしたいファイルのパス';
} );

関連するファイルとメソッド
usc-e-shop\classes\usceshop.class.php
$usces->filter_cartContent()
$usces->filter_memberContent()

認証手続きで送信されるメール

  1. USCES_VERIFY_MEMBERS_EMAIL->send_verifymail()
    デフォルトのSubject:認証メール送信完了
    認証手続き中に送信されるメール。メール本文に認証用URLが記載されています。

    $usces->regist_member()
    ↓
    usces_filter_veirfyemail_newmemberform, usces_filter_veirfyemail_newmemberfromcart フィルターフック
    ↓
    USCES_VERIFY_MEMBERS_EMAIL->member_registered()
    ↓
    内部で実行される USCES_VERIFY_MEMBERS_EMAIL->send_verifymail()

コメント

コメントを残す

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