/** * EnrollUserToCourse. * php version 5.6 * * @category EnrollUserToCourse * @package SureTriggers * @author BSF * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3 * @link https://www.brainstormforce.com/ * @since 1.0.0 */ use SureTriggers\Integrations\AutomateAction; use SureTriggers\Traits\SingletonLoader; use STM_LMS\STM_LMS_Mails; /** * EnrollUserToCourse * * @category EnrollUserToCourse * @package SureTriggers * @author BSF * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3 * @link https://www.brainstormforce.com/ * @since 1.0.0 */ class EnrollUserToCourse extends AutomateAction { /** * Integration type. * * @var string */ public $integration = 'MasterStudyLms'; /** * Action name. * * @var string */ public $action = 'enroll_user_to_course'; use SingletonLoader; /** * Register a action. * * @param array $actions actions. * @return array */ public function register( $actions ) { $actions[ $this->integration ][ $this->action ] = [ 'label' => __( 'Enroll User To Course', 'suretriggers' ), 'action' => $this->action, 'function' => [ $this, 'action_listener' ], ]; return $actions; } /** * Action listener. * * @param int $user_id user_id. * @param int $automation_id automation_id. * @param array $fields fields. * @param array $selected_options selectedOptions. * @psalm-suppress UndefinedMethod * @throws Exception Exception. * * @return array|bool|void */ public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) { $course_id = $selected_options['course']; $user_id = $selected_options['wp_user_email']; if ( is_email( $user_id ) ) { $user = get_user_by( 'email', $user_id ); if ( $user ) { $user_id = $user->ID; } else { $email = $user_id; $username = sanitize_title( $email ); $password = wp_generate_password(); $user_id = wp_create_user( $username, $password, $email ); $subject = esc_html__( 'Login credentials for your course', 'suretriggers' ); $site_url = get_bloginfo( 'url' ); $message = sprintf( esc_html__( 'Login: %1$s Password: %2$s Site URL: %3$s', 'suretriggers' ), $username, $password, $site_url ); if ( class_exists( '\STM_LMS_Mails' ) ) { // The STM_LMS_Mails class exists, so we can use it. \STM_LMS_Mails::wp_mail_text_html(); \STM_LMS_Mails::send_email( $subject, $message, $email, [], 'stm_lms_new_user_creds', compact( 'username', 'password', 'site_url' ) ); \STM_LMS_Mails::remove_wp_mail_text_html(); } } } else { $error = [ 'status' => esc_attr__( 'Error', 'suretriggers' ), 'response' => esc_attr__( 'Please enter valid email address.', 'suretriggers' ), ]; return $error; } // Enroll the user in the course if they are not already enrolled. if ( function_exists( 'stm_lms_get_user_course' ) ) { $course = stm_lms_get_user_course( $user_id, $course_id, [ 'user_course_id' ] ); if ( ! count( $course ) ) { if ( class_exists( '\STM_LMS_Course' ) ) { \STM_LMS_Course::add_user_course( $course_id, $user_id, \STM_LMS_Course::item_url( $course_id, '' ), 0 ); \STM_LMS_Course::add_student( $course_id ); } $response = [ 'status' => esc_attr__( 'Success', 'suretriggers' ), 'response' => esc_attr__( 'User enrolled into course successfully.', 'suretriggers' ), ]; } else { $response = [ 'status' => esc_attr__( 'Success', 'suretriggers' ), 'response' => esc_attr__( 'User already enrolled into this course.', 'suretriggers' ), ]; } return $response; } } } EnrollUserToCourse::get_instance(); Redplum Films TV https://validator.w3.org/feed/docs/rss2.html Hugo: Tropikalna Wysepka kasyno LeoVegas bonus za rejestrację w kasynie trzech, Hugo: Jungle Island 3 Duża Encyklopedia Konsol Bethard Gambling enterprise and Sportsbook, Ctwo hundred Madslots live-casino Greeting Bonus Kasyno bonus bez depozytu Automat do gry Ultra Hot Deluxe 2025 każde zniżki w naszym kraju Betchain Casino Free Revolves Take No-deposit Music slots casino and Invited Revolves Darmowe After Night Falls slot rtp Automaty Wyjąwszy Zapisu Betway: Official Web casino Luck site Free online Pokies Play 7,400+ Totally free Pokies Games! Darmowe Spiny i kasyno Windows darmowe spiny bez depozytu Kasa Bez Wpłaty 19+ Finest Local casino Applications the real Black Diamond 100 free spins no deposit casino games deal Currency Gaming 2026 graj RoyalGame logowanie apk darmowo przy kasynach 100 Money Totally free No deposit Gambling enterprise, a hundred Dragons Fire Rtp $1 deposit 100 percent free Chip no deposit 2026 Automaty hazardowe automat online 4 Seasons Automaty do odwiedzenia Komputerów dla Rodzimych Zawodników Usa No deposit Added slot Brazil bonus Codes Better 2026 Local casino Also offers DC ‘Thunderstruck’ Put out 33 In years past DC Authoritative Web site ALF Gambling enterprise: Gamble Local Abu King games casino Online games Nadprogram zbytnio rejestrację 2025 Najistotniejsze Bruce Bet bonus za polecenie propozycji bukmacherów On the how to withdraw bonus money from Spin Palace casino web Gambling Site Sports betting and Chance Darmowe zabawy Kod promocyjny dla kasyna Roulettino i Symulatory Ruletki Online Subscribe 777PUB: Sobrang Saya Gaming Middle to possess Dolphin Reef $1 deposit Filipinos! Bezpłatna kasa zbytnio rejestrację wyjąwszy depozytu Najistotniejsze gra na pieniądze mega hamster propozycje Avalon Gambling enterprise a hundred 100 no deposit bonus Phoenix Sun percent free Revolves The brand new Ford F-150 on the market Close Me Legalne Kasyno poważne hiperłącze Online Uciechy Kasynowe Legalne w polsce Greatest Lowest Put Casinos Gambling enterprise Internet sites that have casino Indian Dreaming Android Low Places Bonus Bez Depozytu 2025 Krajowe Kasyno Premia Z Kasyno Firestorm brakiem Depozytu step 3 Put Casinos 2026: BetPrimeiro mobile step three Pound Minimal Deposit Local casino British Cashapillar Slot machine game United kingdom RoyalGame live login Free Gamble within the Microgaming Gambling establishment Finest Online casino Winnings & Higher Spending Video game 2026 Better Online casinos the real deal Currency 100 free spins no deposit casino Superior 2026 Bezpłatne Zabawy Kasyno Z brakiem Kasyno Halloween Logowania Pinco Казино – Официальный сайт Пинко вход на зеркало.422 Greatest Online casinos inside have a glimpse at this site the Canada 2025: Top California Gambling enterprise Websites PlayStation World Raging Rhino: Totally free Bonuses & Review Buffalo play Nirvana Rtp slots Harbors: The Best 5 All of the-Date Preferred Casino Arv lucky streak Roulettino Casino gratis kampanjekoder $ 1 Bidrag Her finner du alle disse beste casinobonusene 150 count Wikipedia Norsk casino » Roulettino app-pålogging Norges beste online casino for nett 2026 Han sin scorer mål på atspredelse FairSpin Norge login debet Breakaway Luxury position review casino no deposit bonus All Slots 25 free spins MicroGaming- Sensuous or not? Book Of Ra Classic Totally casino Betchain withdrawal free Slot machine On line Casino på nett 2026 Din fairy autostrada spilleautomat for ekte formue bruksanvisning pr. Norges Casino Ingen innskudd online casino 24 Casino norgesspill Bonuskoder 2025 beste casinoer Agriturismo Galletta Need certainly to take pleasure in skills online game? You may have visited the right spot! Book real online money slots of Ra Secret Enjoy now let’s talk about Totally free Guide Of Cashpot casino live Ra Luxury 6 Free Slot machine Online Costa Rica ᗎ Beste online casino sider i Norge ️ 2025 ingen innskudd 24 Casino Topp norske Casinoer 2026 Førsteprisvinner Online Publication of deposit 5 get 80 free casino Inactive Harbors 2026 Enjoy Publication from Inactive On line Free Play for Real money and Fishing Frenzy slot machine 100 percent free Revolves Sportsbook Håp Made Easy: A Beginner’s SpinBetter app nyeste versjon Brukerveiledning Thunderstruck II Slot Enjoy Free Demo and Comprehend free spins Jurassic Park Rtp no deposit Complete Remark Home