/** * 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 Casinos en lnea confiables en Argentina.3349 (2) Wypacalne kasyna online w Polsce z licencj.5053 BasariBet Casinoya giri – resmi siteye kayt.14953 Internationella online casinon fr svenskar.5836 KingHills Casino: Quick Spin Thrills for Fast‑Paced Players Vavada Casino Login tmutat bejelentkezs az online kaszinba.2230 Μη Άδεια Καζίνο στην Ελλάδα 495 Wypacalne kasyna online w Polsce z obsug po polsku.5727 Jetton Казино ассортимент игр в онлайн казино.1321 (2) Casino Megapari tragamonedas y juegos en vivo disponibles.2780 Jetton Games особенности игрового процесса в онлайн казино.866 Big Clash casino online .3484 Casinos online populares en Argentina.3439 (2) Καζίνο με Μπόνους Καλωσορίσματος στην Ελλάδα 141 Big Clash casino online .6453 Calificaciones de casinos en lnea en Argentina.4731 (2) Calificaciones de casinos en lnea en Argentina.4600 Los 10 mejores casinos online de Argentina.4617 Pin Up – Azrbaycann n yax kazinosu Rsmi sayt.9306 Pin Up – Azrbaycann n yax kazinosu Rsmi sayt.8968 Pin Up Casino Azrbaycan.8790 Vavada Online Casino felhasznli lmny dizjn s kezelhetsg.1890 Μη Άδεια Καζίνο στην Ελλάδα 65 Pin Up Casino Onlayn Azrbaycan.10082 Leon .1214 Najlepsze Kasyna Online w Polsce w 2026.11245 (2) Sky Crown Casino Australia Complete Guide to Playing.2958 Rangliste over online casinoer uden licens i Danmark.4569 Rangliste over online casinoer uden licens i Danmark.4005 Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.20461 Najlepsze Kasyna Online w Polsce w 2026.2177 Guide complet du casino en ligne : tout ce qu’il faut savoir avant de jouer Guide complet du casino en ligne : tout ce qu’il faut savoir avant de jouer Pin Up – Azrbaycann n yax kazinosu Rsmi sayt.12398 (2) Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.24595 (2) Pin Up Casino Onlayn Azrbaycan.12290 (2) Parhaat nettikasinot Suomessa suosituimmat kasinot verkossa.1399 Kasyno online jak wybra najlepsze w Polsce.389 Najlepsze Kasyna Online w Polsce w 2026.421 Najlepsze Kasyna Online w Polsce w 2026.26747 Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.25999 (3) Paras nettikasino Suomessa vertailu parhaista pelisivustoista.1009 Orala steroiders roll för att optimera bodybuildingträning Traktandum Bewertete Echtgeld Seiten ElonBet Casino and Mobile Gaming: Quick Sessions for Busy Players Svenska Online Casino Utan Spelpaus bsta alternativ fr svenska spelare.557 Svenska Online Casino Utan Spelpaus bsta alternativ fr svenska spelare.400 Roulette 50 gratis spinn fairytale legends hansel gretel ved registrering ingen innskudd på nett på edel penger 2026 Joik roulette online Free spins 2026 Sammenlign beste finn denne informasjonen her gratisspinn i Norge Home