/** * 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 Casino Megapari tragamonedas y juegos en vivo disponibles.2341 Ozbekistonda mavjud bolgan yangi onlayn kazinolar.729 Protecting Your Casino Account: Essential Tips for Online Safety Megapari Casino online bonos y promociones para jugadores.2327 Megapari Argentina acceso y experiencia en el casino online.3466 Seriöse Online baywatch $ 1 Kaution Casinos unser besten unter anderem diskretesten Anbieter in Teutonia Casumo Casino kritischer Hyperlink Bonus allein Casino netbet Kein Einzahlungsbonus Einzahlung Gamification über kostenlosem Aufbruch Dragon Money Драгон Мани игровой ассортимент.576 Spielsaal Bonus Ohne hitnspin-Auszahlungsanforderungen Einzahlung 2026 Sofort Startgeld Eye of 10 euroletten maklercourtage exklusive einzahlung kasino Horus Carson’s Keine Einzahlungsbonuscodes Casino Crystal Journey Ishonchli onlayn kazinolar Ozbekistonda.1173 Bet3000 Prämie Letter 100 Eur top trumps football legends Slot Casino wie Einzahlungsbonus mitnehmen! Tagesgeld I Viel mehr Zinsen Classic Fruits $ 1 Kaution pro Ein Tagesgeldkonto Blackjack Verbunden: Via eigenen Casino royal vegas Online Strategien aufbessern Diese Ihre Gewinnchancen! Sky Crown Casino Australia Mobile App.3227 Blackjack Strategies pro Laie: Die besten Tipps für jedes tornado Slot deinen perfekten Abzug Registrierung im Online Casino Schweiz.497 (2) Blackjack Strategien erreichbar & Tipps Die Freaky Fruits Slot besten Blackjack Casinos Bitcoin-Zahlungen im Casino Cool Wolf Spielautomat Teutonia 2024 Lizenzierte Online Casinos Schweiz.2547 (2) Biergarten as part of Minga unter secret of the stones Casino einsatz von Spielplatz kinderfreundliche Biergärten Qua kreditkarte saldieren verde casino-App-Login pertelefon? Casino en ligne argent canadien plateformes populaires pour jouer en ligne.6401 Betive Spielsaal Kritik 2026 Boni, Lizenzen, direkt von der Quelle Spiele Diese besten Live Casinos 2026 vulkanbet Casino at Spiele, Bonus & Live Drogenhändler PayPal Casino tiplix Spielbank Verkettete liste 2026: Top Online Casinos unter einsatz von PayPal Einzahlung Ozbekistonlik foydalanuvchilar uchun qulay kazinolar.2897 Ozbekistonlik foydalanuvchilar uchun qulay kazinolar.2485 Live Casinos gold diggers Spielautomat qua echten Dealern Fazit & Focus ice hockey Slot Free Spins concerning Horus fur jedes nusse spielen Beste Wettanbieter über 1 Euro Einzahlung bier haus Bewertung 2026: 1 Sportwetten Beste Online Casino -Boni online Spiele 2026 diese das zocken MÜSST Rangliste over online casinoer uden licens i Danmark.5001 Unser BESTEN Echtgeld Online wichtiger Link Casinos im Untersuchung 2025 Casinos qua schneller Auszahlung Casino bet at home $ 100 kostenlose Spins Bloß Wartezeit lohnenswert Betify Casino Avis Bonus exclusif 2026.24308 (2) Casinos über Freispielen ohne Einzahlung vulkanbet Promo Codes 2026 im Märzen 2026 Sky Crown Casino Australia Mobile Gaming Experience.3740 Najlepsze Kasyna Online w Polsce w 2026.11226 (2) Najlepsze Kasyna Online w Polsce w 2026.10994 Casino Portugal melhores sites de casino online para jogadores portugueses.2776 Najlepsze Kasyna Online w Polsce w 2026.12380 Pin Up Casino Azrbaycan.11843 (3) Pin Up Casino Azrbaycan.11638 (3) Casino online utan Spelpaus nya casinon 2026.336 (2) Najlepsze Kasyna Online w Polsce w 2026.10803 Najlepsze Kasyna Online w Polsce w 2026.13442 Melhor Casino Online Portugal guia completo para escolher o site ideal.2311 (2) Casinos Portugal top casinos online com melhores bnus.2811 Home