WooCommerce で商品を売るのをやめ、サイトを見本や紹介だけの形に変えたあと、ログインしていない状態で「マイアカウント」のページを開くと、会員登録のフォームが残っていました。サイトには「会員登録はいりません」と書いていたので、見た人が迷ううえに、使わないフォームから知らない人のアカウントが作られるおそれもあります。
会員登録のフォームは 3 か所から出る
止めるところは 3 つあります。WooCommerce の「マイアカウント」のページと、購入の画面(チェックアウト)、それから WordPress 本体の登録の画面です。WooCommerce の設定だけ見て安心すると、本体の登録の画面が開いたまま、ということがあります。
- マイアカウント:WooCommerce → 設定 → アカウントとプライバシー →「アカウント作成」の「「マイアカウント」ページ上」
- 購入手続き(チェックアウト):同じ「アカウント作成」の「購入手続き時」
- WordPress 本体:設定 → 一般 →「メンバーシップ:だれでもユーザー登録ができるようにする」
3 つともチェックを外して保存します。ログインのフォームは残るので、管理者のログインには困りません。
設定を戻されないようにコードで止める
プラグインの更新や、ほかの人の操作で設定が戻ることが気になるなら、テーマの functions.php で値を決めてしまう方法もあります。pre_option_ のフィルターは、DB の値を読む前に返す値を決められるので、設定の画面で変えても効きません。
// WooCommerce の会員登録を止める(設定の画面の値より優先)
add_filter( 'pre_option_woocommerce_enable_myaccount_registration', function () {
return 'no';
} );
add_filter( 'pre_option_woocommerce_enable_signup_and_login_from_checkout', function () {
return 'no';
} );
// WordPress 本体の登録も止める
add_filter( 'pre_option_users_can_register', '__return_zero' );
コードで止めると、設定の画面のチェックを入れても登録は開きません。あとでまた売るときに戻し忘れないよう、コメントに理由を書いておきます。
止めたあとに確認すること
- ログアウトした状態(またはシークレットウィンドウ)で「マイアカウント」のページを開き、登録のフォームが出ないこと
/wp-login.php?action=registerを開くと、登録は無効という表示に移ること- ページのキャッシュを使っているなら、キャッシュを消してから見ること(前のページが出ることがあります)
- プライバシーポリシーに「アカウントのパスワード」「購入履歴」などが残っていれば、今の形に書き直すこと
売るのをやめたサイトでは、返品のポリシーやお問い合わせのフォームも残りがちです。使わないものはページを下書きに戻し、来た人は案内のページへ 301 で移しておくと、古いリンクから来た人も迷いません。
