Filter the new level for the user as passed in to the pmpro_changeMembershipLevel function before it is added to the member.

apply_filters( 'pmpro_change_level', $level, $user_id, $old_level_status, $cancel_level );


int ID of level to set as new level. 0 if the user’s membership is being cancelled.
int ID of the user to change levels for
string The status to set for the row in the memberships users table. (e.g. inactive, cancelled, admin_cancelled, expired) Defaults to ‘inactive’.
int If set, cancel just this one level instead of all active levels (to support Multiple Memberships per User)



View in Source Code