Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save itsjusteileen/822e7579997670378a5dbef6c9dda5e9 to your computer and use it in GitHub Desktop.
Save itsjusteileen/822e7579997670378a5dbef6c9dda5e9 to your computer and use it in GitHub Desktop.
Change user's membership level only when a user expires from a specific level.
<?php
/**
* Change membership level for users expiring from startup level, moving them to primary level.
* Users can cancel their membership level after their before or after the membership level change.
*/
function wbon_change_default_level_when_expiring_startup( $user_id, $level_id ) {
global $wpdb;
$SQL = "SELECT membership_id FROM $wpdb->pmpro_memberships_users WHERE user_id = $user_id AND status='expired' ORDER BY id DESC LIMIT 1";
$results = $wpdb->get_results( $SQL, OBJECT );
$expired_level = $results[0];
$old_level_id = (int) $expired_level->membership_id;
if ( 3 == $old_level_id ) {
pmpro_changeMembershipLevel( 2, $user_id );
}
return $user_id;
}
add_filter( 'wbon_membership_post_membership_expiry', 'wbon_change_default_level_when_expiring_startup', 10, 2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment