「嗚呼、WooCommerce凄い。凄いよWooCommerce」と思いながら構築していて気付いてしまいました。退会機能が無いと。
WordPress自体には退会(自らアカウント情報を削除)という概念がないらしく、そのままWooCommerceは受け継いでいるようです。
WooCommerceのドキュメントでは中々情報が見つからない。そこでGoogleにて見つけたのがWordPress公式フォーラムでの同じ質問でした。解答者によると「Delete Me」というプラグインで解決できるようです。
目次
Delete Meで退会できるようにする
Delete Meの設定や使い方は『【Plugin】メンバー・会員が自分で退会できるようにしてくれる「Delete Me」』を参考にさせていただきました。
詳細はこちらの記事を参考にするとして、WooCommerceの場合に設定するべき箇所のみメモしておきます。
プラグインの設定
まずは「設定 > Delete Me」からプラグインの設定ページへ。WooCommerce用で最低限設定する項目は以下の3つです。
- Roles
- Shortcode > Link
- Shortcode > JS Confirm Warning
「Roles」の設定
「Roles」の中からCustomerを選びましょう。
「Shortcode > Link」の設定
確定情報ではありませんが、どうやらこの「Link」項目を設定しないとショートコードが機能しない場合があるようです。ので、”class”には任意のクラス名(delete-memberなど)を、リンクテキストには「退会する」といったテキストを入力しておきましょう。
「Shortcode > JS Confirm Warning」の設定
最後に設定するべき項目は「JS Confirm Warning」ですね。退会リンクをクリックしたときに表示するブラウザのアラートメッセージです。
海外サイトなら英語のままで良さそうですが、日本向けであれば日本語の方が良いでしょう。例としてWelcartを参考にします。
Welcartでは「会員に関する全ての情報が削除されます。よろしいですか?」とアラートメッセージが表示されます。
このプラグインではユーザー名を表示する”%username%”が使えるので、「%username%様の会員に関する全ての情報が削除されます。よろしいですか?」と設定しておきました。
各々設定して以下のようになりました。
※「JS Confirm Enabled」というチェック項目がありますが、これは退会リンクをクリックしたときに「JS Confirm Warning」で設定したアラートメッセージを表示するか否か、という設定です。
退会ページを用意する
Delete Meは退会ボタン(aタグによるリンク)をショート―コードで設置できます。退会用の固定ページを作成し、[plugin_delete_me /]
というショートコードをエディタ内に入力して公開します。
これで、WooCommerceに自ら退会する機能の追加ができます。実際に退会してユーザーアカウントを削除したところ、WooCommerceの受注一覧には注文履歴は残ることを確認しました。
退会後の処理は、デフォルトでWebサイトのTOPに自動的に飛びます。この挙動を修正したい場合は、”退会が完了しました”といったタイトルの固定ページを作成して「Landing URL」の項目にURLを入力すると良いでしょう。
退会をお知らせするページを作成しても良いけど、そのページは普段見せたくないという場合のご要望がありそうなのでアイディアだけメモしておくと、
- 退会ページは普通に固定ページで作成
- 「WooCommerce Memberships」などのプラグインで退会ページは会員のみ見える仕様に設定
- 「Landing URL」の項目に{退会ページURL?ver=hoge}といったクエリストリング付きURLを設定
- クエリストリングで条件分岐に対応した退会ページ用のカスタムテンプレートを作成
といった方法で対応でしょうか(プログラムが必要)。
アカウントページのメニューに「退会する」などのリンクを追加し、専用のアカウントページとテンプレート読み込みのプログラムも作成可能ですが、こちらも少し長くなりそうなのと需要があるか分からないので保留とします。