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