在Memberpress中检查用户订阅类型

Gra*_*cks 5 php wordpress

我已经寻找了一段时间,但无法在任何地方找到我的问题的答案。我正在为艺术委员会网站建立会员目录,并使用 Wordpress 插件 Memberpress 来管理年度订阅费。我正在尝试将用户信息打印到一个简单的目录页面 - 目前只是回显 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.';

  }

   ?>
Run Code Online (Sandbox Code Playgroud)

这一切都工作正常,现在只是为了测试,但我试图弄清楚如何检查用户是否有有效的订阅。该属性未存储在 WP_User_Query 数据库中,我不知道如何在其他地方检查它。

我已经检查了 Memberpress 插件中的代码以获取提示,并尝试使用 WP_mepr_members 数据库,该数据库似乎确实存储了成员资格名称值,但到目前为止我还没有成功。尽管我确实找到了这个功能,但 Memberpress 文档没有帮助:

<?php if(current_user_can('mepr_auth')) {
  // acf content output here
}
Run Code Online (Sandbox Code Playgroud)

但是,它的格式对于我想要做的事情来说并不是一种有用的方式,因为它只检查当前用户的权限,而不是所有用户的权限。有谁知道如何解决这一问题?

谢谢。

dyl*_*zee 2

虽然有点晚了,但您可以利用 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'
}
Run Code Online (Sandbox Code Playgroud)

您可以搜索 MeprUser 插件以获取可用于您的场景的更多方法和属性。