/** * 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 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 All the Bonus Rules at the March 2026 Gamble 30 free spins wheel away from riches Status Seafood Party from the the brand new Microgaming Gold-rush Video slot Wager Free bally wulff slots mobile to your Web browser Ministère de la santé publique Free Las vegas Game Enjoy Free online Casino Slots Classic Blackjack having just one deck providing double down nine-eleven Of many top websites go back 10 so you’re able to 20% of one’s losings per week or every day because the incentive money Although not, the different software developers have a tendency to prefer to present for each video game inside various methods These may were allowed incentives, put suits, free revolves, and you will support software While you are evaluating a knowledgeable on the internet black-jack casinos, i contemplate the importance of on the web financial You can rest assured you to definitely alive black-jack game is 100% reasonable and you can arbitrary Lucky Cut off has the benefit of thousands of video game along with slots, desk game, freeze headings, and real time dealer choices If they’re too high, you’re likely to never ever get a way to withdraw winnings The experts features carefully assessed and you will ranked all casino searched to take your pick simpler Azrbaycanda Mostbet AZ casino.7458 Vintage Black-jack with a single patio providing double off nine-eleven казино онлайн 2026 для игры на реальные деньги.812 (2) 2026 с играми на деньги обзор лучших вариантов для ставок.1201 (2) 2026 с быстрой регистрацией и удобным интерфейсом.2353 казино онлайн 2026 для игры на реальные деньги.2830 Roulette Europea vs Vegas Live‑Casino – Come i Livelli VIP Influenzano le Quote Guida per principianti alle licenze dei casinò online – Perché la Malta Gaming Authority è il faro dei più grandi jackpot Home