在Memberpress

时间:2016-12-14 02:06:14

标签: php wordpress

我一直在寻找一段时间,并且无法在任何地方找到我的问题的答案。我正在为艺术委员会网站建立一个会员目录,并且我使用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
}

但是,对于我尝试做的事情,它并没有以有用的方式格式化,因为它只检查当前用户的权限,而不是所有用户的权限。有谁知道如何解决这个问题?

感谢。

2 个答案:

答案 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,以获取适用于您的方案的更多方法和属性。