WishListメンバープラグインを使用する場合のメンバーシップレベルの条件付きタグ?
-
16-10-2019 - |
質問
現在、ウィッシュリストメンバーと呼ばれるプラグインを使用しています。 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]」に対してこれらを作成することがわかりました。現在のユーザーをこれに対してチェックする方法についてのアイデアはありますか?
ありがとう!
解決
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
}
単純。
他のヒント
以前の回答に返信しなかったのは申し訳ありませんが、方法はわかりません。あなたの答えをありがとうBainternetに感謝しますが、それは大きな欠陥があります。問題は、WLメンバーのキャンセル /終了メンバーシップがある場合でも、$レベルアレイに表示されることです。これは、大きなセキュリティの欠陥になることになります。これを修正する方法は?
この投稿に編集:これを解決する方法を見つけました(wlmapi :: getuserlevelsはこちらで文書化されています http://wishlistproducts.com/api/api1/ )Arrayでキャンセルされたサブスクリプションを取得しないように、int $ $ canceledを1に設定する必要があります。
この投稿をもう一度編集します。私は、私が持っていたエラーは、キャンセルされたサブスクリプションではなく、終了したサブスクリプションに関連していました。 $ canceledのデフォルトパラメーターは0であり、それは一般的な意図的な行動であるキャンセルされたサブスクリプションを返さないことを意味します。昨夜、コードが多すぎるため、間違って話し始めました。残念なことに、終了したサブスクリプションレベルを返さないように関数を設定することはできません。