Atualize o nível de assinatura com o pmpro e o wp-discourse

Esta é a mesma função usada por Simon Cossarteam. Veja este link:

Manage group membership in Discourse with WP Discourse SSO

Eu usei a mesma função e preciso de ajuda. Também postei o código acima.

Este é o meu código de atualização de nível de associação:

function action_pmpro_after_change_membership_level( $level_id, $user_id, $cancel_level ) {

		$group_name = dcpmp_get_level_for_id( $level_id );
		if ( is_wp_error( $group_name ) ) {

			return null;
		}
		$groupname = DiscourseUtilities::get_discourse_user( $user_id, false );
	
		// Remove o usuário.
        $result = DiscourseUtilities::remove_user_from_discourse_group( $user_id, $groupname );
        if ( ! empty( $result->success ) ) {
           // Remove a chave de metadados do nível de associação.
            delete_user_meta( $user_id, "dcpmp_group_{$groupname}" );
        }
	    
        $result1 = DiscourseUtilities::add_user_to_discourse_group( $user_id, $group_name );

        if ( ! empty( $result1->success ) ) {

            // Se o usuário foi adicionado ao grupo, adicione um par chave/valor de metadados que poderá ser usado posteriormente.
            add_user_meta( $user_id, "dcpmp_group_{$group_name}", 1, true );
        }

        
return $result;
        return $result1;
	
}
add_action( 'pmpro_after_change_membership_level', 'action_pmpro_after_change_membership_level', 10, 3 );