Skip to content

Instantly share code, notes, and snippets.

@cartpauj
Created March 7, 2018 15:51
Show Gist options
  • Save cartpauj/be4c2eb63432e8a8942a8fa4cc321f3b to your computer and use it in GitHub Desktop.
Save cartpauj/be4c2eb63432e8a8942a8fa4cc321f3b to your computer and use it in GitHub Desktop.
Get a list of the current user's active MemberPress Subscriptions
<?php
if(class_exists('MeprUtils')) {
$user = MeprUtils::get_currentuserinfo();
if($user !== false && isset($user->ID)) {
//Returns an array of Membership ID's that the current user is active on
//Can also use 'products' or 'transactions' as the argument type
$active_prodcuts = $user->active_product_subscriptions('ids');
if(!empty($active_prodcuts)) {
foreach($active_prodcuts as $membership_id) {
// Do something
}
}
}
}
@NUWebStudio
Copy link

I assume you found the solution to the expiry date but incase you havent I found this worked for me:


$user = MeprUtils::get_currentuserinfo();
$subscriptions = $user->active_product_subscriptions('transactions');
    if(!empty($subscriptions)) {
        foreach($subscriptions as $s){
            $expire = $s->expires_at;
            $expire = date('d/m/Y',strtotime($expire));
            echo $expire;
        }
    }
    else {
        _ex('You have no active subscriptions to display.', 'ui', 'memberpress');
    }

@dskurth
Copy link

dskurth commented Nov 25, 2019

I assume you found the solution to the expiry date but incase you havent I found this worked for me:


$user = MeprUtils::get_currentuserinfo();
$subscriptions = $user->active_product_subscriptions('transactions');
    if(!empty($subscriptions)) {
        foreach($subscriptions as $s){
            $expire = $s->expires_at;
            $expire = date('d/m/Y',strtotime($expire));
            echo $expire;
        }
    }
    else {
        _ex('You have no active subscriptions to display.', 'ui', 'memberpress');
    }

Thank you. with a bit of an adjustment of using any user id, perfect results.

@axew3
Copy link

axew3 commented Apr 9, 2021

Would be like this, the best way to associate products ids and related products names? Or what else? Anybody know?

    $user = new MeprUser( $user_id );


    //$active_products = $user->active_product_subscriptions(); // same as ('ids')
    $active_products = $user->active_product_subscriptions('ids');
    $products_titles = $user->get_active_subscription_titles('~'); 
    $products_titles = explode('~',$products_titles);
    $products_ids_titles_assoc_x_user = array_combine($active_products,$products_titles);

That return something like:

Array ( [11000] => Annual Membership - Auto Renewing [13000] => Monthly Membership – Manually Renewing )

@cartpauj
Copy link
Author

cartpauj commented Apr 9, 2021

@axew3

$active_membership_ids = $user->active_product_subscriptions('ids');
$titles = array();
if(!empty($active_membership_ids)) {
  foreach($active_membership_ids as $id) {
    $membership = new MeprProduct($id);
    $titles[] = $membership->post_title;
  }
}

@axew3
Copy link

axew3 commented Apr 9, 2021

@cartpauj Thank you!
I was thinking to check for a different way, since mine was make me feel not secure: not sure if the result is ever correct the way of my snippet (if some order change for example). Anyway your seem to me that do not return the same like into mine, that should be something like:
Array ( [11000] => Annual Membership - Auto Renewing [13000] => Monthly Membership – Manually Renewing )
product ID => product Name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment