あるランクの会員にのみ情報を表示する

フォーラム 使い方全般 あるランクの会員にのみ情報を表示する

  • このトピックには10件の返信、5人の参加者があり、最後にgellにより9年前に更新されました。
11件の投稿を表示中 - 1 - 11件目 (全11件中)
  • 投稿者
    投稿
  • #73814
    steve-n
    参加者

    ——————————————-
    WordPress のバージョン:最新
    Welcart のバージョン:4.1.0
    ご利用のテーマ:オリジナル
    症状を確認したブラウザ:
    サーバー(会社名、サービス名):
    SSLの利用: 
    WordPress のパーマリンク設定:
    ——————————————–

    こんにちは

    会員ページ(wc_member_page.php)にあるランクの会員にだけ情報を表示したいのですが、
    どのように可能ですか?
    usces_the_member_status を使うと単に会員の名前しか表示されません
    よろしくお願いいたします。

    #73815
    gell
    参加者

    http://welcustom.net/offer-for-special-members/

    こちらの記事が参考になるのではないでしょうか?

    #73816
    steve-n
    参加者

    ありがとうございます。
    上記リンクの記事はある会員に対して価格変動させるというものではないでしょうか?

    書き方が悪かったのかしれませんが、
    ある会員ランクにのみ表示される分岐方法なのですが。

    よろしくお願いします。

    #73861
    nanbu
    キーマスター

    こんにちは。

    usces_the_member_status(‘return’) では、ログインしている会員ランクを返しています。これを利用して条件分岐してはいかがですか。

    gell さんがご提供くださいました記事にも同様の事が書いてあるようです。

    #73875
    steve-n
    参加者

    別からひっぱってきた条件分岐にはめて
    以下のようにしましたが
    単に会員ランクを表示するだけで
    うまくいきません
    全然間違ってるかもしれませんが、
    よろしくお願いします。

    <?php $status = usces_the_member_status( ‘id’ ); ?>
    <?php if( 3 === $status ): ?>
    特別会員への内容ここに表示
    <?php elseif( 1 === $status ): ?>
    優良会員への内容ここに表示
    <?php else: ?>
    <!– その他は何も表示なし –>
    <?php endif; ?>

    #73876
    yasumax
    キーマスター

    こんにちは。
    「usces_the_member_status」は、「ランク名」を返す関数です。
    引数が「’return’」の場合以外は echo されます。

    下記トピックが参考になるのではないでしょうか。
    Welcartフォーラム

    #73879
    steve-n
    参加者

    ありがとうございます

    <?php if (usces_the_member_status( ‘return’ )== ‘特別会員’) : ?>
    特別会員への内容ここに表示
    <?php endif; ?>

    上記の記事を参考にすると
    こういうことでしょうか?
    上記では会員ランクしか表示されません
    よろしくお願いします

    ※以前、welcartレスキューで会員ランクによる割引を設定していただき、特別会員という名前になっています。

    #73880
    gell
    参加者

    こんにちは。

    事例を拝見いたしますと、とあるページの表示内容の一部を会員ランクごとに変更したい様に見えますがよろしかったでしょうか?

    そう致しますと、

    
    <?php if(usces_is_login() && usces_the_member_status('return') == '特別会員'): ?>
    特別会員の表示内容
    <?php elseif(usces_is_login() && usces_the_member_status('return') == '優良会員'): ?>
    優良会員の表示内容
    <?php else: ?>
    <?php endif; ?>
    

    試してませんが、こんな感じでいけるのでは?と思います。
    冗長に感じるようでしたらusces_is_login() && usces_the_member_status(‘return’)を$statusに入れるなりしてもよいと思います。

    テンプレートそのものを特別会員のみ使用するとか、そういう事ならちょっと書き方が変わってきますが、要はusces_the_member_status(‘return’)でその人の会員ランクを調べてそれが”特別会員”と一致したら次を表示、”優良会員”と一致したら次を表示、どれにも当てはまらない場合は表示しないという指示を与えているにすぎません。

    usces_is_login() &&は、ログインしていないと会員ランクはわからないと思いますので、念のため入れてあります。

    違っていたらすみません。

    #73881
    steve-n
    参加者

    gell様

    ありがとうございます!
    これが私の求めていたものです。

    どうやら
    usces_is_login()
    を入れていなかったのが表示されなかった原因ではないかと思います。

    なにはともあれ
    ありがとうございました。

    #73882
    masuda-clair
    参加者

    表示されるだけ
    ということは、この関数のカッコの中が
    ‘return’
    以外になっていると思うのですが

    ‘return’
    が設定されたときのみ計算結果のように代入ができ
    それ以外(入れない場合を含んで)は
    無条件でランクが表示され
    値は何も帰ってきません
    代入してもnull(何もない)状態です
    よってその後のIF文はすべて無視されます

    たぶん、そういうことで「ランク名が表示されるだけ」に
    なっているのではないでしょうか?
    途中のソースでは’id’が入ていたと思うのですが
    これはたぶん会員IDを設定したかったのではないかと思うのですが
    それでも、これでは「id」という文字が渡ってしまいますし
    idであっても’retrun’ではないので、表示されて終わりです
    カッコの中は’retrun’ではいといけないと思いますよ

    • この返信は9年前にmasuda-clairが編集しました。
    #73884
    gell
    参加者

    大丈夫だったようですね。
    お役に立てた様でよかったです。

11件の投稿を表示中 - 1 - 11件目 (全11件中)
  • このトピックに返信するにはログインが必要です。