roles ?? [], true ) ) { return; } $default_active_role = self::get_default_active_role(); $user->set_role( $default_active_role ); } /** * Maybe change user role on subscription deactivation * * @param int $subscription_id Subscription ID. */ public function maybe_change_user_role_on_subscription_deactivation( $subscription_id ) { // Get the subscription owner's user ID $user_id = get_post_field( 'post_author', (int) $subscription_id ); if ( ! $user_id ) { return; } $user = new \WP_User( $user_id ); // Don't change roles for administrators if ( in_array( 'administrator', $user->roles ?? [], true ) ) { return; } $args = [ 'author' => $user_id, 'status' => 'active', ]; $all_subscriptions = Helper::get_subscriptions( $args ); // Don't change role if user has other active subscriptions if ( count( $all_subscriptions ) > 0 ) { return; } $default_inactive_role = self::get_default_inactive_role(); $user->set_role( $default_inactive_role ); } }