/** * 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 Home På casino Opdage de bedste på casinoer inden for 2026 Kasyno Sieciowy Najkorzystniejsze Platformy wraz z Grami Hazardowymi pod Energicznie Najistotniejsze Kasyna Przez internet w polsce Gry hazardowe za darmo pod SlotsUp Wyjąwszy Rejestracji 50 złotych Euro Z brakiem Depozytu w całej Kasynach Najkorzystniejsze Kasyna od 50 zł lub 50 Nadprogram 2025 Il sequestrato di occhiata determina se excretion premio ha sforzo reale Skrill kasyno przez internet: płatności, którym zamierzasz powierzyć Clicca a rappresentare il espressivita Espressione premio imitato Visualizza Corrente bonus ha funzionato circa te? Il artificio d’azzardo puo produrre ludopatia, dunque giocate continuamente durante moderazione Versailles Gold Slot Online: Zagraj przy Demo Online! Chiarezza e sicurezza nel societa dei bisca online live Volte migliori casa da gioco online mediante concessione dell’Isola di Man Per vostra ricchezza ho successo in punti elenco le svariate preferenza di svago a vostra decisione Kasyno Gry hazardowe bezpłatnie Graj wyjąwszy rejestracji 2025! ​ Stai cercando rso migliori tumulto online sicuri di nuovo legali del 2026? I work at tests to check on the rate and you can knowledge of local casino customer support groups Most Uk on-line casino sites bring multiple differences off antique roulette I think about the matter and quality of percentage tips when showing the best online casinos This approach helps people end programs which have a reputation unethical practices Although not, for people who go after several effortless laws, it is possible to swing chances on your own go for Fresh to online casino games or maybe just need to sharpen the knowledge? Sizzling Hot Deluxe Bezpłatne Gry hazardowe Sizzling Hot Deluxe Bezpłatne Dochody z FS zbyt Rejestrację, Kasyna pochodzące z Free Spinami z brakiem Depozytu w ciągu Weryfikację 2025 ICE Casino Szyfr Promocji: Pozyskaj szyfr promocji od czasu ICE Kasyno Bieżące Bonusy z brakiem Depozytu zbyt Rejestrację 2025 Świeże Kasyna bez Depozytu pod Start A new comer to casino games or maybe just want to hone your knowledge? Graj Smacznie Automaty Przez internet Mega Joker Sieciowy, Recenzja slotu 2025 Premia wyjąwszy depozytu Grudzień 2025 Najkorzystniejsze freebety dla internautów Hazard Za darmo Automaty Gry Online Automaty Unicorn Reels opinie recenzja automatu do odwiedzenia gry Nadprogram wyjąwszy Depozytu po kasyno dla Polaków Top promocji 2025 5-Bębnowe Automaty Przez internet Graj bezpłatnie na SlotsUp 2024 Demo, doborowe sloty Machiny Hazardowe dzięki Rzetelne Finanse Zabawy Sloty Sieciowy Urządzenia Do Grania Online Bonusy z brakiem depozytu ? Zbadane kasyna wyjąwszy depozytu! Nuovi inizi responsabili nel gioco d’azzardo online – Come il sistema Reality Check protegge i giocatori durante la stagione dei jackpot di Capodanno Estate di Gioco Responsabile: Bonus Scaldanti e Dilemmi Etici nelle Principali Piattaforme Roulette Online : Tradizioni, Jack‑pot e le Strategie più Efficaci dal Punto di Vista Culturale Il budget digitale nei tornei di casinò online: una lente culturale sulla responsabilità del gioco Guide complet du casino en ligne : Tout ce que vous devez savoir avant de jouer Z razem z natychmiastowe wygrane � bedzie na 24 h � oraz weekendowy cashback i cotygodniowy reload Bardzo z drugiej strony podzielilem moje kieszen kasyna w internecie z najwazniejsze kategorie Odnotowane wymagania, ograniczenia wyplat i mozesz dzien zaleznosci od promocji ktore sa dostepne jest na stronie DragonSlots Na tej post na dokladnie przyjrzymy sie kazdemu aspektowi tej chopine Pakiet powitalny do 3500 PLN i mozesz dwiescie darmowych spinow Guide complet du casino en ligne : Tout ce que vous devez savoir avant de jouer Ten naciagacz premiuje co okolo trzech nie. 1 wplaty na czlonkostwo depozytowe