Welcartで会員限定サイトを作る方法【ログインページにリダイレクト】

ヨッチヨッチ

こんにちは。代表のヨッチです。
ミライヨッチにお越しいただき、ありがとうございます。

Welcartは、ワードプレスで通販サイト(ECショップ)を作成できるプラグインです。

デフォルトでは、誰でも閲覧・購入ができるようになっていますよね。
クローズドサイト(会員限定)の設定がないので、困っている方も多いのではないでしょうか?

この記事では、Welcartで会員限定サイトを作る方法をわかりやすく紹介しています。
非会員はログインページにリダイレクトするので、サイト内の閲覧を制限できます。

ソースコードをコピペするだけなので、簡単に設定できますよ。
というわけで、サクッと導入してしまいましょう!

Welcartで会員制サイトを作る方法【3ステップ】

Welcartで会員制サイトを作る方法は、たった3ステップでOKです。

  1. パーマリンクを投稿名に変更する
  2. ソースコードをコピーする
  3. ソースコードをfunctions.phpに貼り付ける

これだけで、非会員はログインページにリダイレクトするように設定できます。
では、1つずつ詳しく見ていきましょう。

【1】パーマリンクを投稿名に変更する

会員制サイトを作るための事前設定として、ワードプレスのパーマリンクを変更します。

管理画面の「設定」→「パーマリンク設定」から、パーマリンク設定を開きましょう。
共通設定で「投稿名」を選択して、「変更を保存」をクリックします。

パーマリンク設定

【2】ソースコードをコピーする

カスタマイズに必要なソースコードをコピーしましょう。

ボックス内の右上にある「Copy」をクリックすれば、すべてコピーできます。

add_action( 'template_redirect', 'my_redirect' );
function my_redirect() {
	//ログイン画面リダイレクト処理
	//ログイン判定 wordpress,welcart
	//URL判定 usces-menber,wp-login.php,wp-admin,wp-cron
	if(!is_user_logged_in() && !usces_is_login() && !strstr($_SERVER['REQUEST_URI'],'/usces-member/') && !strstr($_SERVER['REQUEST_URI'],'/wp-login.php') && !strstr($_SERVER['REQUEST_URI'],'/wp-admin/') && !strstr($_SERVER['REQUEST_URI'],'/wp-cron.php')) {
		wp_safe_redirect( home_url( '/usces-member/' ) );
		exit;
	}
}

【3】ソースコードをfunctions.phpに貼り付ける

コピーしたソースコードを、functions.phpに貼り付けます。

管理画面の「外観」→「テーマエディター」を開くと、テーマ編集画面が開きます。

テーマエディター

「テーマのための関数(functions.php)」を選択して、functions.phpを開きましょう。

テーマのための関数(functions.php)

functions.phpを開いたら、一番下の行にソースコードを貼り付けてファイルを更新します。

一番下の行にソースコードを貼り付け

これで会員制サイトの設定が完了しました!
ログインしていない状態でサイトを開くと、ログインページにリダイレクトします。

また、functions.phpに編集を加えるときは、念のためバックアップをとっておきましょう。
万が一の不具合があっても、バックアップしておけば復元できます。

ソースコードの解説

ソースコードは、以下の内容で条件を判定しています。

  • ワードプレスにログインしているか?
  • Welcartにログインしているか?
  • ワードプレスのログインページを開いているか?
  • Welcartのログインページを開いているか?
  • WP-Cronが動作するように除外

ワードプレス・Welcartにログインしていなければ、Welcartのログインページにリダイレクトします。
ワードプレスのログインページであれば、リダイレクトせずにそのまま表示されます。

また、WP-Cronという機能が動作するように「wp-cron.php」は除外済みです。

会員登録ページを非表示にしたいとき

会員登録ページを表示しない設定は、テーマごとに対応が必要です。
テーマ内のCSSを確認して、「display: none;」で登録ボタンを非表示にしましょう。

【まとめ】Welcartで会員限定サイトを作成できる

Welcartを会員限定のクローズドサイトにするには、カスタマイズが必要です。
ここで紹介したソースコードを使えば、すぐにクローズドサイトに変更できます。

add_action( 'template_redirect', 'my_redirect' );
function my_redirect() {
	//ログイン画面リダイレクト処理
	//ログイン判定 wordpress,welcart
	//URL判定 usces-menber,wp-login.php,wp-admin,wp-cron
	if(!is_user_logged_in() && !usces_is_login() && !strstr($_SERVER['REQUEST_URI'],'/usces-member/') && !strstr($_SERVER['REQUEST_URI'],'/wp-login.php') && !strstr($_SERVER['REQUEST_URI'],'/wp-admin/') && !strstr($_SERVER['REQUEST_URI'],'/wp-cron.php')) {
		wp_safe_redirect( home_url( '/usces-member/' ) );
		exit;
	}
}

注意点として、かならずパーマリンクを「投稿名」に変更しておきましょう。
「投稿名」ではない場合は、リダイレクトが正常に動作しません。

会員登録ページを非表示にするには、テーマごとの設定が必要になります。
あなたのテーマを確認して、対応しているClassに「display: none;」を適用しましょう。

「会員限定サイト」「登録ページ非表示」を実装すれば、外部の人に閲覧されることはなくなります。
一部の人だけに公開したいショップを作るときに、試してみてはどうでしょうか?