Welcartで会員ページやカートページを判定して条件分岐するソースコードと、それを使った自作関数

Welcartで自動的に生成される会員ページやカートページかどうかを調べて、処理を分けるための条件分岐をメモ。基本的にこれらのページは固定ページになりますが、もっと細かく判定したかったので。

効率を考えて再利用しやすい関数にしたので、それについても書いておきます。

2015年9月18日追記:

どうやらWelcart側の仕様が一部変更になったのか、以下にあるコードで使えないモノが出てきました。カートページの判定は商品をカートに追加してページ遷移した場合のみしか$usces->pageの中に「cart」という文字列が入らなくなったようです(もしかして前から?)

カートページの判定、会員ページ(ログインページも同様)の判定にはget_option()関数に「usces_cart_number」と「usces_member_number」を引数として渡してやると以下のようにできます。

 

会員ページ or カートページの判定

以下のソースコードを使えば会員ページ、またはカートページの判定が出来ます。しかし、Welcartがアップデートされてもしかしたら修正が必要になる可能性があるので注意して下さい。(使えなくなることはそうそう無いとは思いますが…)

Welcartの情報は変数「$usces」に格納されているので、アロー演算子を使って現在のページの名前を拾っています。会員ページは「usces-member」、カートページは「usces-cart」の文字列が共通していたので、これを利用して判定しています。

サイドバーなど別のテンプレート上で使う場合はPHPのglobalを使って変数のスコープ範囲をグローバルにしないと拾えません。もしスコープについてよくわからない場合は、後に書く判定用の関数の使用をオススメします。

(スコープについてはこちらのページ『PHP: 変数のスコープ – Manual』が勉強になります)

ログインページや配送ページなどの細かい判定

さらに細かく、ログインページや新規会員登録ページ、配送方法ページや注文完了ページなど細かく判定したい場合は以下のソースコードを使います。

同じく「$usces」から情報引っ張ってきて判定しています。

会員ページの細かい判定

カートページの細かい判定

 会員ページ、カートページの判定をする関数

これらソースコードを使って判定しても良いのですが、もし複数の場所で使ったり、将来的に再利用したい場合は関数を使ったほうが良いと思います。(Welcartにアップデートが来て、万が一修正する羽目になった場合に対応するのが楽になります。関数のソースコードを修正するだけで良いので)

それぞれ使う場合は以下のように、「is_member_page()」「is_cart_page()」をif文で判定します。会員ページ、カートページならそれぞれ「true」が返ってきます。違うなら「false」が返ります。

 会員、カートページの細かい判定用の関数

会員ページ、カートページを細かく判定する関数は、引数に文字列を渡して使います。

デフォルトではカートページの判定をしています。他のページで判定したい場合は以下の文字を渡して下さい。

  • cart (カートページの場合)
  • customer (お客様ページの場合)
  • delivery  (配送方法ページの場合)
  • confirm (確認ページの場合)
  • ordercompletion (注文完了ページの場合)

 

  • login (ログインページの場合)
  • newmemberform (新規会員登録ページの場合)
  • newcompletion (新規会員登録完了ページの場合)
  • lostmemberpassword (パスワード発行ページの場合)
  • lostcompletion (パスワード発行メール送信完了ページの場合)
  • changepassword (パスワード変更ページの場合)
  • changepasscompletion (パスワード変更完了ページの場合)
  • member (会員情報ページの場合)
  • editmemberform (会員情報更新完了後ページの場合)

例えば配送方法ページかどうかを調べたい場合は以下のようにします。


これら判定用の関数が見つからなかったので用意したのですが、もしかしてあったりするんですかね。

最終更新日:2015年9月18日

コメント

「何かそこ違うよ」「こうした方が良い」っていう部分があったら指摘して頂けると嬉しいです。

トラックバック

トラックバックは現在ありません。

Trackback: https://increment-log.com/welcart-member-cart/trackback/