Created
June 18, 2019 19:09
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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