Custom Demotion KB Article

Community:

Is there a KB article on demotion? I want to demote someone from level2 to level1 upon subscription cancellation.

I found these:

https://www.s2member.com/forums/topic/changing-the-eot-demotion-level-dynamically/index.html
https://www.s2member.com/forums/topic/problem-changing-the-eot-demotion-level-dyna/index.html

Willy

Try setting s2Member to demote members to subscribers when their subscription ends, and then add this as an mu-plugin:

<?php
function kts_demote_specific_role_on_eot( $user_id, $old_user_data ) {
	// get old user info
	$old_roles = $old_user_data->roles;
	 	
	// get new user info
	$user = get_userdata( $user_id );
	$new_roles = $user->roles;
	
	// demote user on EOT
	if( in_array( 's2member_level2', $old_roles ) && in_array( 'subscriber', $new_roles ) ) {
            $user->remove_role( 'subscriber' );
            $user->add_role( 's2member_level1' );
	}
}
add_action( 'profile_update', 'kts_demote_specific_role_on_eot', 10, 2 );

Thank you for your response - much appreciated!