web-dev-qa-db-ja.com

ウィッシュリストメンバープラグインを使用する際のメンバーシップレベルの条件付きタグ?

私は現在Wishlistメンバーと呼ばれるプラグインを使用しています。それはあなたがWordPressの会員レベルを作成することを可能にします。閲覧ユーザーのメンバーシップレベルに応じて、ページに異なるコンテンツを表示できるようにしたいです。このようなもの -

<?php global $current_user; get_currentuserinfo(); 
if ($current_user->user_level == 10 ) { ?>
  Admin Stuff (In my case I left this blank)
<?php } else {   ?>
  Stuff Seen By Visitors
<?php } ?>

しかし管理者だけではありません。私は、このプラグイン作成が各メンバレベル "wpm_access [1296320588]"と "wpm_level [1296320588]"に対してこれらを作成することを発見しました。これに対して現在のユーザーを確認する方法に関するアイデアはありますか?

ありがとうございます。

2
Red

wishlisMembersサポートフォーラムでこれについて多くの議論がありますが、向こうの開発者はそれを無視します。とにかくこれを試してみてください。

// get the current user level from WP more important is global $user.
$user = wp_get_current_user();

// Get user levels from WishlistMembers
$levels = WLMAPI::GetUserLevels($user->ID);

//then run the check for the level you want like this:
if(in_array('silver', $levels)){
  //  PRINT OUT THE silver LEVEL stuff here
}
elseif (in_array('gold', $levels)){
   // PRINT OUT THE gold LEVEL stuff here
}

簡単です。

3
Bainternet

前回の回答に返信しないですみませんが、私は方法がわからない。あなたの答えをBainternetに感謝します、しかし、それはしかし、大きな欠陥を持っています。問題は、WLメンバーにキャンセル/終了メンバーシップがある場合、それは$ levels配列に表示されることです。これは大きなセキュリティ上の欠陥になります。これを修正するには?

この記事を編集する:これを解決する方法を見つけました(WLMAPI :: GETUserLevelsはここで文書化されています http://wishlistproducts.com/api/api1/ )あなたの配列でキャンセルされたサブスクリプションを取得しないように1にキャンセルされたint $を設定する必要があるでしょう。

このPOSTに編集:もう一度申し訳ありませんが、終了した購読に関連していたエラーはキャンセルされたものではありません。 $ cancelledのデフォルトパラメータは0で、これはキャンセルされた購読を返さないことを意味します。昨夜私はあまりにも多くのコードを持っていたので、私は間違って話し始めました。残念ながら、終了した購読レベルを返さないように関数を設定することはできません。

0
Florinache