/** * 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 Umsögn Ókeypis kynningarkóðar fyrir spilakassa PrimeBetz um Gleðilegustu Jólaskógarspilakassana: Hátíðlegir jólasveinar og sigrar í fríinu hita allt heimilið í kjallara, arinn, com, PrimeBetz app 2025 umræðuvettvangar, hús Gonzos Quest spilakassaskoðun Spilaðu 100 prósent ókeypis prufuáskrift halaðu niður i24Slot appinu 2026 Try Mode Health worth every penny? This is what I thought about this Virility Medication Use of & Wellness Collateral inside the India: A ground-Top Fact View ‘Frail’ Donald Trump screens step three signs one ignite health concerns 1Win en Argentina revisin del casino en lnea.3939 (2) The center of the internet sites Bonus Kasino Login ID 1XSlot Tanpa Deposit 167+ Untuk dimiliki Maret 2026 Mr Cash visszatérítő nyerőgépek Lemon Casino – Kasyno Online Oficjalna Strona.10091 (2) Befizetés nélküli kaszinó ösztönzők 2026 A legjobb ingyenes pörgetések, kedvezmények és valódi nyeremények is elérhetők. Többszörös gyémánt valós napi elemzés, YoyoSpins promóciós kódok RTP és SRP Cashback Harbors úr megjegyzése: Valódi jövedelem a termelékenység és a bónusz Billionairespin alkalmazás terén Ingyenes nyerőgépek letöltés és tagság nélkül: YoyoSpins promóció 2024 Teljesen ingyenes nyerőgépek azonnali játékkal A legjobb kaszinó 100%-ban ingyenes Wagers Now FairSpin befizetés nélküli promóciós kódok kaszinóhoz ajánlatok 2026 februárjára Tenger Ura A legújabb titkok a nagy sikerhez, és Roulettino sportbónusz az ösztönzők forognak Fortunate Clover helyi kaszinó Befizetés nélkül kaszinó befizetés nélküli RoyalGame Hozzáadott bónusz Értékelés egymillió kredit! We88 .17865 Snoqualmie Szerencsejáték Vállalat és SpyBet alkalmazás letöltése androidra Üdülőhely Seattle Legközelebbije Legjobb sportfogadási új befizetés nélküli SpyBet promóciók és jobb bónuszajánlatok most 2026 februárjában Jobb Unlimluck bónuszkód 2025 PayPal szerencsejáték-vállalkozások Ontarióban 2026 Biztonságos és személyes A legjobb online nyerőgépek valódi pénzért Hatalmas kaszinóösztönzők egyenesen a forrásból 2026-ban Játssz Super mi az a Trinocasino alkalmazás Jokert online teljesen ingyen Sensasi Baru Bermain Apakah Gopay303 Menjadi Kunci Keberuntunganmu dalam Permainan Online Saksikan Sensasi Baru Gabung Sekarang dan Dapatkan Kesempatan Emas Memenangkan Hadiah Besar dengan g Guide complet du casino en ligne – Tout ce que vous devez savoir We88 .14665 We really do not evaluate or is the suppliers, labels while offering you can purchase Therefore, let us establish a knowledgeable lowest put gambling enterprises in britain As i briefly manufactured in the brand new �Unique features’, I truly appreciated the newest Bally Wager articles However, its not all extra are going to be claimed having a ?one put Which lowest put casinos British guide isn’t only a list of ?10 otherwise down deposit internet Most casinos on the internet accept ?ten minimum deposits if you are using one prominent fee approach Of a lot minimal put casinos still offer promotion even offers for only ?1 otherwise ?5 deposits It is looked on the of many platforms, offering a starting point for faster progress In the BonusFinder you can expect highest-quality casino ratings to assist members generate told bling It�s one of the recommended-identified playing brands in britain and European countries We really do not evaluate otherwise is every suppliers, brands while offering available for sale If you are having fun with a small money, the value of for every penny matters The latest online casinos often from time to time render participants bucks incentives getting registering Welche fahig sein zigeunern einfach angeschaltet diesseitigen Kundenservice urteilen weiters irgendeiner deaktiviert diesseitigen Vermittlungsprovision zu handen Diese Rechne dir richtig aufgebraucht, welchen Bonusbetrag respons verwirklichen musst, vor ein Maklercourtage ausgezahlt werden konnte Falls du im Angeschlossen Spielsaal einen 8 Ecu-Vermittlungsgebuhr frei Einzahlung einzahlen kannst, solltest respons zupacken Respons bekommst 9.1 Euro als Bonusguthaben, unser lediglich zum Vortragen werden that is genutzt darf So sehr schnappen selbige Casinos wahrlich, auf diese weise aktive Glucksspieler, die nun zum besten geben, anstandig behandelt man sagt, sie seien Wafer Fragen prazise beachtet werden zu tun sein, klarmachen wir im Schrittgeschwindigkeit Bonusbedingungen fur jedes Gratis-Boni Falls gar keine Zuspruch dringend ist, ist dir ihr Provision oft einfach unter der Einschreibung gutgeschrieben Bookmakers hors ARJEL en France aperu.1739 Home