/** * 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 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 We’ve the new the modern very ines you are aware and you can also like – after which certain Maximising The latest Bankroll Which have A real income Gambling enterprise Bonuses Guide complet du casino en ligne : tout ce que vous devez savoir en 2026 Things to be cautious about and when gaming online Play the finest online slots games towards the markets at SpaceCasino cuatro. Red-dog � Versatile Incentive Redemption having Lower Betting and you may Crypto Accelerates A fast Publication on how best to Play on range Roulette These are typically a well-known choice for members having a giant bankroll, as they have the opportunity to has actually higher professionals Baccarat – because revealed of your Seymour about 1897 Short Strike Casino is ready to smack the area and you will establish their era out-of enjoyable that have major wins! My Decision: Comparing the new Five Better Gambling enterprise Websites I tried Die Besten Verbunden Spielsaal ohne OASIS vortragen abzüglich Sperrdatei Kasinot ilman rekisteritymist tydellinen opas ja vertailu kasinoista.1450 Casino non AAMS in Italia differenze con i casin AAMS.5164 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 Home