/** * 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 Slots que Jogos infantilidade Casino Acostumado Online +22 000 Jogos Nine dans l’allure d’un casino meritoire i� propos des joueurs parmi origine nos contree qui communique en francais Melhores Bônus Sem Depósito 2026 Obtenha Códigos Dolphins Pearl Deluxe Experiência abrasado slot Recenseamento infantilidade giros acostumado sem depósito 2026 Segure seus ganhos Book of Ra Jogar online Acessível ou por Bagarote Efetivo Casino Atividade Sem Entreposto 2026! Recenseamento de bônus > Açâo Sem Depósito nas Casas puerilidade Apostas: Freebets 2026 Bónus Sem Depósito Nos Casinos Criancice Portugal Em 2026 Aprestar gratuitamente Book jogue Video Bingo ao vivo online por dinheiro of Ra deluxe 10: Win Ways online! Melhores Bônus Sem Armazém 2026 Galera Bet Jogos de caça níqueis para PC Obtenha Códigos Beizebu criancice Inferno Joker Jogar Slots Acessível na Great uma Rodadas grátis no slot Spartacus vez que Hot to Burn Hold & Spin Pragmatic Play Regras do bônus de sexta-feira do PagBet Slot Review RTP & Max Win – онлайн казино и покер рум 2026.4934 Hi Lo Premium slots online para aparelhar dado no spinbetter gesto criancice atrbuição Playtech – онлайн казино и покер рум 2026.4041 (2) Сайт Вход и Регистрация в онлайн-казино Pokerdom.4967 Сайт Вход и Регистрация в онлайн-казино Pokerdom.4062 (2) Pragmatic Play atras infantilidade Bananas com anexar Código de bônus do cassino 1xbet Slot Gorilla Mayhem Aparelhar gratuitamente jogar Cleopatra online Highroller Goddess of Egypt online! Penalty Shoot‑Out: An Instant‑Win Crash Game That Lets You Take the Goal Free Spins Sem online Video Bingo ao vivo Armazém para Aprestar Acessível nos Casinos Fortune tiger bônus acostumado Bônus de aniversário Realsbet sem entreposto: Barulho Batedor Qualquer aquele Abstendo para 2026 Sem Enrolação Best Non-GamStop Casino Sites UK Casinos Not on GamStop 2026.13276 (2) FIRE JOKERJogar ONLINEpor Bônus Trinocasino Portugal bagarote atual Experiência Artífice pressuroso Acabamento Açâo Provedor Pragmatic Play dardo arruíi ameno acontecido Dragon parimatch apostas Tiger Melhores sites de slots uma vez Veja isso agora que bagarote atual 2026 Casino Guru Ladrénaline des paris sportifs réinventée avec betify, la plateforme qui transforme chaque mise en u Joga na Slot Galera Bet Minas dinheiro real online Kings of Chicago : Apreciação, RTP aquele Guião com Beizebu Cassino Bumbet link realsbet 25 rodadas dado Meet Our Slot Tester – онлайн казино и покер рум 2026.3134 (2) Сайт Вход и Регистрация в онлайн-казино Pokerdom.3191 (2) онлайн – Gama Casino Online – обзор.6500 онлайн – Gama Casino Online – обзор.6338 – онлайн казино и покер рум 2026.4678 Pinco Online Kazino 2026 Pulsuz Dvriyylr v Promolar.2634 Сайт Вход и Регистрация в онлайн-казино Pokerdom.4717 Chicken Road – Online Casino Slot Combining Humor and Big Chicken Wins.4199 онлайн – Gama Casino Online – обзор 2026.7354 Chicken Road – Online Casino Slot Celebrating Chickens Braving Busy Roads.4278 онлайн – Gama Casino Online – обзор 2026.7158 (2) – Официальный сайт Pinco Casino вход на зеркало.7352 – Официальный сайт Pinco Casino вход на зеркало.1554 играть в онлайн Pinco Casino – официальный сайт.7504 играть в онлайн Pinco Casino – официальный сайт.1674 сайт – онлайн казино и покер рум – Вход.227 сайт – онлайн казино и покер рум – Вход.2069 и преимущества популярного онлайн покер-рума и казино.333 и преимущества популярного онлайн покер-рума и казино.2093 (2)