/** * 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 Lieve In Geld Casinos Pro Nederland 2026 Eye of Horus Gratis zum besten laden verde spielsaal-App verhalten abzüglich Anmeldung Partner2Connect Beschermd storten gedurende online goksites Vavada casino deposits and withdrawals at the online casino.2797 100 Freispiele schnell in Registrierung Over eigenlijk poen gokken plus storten Spielsaal Bonus ohne Einzahlung März 2026 Spel ofwe Gladiators Speculeren waarderen Gokkasten, online kasteel, kosteloos gokkast en Fruitautomaten Freispiele exklusive Einzahlung 2024 pro erfolgreiche and neue Slots Feuerwerk online anschaffen inoffizieller mitarbeiter 5 Feuerwerk Onlineshop No Deposit Premie Casino Nederland: JACKS NL Prämie ohne Einzahlung Top Kasino Angebote abzüglich Aussicht nützlichkeit 2025 De uitgelezene free spins toeslag 2025 lll Noppes spins bij aanmelding Drehstühle über Blättern erreichbar besorgen Blackjack Masterplan: Basic Strategy and Tipps 777 Bank Voor Spins Gokkasten: Fre Spins gedurende 777 Slots van JACKS NL Erstplatzierter Online Spielbank Prämie Kasino Bonus 2026 sichern Casino non AAMS in Italia le migliori opzioni per i giocatori.5871 (2) Arne Fietsslot zijn het nieuwe Nederlandse meester: betreffende diegene methode loodste hij Feyenoord zoals u 16de aanhef Echtgeld Casinos: Ihr Guide über das Zum besten geben um Echtgeld Ozbekistonda mavjud bolgan yangi onlayn kazinolar.123 Mobile Casino Unser Traktandum 10 Mobile Anbieter pro 2024 Speel Dat Vinci Diamonds Gokkast Voor Online Neue Erreichbar Casinos März 2026 Letter Bonus bewachen Meilleur Casino en Ligne 2026 – Top 10 des Casinos Fiables.2464 Meilleur Casino en Ligne 2026 – Top 10 des Casinos Fiables.1996 Онлайн казино с бесплатными спинами в Польше 229 Neue Angeschlossen Casinos Dritter monat des jahres 2026 Neue Tagesordnungspunkt Casinos enthüllt Легальные онлайн казино в Польше 156 The Benefits of Automating Document Management for Efficiency The Essential Checklist for Creating a Durable Power of Attorney Kloosterzuster Deposit Verzekeringspremie, Casino’s in Gratis Premie 2026 NetBet Prämie abzüglich Einzahlung 03 2026, Letter No Vorleistung Prämie beschützen! Mr Bet Spielbank Tora Willkommensbonus schützen jetzt dem recht entsprechend inside Ostmark Meilleur Casino en Ligne 2025 – Sites Fiables.16112 Топовые онлайн казино в Польше 623 Penalty Shoot Out da Evoplay jogo de casino online explicado em detalhe.1414 Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.4552 Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.27886 (2) Olymp Casino Online oyun eidlri v sas funksiyalar.1261 Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.27508 Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.1389 Pin Up Casino Online Giri Trkiye.6925 (3) Pin Up Casino Azrbaycan.2693 (2) Pin Up Casino Azrbaycan.2506 Olymp Kazino Onlayn thlksizlik v mlumatlarn qorunmas.1042 Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.3115 (2) Olymp Casino Online tez-tez veriln suallar v cavablar.821 Chicken Road: De Snelle Crash Game Die Snelle Multiplier Sensaties Biedt Home