/** * 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 Sultan Games Преимущества платформы.1564 (2) Chicken Road: Quick‑Play Crash Game for Fast‑Paced Wins Casino en ligne Canada guide des meilleures plateformes de jeu.1565 Jackpot Ethics — From Ancient Wagers to Today’s Mega‑Slots Celebriamo l’Anniversario dei Casinò Online – La Guida Definitiva per Principianti alle Super Offerte Bonus Strategia di Ottimizzazione Energetica per il Gioco Mobile: Come le Piattaforme iGaming Riducono il Consumo della Batteria Come costruire una libreria di giochi da casinò online perfetta per il nuovo anno: la guida tecnica alle slot con giri gratuiti Strategie di Gioco Consapevole: Analisi Matematica degli Strumenti di Controllo nei Principali Casinò Online Sultan Games Руководство по регистрации.1292 (2) He’s got more than twelve different variations of blackjack, in addition to alive broker online game CasInia Casino: Rychlé automaty, živá akce a rychlé výhry The brand new dining table of your thirteen newest bingo online game emerges inside the all of our overview Entsprechend mitbekommt ebendiese Spielcasino Angeschlossen Deutschland Umwelt 2026 aufgebraucht? Weiters is sei unter zuhilfenahme von dm Rest ein Erde? Das Ansicht uber diesseitigen Tellerrand Guide complet du casino en ligne : tout ce que vous devez savoir avant de jouer Diese erfolgreichsten Gangbar Casinos Deutschland belehren bei individuelle Bonusmodelle unter anderem klare Bedingungen Oder liegt es auf keinen fall in betrieb das digitalen Casino, anstelle a dem Wohnsitzland? Einer plansoll einheitliche Richtlinien z. hd. ganz Bundeslander anfertigen und welches Wette bei Bundesrepublik beherrschen Aus welchem grund Welche in unseren getesteten Angeschlossen Casinos musizieren sollen Beim Problematik Gangbar Kasino Brd stehen auf jungsten Statistiken via Spielautomaten Alle Casino-Enthusiasts nicht mehr da Bundesrepublik innehaben zigeunern unter einsatz von den two Diese Bizzo Spielbank Nachprufung � Spiele, Erlaubnis oder Bonusangebote Guide complet du casino en ligne : tout ce que vous devez savoir avant de jouer Alles Interessante unter zuhilfenahme von legale deutsche online Casinos innehaben unsereins im nachfolgenden Waren fur jedes Dich aufgelistet His particular review usually takes distributionspolitik complete starting June by inside Neunter monat des jahres Feuer speiender berg Las vegas ist und bleibt das beliebtes ferner bekanntes Moglich Spielbank Ended up being man sagt, sie seien die zentralen Ma?nahmen zum Spielerschutz inside Land der dichter und denker? – Официальный сайт Pinco Casino.3275 (2) Da Bitcoin a Jackpot: il percorso tecnico‑strategico di Crypto Winner nel mondo delle slot online, un’analisi dettagliata di infrastruttura cloud‑edge, RNG certificato e strategie bonus che stanno rivoluzionando i casinò cripto italiani Mostbet Casino Giri Trkiye Resmi casino ve spor bahisleri.2118 Da Bitcoin a Jackpot: il percorso tecnico‑strategico di Crypto Winner nel mondo delle slot online, un’analisi dettagliata di infrastruttura cloud‑edge, RNG certificato e strategie bonus che stanno rivoluzionando i casinò cripto italiani онлайн – Gama Casino Online – обзор 2025.4794 Da Bitcoin a Jackpot: il percorso tecnico‑strategico di Crypto Winner nel mondo delle slot online, un’analisi dettagliata di infrastruttura cloud‑edge, RNG certificato e strategie bonus che stanno rivoluzionando i casinò cripto italiani Strategia di Profitto al Poker Online: Analisi Economica dei Casi di Successo e il Ruolo dei Siti di Gioco Da Bitcoin a Jackpot: il percorso tecnico‑strategico di Crypto Winner nel mondo delle slot online, un’analisi dettagliata di infrastruttura cloud‑edge, RNG certificato e strategie bonus che stanno rivoluzionando i casinò cripto italiani Jackpot Progressivi d’Avanguardia: Le Storie di Vincitori che Stanno Rivoluzionando le Slot Strategia e Trasparenza : il Piano d‑Azione dell’iGaming per Slot Sempre Giuste – Официальный сайт Pinco Casino вход на зеркало.2764 Sultan Games в Казахстане Удобный вход и безопасная игра.1737 Sultan Games в Казахстане Как получить бонусы.1865 (3) Sultan Games в Казахстане Как получить бонусы.1581 (3) Boldenon: Wie einzunehmen казино онлайн 2026 играйте с уверенностью и безопасностью.5481 2026 с играми на деньги обзор лучших вариантов для ставок.142 (3) Dragon frost hockey 150 free revolves Shrine Slottica Gambling establishment Certified Website: Choose your code Bonus Codes March 2026 Updated Daily Get No deposit Codes Cleopatra Gold Slot Remark 2026 100 percent free Enjoy Demonstration Home