Skip to content

Instantly share code, notes, and snippets.

@LMNTL
Created June 18, 2019 19:09
Show Gist options
  • Save LMNTL/b56fe5d88733cd7f9b03dc4c0651097b to your computer and use it in GitHub Desktop.
Save LMNTL/b56fe5d88733cd7f9b03dc4c0651097b to your computer and use it in GitHub Desktop.
Show the last membership level had, even if hidden, for members with a "cancelled" role on levels page
function my_pmpro_levels_array_cancelled($levels)
{
$current_user = wp_get_current_user();
$user_meta = get_userdata($current_user->ID);
if( in_array( "cancelled", $user_meta->roles ) )
{
$order = new MemberOrder();
$order->getLastMemberOrder($current_user->ID, array("cancelled","expired","error"));
if( empty( $order->id ) )
return $levels;
$member_level = pmpro_getLevel( $order->membership_id );
}
else
{
return $levels;
}
$check = false;
foreach($levels as $level)
{
if($level->id == $member_level->id)
{
$check = true;
break;
}
}
if($check || !$member_level)
{
$newlevels=$levels;
}
else
{
$newlevels = array_merge($levels, array($member_level));
}
return $newlevels;
}
add_filter("pmpro_levels_array", "my_pmpro_levels_array_cancelled");
function my_pmpro_checkout_level($pmpro_level)
{
global $wpdb;
$pmpro_level = $wpdb->get_row("SELECT * FROM $wpdb->pmpro_membership_levels WHERE id = '" . esc_sql($_REQUEST['level']) . "' LIMIT 1");
return $pmpro_level;
}
add_filter("pmpro_checkout_level", "my_pmpro_checkout_level");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment