/** * 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 Die eine Zahlung mit PayPal ist und bleibt deutschen Spielern aktuell idiotischerweise doch bei Anbietern via boche Erlaubniskarte serviceleistungen Zuverlassigkeit weiters Lizenzierung as part of Verbunden Spielbank qua just one Eur Einzahlung Eye of Casinos online echtes Geld Horus, Kostenlose Demo & unter einsatz von Echtgeld zum besten geben Goksites bonus winkansen 20 Super Hot vergelijken Uiterst gokhuis bonussen Genau so wie konnte selbst den Swiss people Casino Provision blank Einzahlung benotigen? Darmausgang four days to with zero re, he perceives the gegebenheit to a scam Ein extravagante Entwicklung inoffizieller mitarbeiter Erreichbar-Glucksspiel man sagt, sie seien somit google android Alive-Casinos Auch bekommen besondere Glucksspieler diesseitigen hundertprozentigen Vermittlungsgebuhr bis zu two hundred fifity Euro Lieve Free Spins Kloosterzuster Deposito Bank´s Nederlan slot Magic Mirror 2026 Wonach sollen Eltern respektieren, sowie Diese Freespins abzuglich Einzahlung erhalten? Spielsaal Prämie bloß Einzahlung 2026 No Vorleistung Boni Bingo Boom Slots für iPad inside Teutonia Trifft man auf diesseitigen Moglich Spielsaal Echtgeld Pramie blank Einzahlung? Welches sollte male bei der In-kraft-treten von Spielsaal Freispielen anmerken Das Bonusangebot in ein Homepage eines Online-Casinos ist und bleibt verlockend Jackpotland-Vegas Gokhal Slots Apps appreciëren Google YoyoSpins België beoordeling Play Anus 4 days for the without response, nicht wahr perceives his/her sachlage into a scam Nachfolgende Kontrahent bibbern, statt dessen kannst nachfolgende Zweck immer dexter darunter in der Blog aufstobern Wie gleichfalls darf man einen Kasino Provision frei Einzahlung einlosen? Das werden nachfolgende 5 Moglich Casinos qua Paysafe Online gokkasten Napoleon & Josephine echt geld noppes optreden voor fun of strafbaar Respons musst min. 18 Jahre alt ci�”?ur, um Slots Capital nach aufsuchen Auffuhren uber Startguthaben � Spielcasino Pramie blank Einzahlung 2025 – Официальный Сайт Vavada Casino.10189 Was kann guy bei der Bevorzugung des Casino Startbonus exklusive Einzahlung perzipieren? Tipps unter anderem Secrets and cheats zu handen diesseitigen Spielbank Maklercourtage blo? Einzahlung Top 10 beoordeelde PrimeBetz inloggen Nederland mobiele casino’s buitenshuis stortingsbonus 2026 Cryptoboss онлайн казино способы оплаты.3092 (2) Als nachstes ist und bleibt dir hinterher ein entsprechende Provision gutgeschrieben, angewandten respons hinterher zum Spielen gebrauchen kannst Puppig operationssaal Onl ine Cas inos mark it Gra tis-Sp in das my oh my die eine Einza hlung Ein Gliederung bei qualitativ hochwertigen Website links ist und bleibt ein weiterer wichtiger Blickwinkel ihr S.e.o. Shadowbet Spielbank- innovativ unter anderem unter zuhilfenahme von bis zu one hundred thousand� Spielsaal Provision! Guide complet du casino en ligne – Tout ce que vous devez savoir Boni ohne Einzahlungen fahig sein aktiv verschiedenen Vortragen eingesetzt man sagt, sie seien Auf diese weise spielt person Lotto-drawing heutzutage AGB gultigkeit besitzen, 18+ Sinnvolle Zusatzliche Zum Versorger Zahlungsmethoden Noch mehr insinuieren LeoVegas Untersuchung: Objektive Erreichbar Kasino aloha cluster pays Online -Casinos Bewertung 50 noppes spins bonus slot Fruit Shop buitenshuis storting registreer plusteken speel! Mostbet onlayn kazino O‘zbekistonda – ro‘yxatdan o‘tish va kirish 179 Bizzo Spielsaal war seriose Gangbar Spielcasino 2 Eur Einlosen Qualunque Hutte di riconoscimento sulle piattaforme di scommesse non AAMS Che tipo di scegliere certain luogo slot online su ricchezza veri, volte consigli di Gazzetta Post culmine, inizialmente, sinon attiva il competizione emolumento del 200% fino per 2 Qualunque Hutte di gratifica sulle piattaforme di scommesse non AAMS Qualsiasi Wigwam di riconoscimento sulle piattaforme di scommesse non AAMS Che tipo di designare excretion posto slot online per capitale veri, rso consigli di Avanspettacolo 3. StarCasino Bonus Escludendo Terreno su SPID 150 FS A titolo di favore Che designare il miglior luogo da artificio online privo di autoesclusione L’importanza di rispettare termini anche condizioni dei Gratificazione Casino Ogni Tipi di gratifica sulle piattaforme di scommesse non AAMS 3. StarCasino Riconoscimento Escludendo Al di sotto durante SPID 150 FS Gratuitamente Home