ID ) && ! RegistrationStatus::emailConfirmed( (int) $user->ID ) ) { return new \WP_Error( 'us_email_unconfirmed', esc_html__( 'Please confirm your email address before logging in — check your inbox for the confirmation link.', 'unsupervised-schedular' ) ); } return $user; } /** * Strip the booking capability from any account still awaiting approval, so a * confirmed-but-unapproved student cannot book until a studio admin approves. * * @param array $allcaps All capabilities currently held. * @param array $caps Required capabilities (unused). * @param array $args Callback args (unused). * @param mixed $user The user being checked (a WP_User in practice). * @return array */ public function withholdBookingWhilePending( array $allcaps, array $caps, array $args, mixed $user ): array { if ( $user instanceof \WP_User && RegistrationStatus::isAwaitingApproval( (int) $user->ID ) ) { unset( $allcaps[ RoleManager::CAP_BOOK_LESSON ] ); } return $allcaps; } }