如何检测用户是否已订阅了Memberpress产品

时间:2015-04-20 09:57:45

标签: php wordpress membership

如何检测用户是否已购买会员印制品。

我正在搜索这样的内容:

if(have_subscription){ 
   //code to add button
}else{
   // code to add something else
}

提前致谢!

3 个答案:

答案 0 :(得分:5)

使用MemberPress的内置功能,这应该是非常直接的:

if(current_user_can('memberpress_authorized')) {
  // Do authorized only stuff here
}
else {
  // Do unauthorized stuff here
}

MemberPress还为每个MemberPress会员添加功能,因此您也可以执行以下操作:

if(current_user_can('memberpress_product_authorized_123')) {
  // Do authorized only stuff here
}
else {
  // Do unauthorized stuff here
}

在第二个示例中,数字123是MemberPress成员资格的ID。

答案 1 :(得分:2)

2015 年的答案对我不起作用,但却是热门搜索结果。我想我应该在此处与其他人分享我的搜索结果。

此外,我认为“product_authorized”功能仅检查是否进行了购买,而不是验证到期日期。

以下是 MemberPress 确定活动、非活动或不活动的方式:

$mepr_user = new MeprUser( $user_id );

if( $mepr_user->is_active() ) {
    // Active
}else if($mepr_user->has_expired()) {
    // Expired
}else {
    // Never a member
}

has_expired() 即使用户在单独的事务中处于活动状态,也可以返回 true,因此不要单独依赖它。

如果您需要检查特定的成员资格,您可以使用以下方法:

$user_id = 123;
$membership_id = 5000;

$mepr_user = new MeprUser( $user_id );

$mepr_user->is_already_subscribed_to( $membership_id ); // true or false

// OR

$mepr_user->is_active_on_membership( $membership_id ); // true or false

is_already_subscribed_to() 只接受产品 ID

is_active_on_membership() 接受以下任何一个:产品 ID、MeprProduct、MeprTransaction 或 MeprSubscription

您还可以通过以下方式获取用户的所有活动订阅:

$mepr_user->active_product_subscriptions( 'ids' ); // return array of ids

答案 2 :(得分:0)

打开您的 WordPress 网站并:

  • 选择Plugins > Add New
  • 点击Upload Plugin > Choose file
  • 从您保存的文件中选择 MemberPress 插件
  • 点击Install Plugin > Activate

您现在会发现 MemberPress 已添加到您的 WordPress 信息中心。
这应该会有所帮助。