我一直在寻找一段时间,并且无法在任何地方找到我的问题的答案。我正在为艺术委员会网站建立一个会员目录,并且我使用Wordpress插件会员管理年度订阅费。我正在尝试将用户信息打印到一个简单的目录页面 - 目前只是回显php中的用户值,如下所示:
<?php
$user_query = new WP_User_Query( array( 'role' => 'Subscriber' ) );
// User Loop
if ( ! empty( $user_query->results ) ) {
foreach ( $user_query->results as $user ) {
echo '<p>' . $user->display_name . '</p>';
echo '<p>' . $user->user_email . '</p>';
echo '<p>' . $user->user_url . '</p>';
echo '<p>' . $user->description . '</p>';
echo '<p>' . $user->subscription . '</p>';
echo '<p>' . $user->memberpress_authorized . '</p>';
$type = $user->mepr_artist_type;
for($i=0; $i<=sizeof($type); $i+=1) {
echo '<p>' . $type[$i] . '</p>';
}
}
} else {
echo 'No users found.';
}
?>
这一切都很好,现在只是用于测试,但我试图弄清楚如何检查用户是否有有效订阅。此属性未存储在WP_User_Query数据库中,我也不知道如何在其他地方检查它。
我已经在Memberpress插件中检查了提示的代码,并尝试使用WP_mepr_members数据库,它确实存储了会员名称值,但到目前为止我还没有成功。尽管我确实找到了这个功能,但是会员记录文档一直没用,
<?php if(current_user_can('mepr_auth')) {
// acf content output here
}
但是,对于我尝试做的事情,它并没有以有用的方式格式化,因为它只检查当前用户的权限,而不是所有用户的权限。有谁知道如何解决这个问题?
感谢。
答案 0 :(得分:0)
你应该可以这样做:
<?php if(user_can($user->ID, 'memberpress_authorized')) {
// acf content output here
}
答案 1 :(得分:0)
这里有点晚,但是您可以进入MeprUser类。这是一个示例函数,用于获取用户的订阅标题的名称并将其显示在管理区域中。
function display_user_sub() {
$user_ID = get_current_user_id(); // get the user ID
$member = new MeprUser(); // initiate the class
$member->ID = $user->ID; // if using this in admin area, you'll need this to make user id the member id
$result = $member->get_active_subscription_titles("<br/>"); //MeprUser function that gets subscription title
echo $result // displays sub title, example 'Gold Membership'
}
您可以在插件中搜索MeprUser,以获取适用于您的方案的更多方法和属性。