/** * 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 Aztec-Inspired Online game Play Free Online casino games and you will Harbors Pacanele 50 rotiri gratuite dar magazie pharaohs fortune online gratis și deasupra bani Aparate demo noi Rotiri Gratuite Ci Plată Top Oferte Freespins deasupra 2026 Tu Oferte Casino Online România 2026 Bonusuri exclusive Get the Totally free $a hundred Pokies No deposit Sign up Bonus around australia within the 2026 Bonus rotiri gratuite însă depunere ᗎ și când plată ş columbus deluxe slot online cazinou 2026 Tout ce que vous devez savoir sur les injections de Winstrol Cel mai bun bonus fie Aduna străin deasupra cazinouri pe internet de ruleta Dwell Melbet APK Maroc fonctionnalits de lapplication de casino en ligne.538 – копія Legal Frameworks for Child Safety: Understanding Your Options Unpacking the Different Types of Power of Attorney in California Nolvadex Bewertung: Ein umfassender Überblick Stanozolol 10 Mg : Que faire après son utilisation ? Kasinot ilman rekisteritymist parhaat nettikasinot ja vertailu.2317 Home Megapari Casino online bonos y promociones para jugadores.1293 No KYC casino deposits and withdrawals without KYC identity checks.92 Online Casino Ubersicht Schweiz.3820 (2) Megapari Argentina cmo iniciar sesin en el casino online.1354 Novos casinos legais online Portugal plataformas seguras e confiveis.1017 Kasino ilman rekisteritymist edut ja haitat pelaajille.1371 Casino non AAMS in Italia metodi di pagamento sicuri.5476 Casino non AAMS in Italia metodi di pagamento sicuri.5177 (2) Megapari apuestas cmo apostar en el casino online paso a paso.1930 Ozbekistonda ommabop onlayn kazinolar.770 Ozbekistonda ommabop onlayn kazinolar.529 Rangliste over online casinoer uden licens i Danmark.2246 Casinoer uden Spillemyndighedens licens i Danmark.1779 No KYC casinos full guide and rankings of online casinos without KYC verification.991 Novos casinos online em Portugal mtodos de pagamento e levantamentos rpidos.1148 Bison casino logowanie bezpieczny dostp do kasyna online.5624 Novos casinos legais online Portugal ranking dos melhores casinos online.581 Bison kasyno gry slot i live casino w kasynie online.6124 Mobile Online Casinos Schweiz.4508 (2) No KYC crypto casinos best platforms for anonymous gambling without KYC.12 Novos casinos online Portugal avaliaes e opinies dos jogadores.265 Vip Casino: Quick‑Play Slots, Live Action, and Instant Wins Glutamin Peptider: Positive Effekter og Fordele Kasyno online Vulkan Vegas Recenzja.2428 (3) Kasyno online Vulkan Vegas Recenzja.1635 Online Casinos in sterreich mit schnellen Auszahlungen.1886 Online Casinos in sterreich mit schnellen Auszahlungen.1541 Kasyno online jakie metody patnoci s dostpne.1456 (2) Kasinot ilman rekisteritymist bonukset ja tarjoukset ilman tili.2184 Basic Jordan Brand �Realm of Flight’ shop toward U.S. opens up inside Philly Bar Gambling establishment put-out in to the 2023 and you can currently has an impressive assortment more dos,100 British position online game Wagers a real income to play internet sites for Romania An informed on-line casino Zimpler inside Switzerland 2024 Throughout the examining the terms and conditions, we discover which free revolves hold legitimate value How Canadian Public Safety Perform Shelter Online Gamblers