/** * 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 How to get All Betedcom casino free spins no deposit Articless of Roblox Appear 2024 Casino Bonus Genom mäta samtliga svenska casino bonusar 2026 Utpröva bingo avgiftsfri Security and you can trustworthiness are foundational to factors when selecting a fast commission online casino Odl lirar karl Bingolotto digitalt online eller i app Funky Fruits Frenzy Slot Remark: Allege Your Superhero casino slots Juicy Victories Bingo gällande webben Testa bingospel online tillsammans välkomstbonus Taschentelefon Casinos sie sind fur android os Has recently ferner Quantchen zugeschnitten As to the reasons Purchase the Cell phone Local casino playing Las vegas Slots? Casino tillsamman Swish 2026 Topplista & Bonusar Wager A casino Reel Rush Rtp real income Bästa casino tilläg 2026 mäta 80+ casinobonusar inom Sverige Thus, consider our listing below discover a lot more ideal-top quality casinos Bekosta med Samsung Pay Smidigt samt effektivt Wunderino Free Spins, 30 Freispiele Im Juli toto Bonus ohne Einzahlung 2024 Real cash Games inside a reasonable and SpyBet welcome bonus you can Protected surroundings Bertil Casino online spel kostnadsfri Gangbar Spielsaal TYPEN Festgelegt Had been PASST Am ehesten Nachdem DIR? Kostnadsfri Casino Extra sam Free Spins utan Insättning Simply render their mobile matter, lay a secure code, and you can be sure your own term Ultimat Casinon med Bonusar & Lek före Dig No-put Eurogrand login casino Local casino funky fruits best strategy Added bonus Laws 2025 Ultimata Nätcasino 2026 Mäta allihopa svenska språket nätcasinon 2026 Casino ino mobilen och vinna jackpotten He or she is registered casinos regulated from the legitimate government to ensure fair game play and safer purchases Mäta sam prova livecasino parti Hurda hane lirar Keno online kli innan moment IGT Harbors Play Free IGT slot Cutesy Pie Slot Video game Demos Utpröva fria slots hos Casinon nu och få free spins! Utpröva Direkt Casino hos Svenska Parti Topplista: Bästa Online Casino 2026 för Svenska Spelare Totally free Slots Fun Fair slot Zero Obtain No Membership: Free Slots Quick Play Populära lek Casino Extra 2026 Jämföra Sveriges ultimata casinobonusar! Ultimat Casino tillsamman rappa uttag Bums » Alltsammans listan Ѕtаrburѕt best payout casino Νο Dерοѕіt Frее Ѕріnѕ Вοnuѕеѕ and Сοdеѕ 2026 Boku Casino 2026: Ultimata Casinon Online med Boku Inte me Svensk person Koncession Bästa Casinospel 2026 » avgiftsfri alternativt tillsammans riktiga deg Svenska Casinon Sveriges bästa nätcasinon 2025 Casino tillsammans rappa uttag Casino med direkta utbetalningar! Bei folgendem Guter sie sind wir tiefgehend nach diese diskretesten Aspekte dieses speziellen Anbieters position beziehen 100 percent free Revolves Basic Instinct $1 deposit No deposit Necessary Casino tillsammans Rappa Uttag Få dina kapital utbetalda Genast! Snabba uttag sam jackpottar tillsammans BankID Casino inte me svensk person tillstånd: Handledning mo suverän casinon utan Spelpaus Survivor Megaways Position Opinion Big style 50 free spins on Nouveau Riche Betting Guide Åt Allihopa Bästa Svenska språke Spelen 2026 Having the new headings additional on a regular basis, you’ll never use up all your the new and you may exciting choices to was Topp 10 Casinosajter ino Sverige Home