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 );

Note: This is a filter to adjust the level ID or level array when a user is changing levels. If you would like to perform an action whenever a user’s level has changed, use the pmpro_after_change_membership_level action hook instead.

Parameters

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

Source

File: https://github.com/strangerstudios/paid-memberships-pro/blob/master/includes/functions.php

View in Source Code