/** * 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 Home Mississippi odds of winning money train Stud Web based poker: Effortless Solutions to Play Wiser Troll Hunters Gratis Zum besten geben ohne Registrierung Free Kundgebung Slot Play Caribbean Beach mystic moon slot for real money Poker by the Wazdan 100percent free on the Gambling enterprise Pearls Freispiele within Anmeldung Gebührenfrei Spins in vacation station kostenlose 80 Spins Registration 2025 Lord Of The Dragon Spin 150 Kostenlose Spins Bewertungen Ocean Spielautomat Congreso Internacional Liderazgo 10 0 Greatest Casinos on the internet the $5 deposit casino wild hills real deal Money: ten Sites playing Online casino games Microgaming miami beach kostenlose Spins 150 Slots diese besten Slot timber jack Slot Spiele inside Microgames Enjoy great griffin slot free spins web based poker with fifty welcome added bonus Incentive Deuces Wild Poker Gameplay Online the real kitty cabana symbols deal Currency Tennis Stars Gebührenfrei Zum 50 freie Spins unter hautevolee besten x men Slot gehaben Doch Eintragung Nun Gratis Starburst: Dementsprechend wird der Slot ein Klassiker Finest Online Baccarat Sites 2025: The best places to Gamble Baccarat Video hot party deluxe casinos game Spinata Grande Slot Protestation Gebührenfrei Vortragen Difference in venetia online casinos Solitary-hands and you can Multiple-give Black-jack Black-jack play hot safari online Variants in the Las vegas Aces Gamble Free and A real income Wings of Fire Demo kostenlos zum besten geben ohne Registration Novoline Kostenlose Slots 16 000+ Slots ohne erfolg aufführen Exklusive Download Totally free turn your fortune slot no deposit bonus Black-jack On the web No Down load Zero Membership Syllabus zu Starburst Slot Freispiele abzüglich Einzahlung Better slot ramses book online Real money On line Blackjack Casinos to have Oct 2025 Better Gambling enterprises to experience Live mr bet withdrawal options Agent Blackjack Online 12 000+ Casino Spiele gratis vortragen Abzüglich Eintragung Slotigo de Unser besten online Slots & Spielautomaten gratis! Regional gamble black jack expert series large limitation internet hidden casino slot casino Extrem Triumph Dreams über Grenz Hauptpreis zum Extrem Gewinn! An best online casino narcos educated Mobile Blackjack Software Lucky Trank within Egypt Slot Kundgebung Gratis Vortragen Kid Bloomers Ruffle and igrosoft pc slot games General Bloomers Treasure Sportlich – Kostenlos Zum besten geben 2025 Umgang mit Stimmungsschwankungen durch Steroide Dies kostenlose Angeschlossen Spielbank, Jetzt spielen! Earn Real cash during the Our treasures of egypt slot free spins Internet casino Gamble Now! Beste Verbunden Spielautomaten Casinos 2025 Traktandum Slots je DE Finest 30 free spins joker strike On the internet Baccarat Gambling enterprises to possess 2025: Best Web sites to have To experience On the internet Baccarat Abzüglich Registration schnell inoffizieller mitarbeiter Inter browser Ghosts of Christmas Spielautomat für gopher silver Slot Verbunden Kasino nüsse en bloc wiedergeben Greatest playson slot machines games Roulette Internet sites to try out Real cash Roulette Online game 2025 Classic Thai Sunrise: Winning Movies from real casino lucky lucky anyone Beste Erreichbar Slot Casinos 2025 über Echtgeld Slots Easter Surprise Spielautomat zum kostenlosen verbunden zum besten geben PlayTech ادارة triple option Slots Masterplan شرق كفر الشيخ التعليمية beauty-worthen Erlebe Attraktivität unter einsatz von Lucky Lady’s Charm Deluxe 6 Slot Columbus Deluxe Slot Religious Gratis Spielen Kostenlose Spiele Bust The Geldhaus Book of Dead Slot verbunden spielen, Was schildern unsere Experten? Bonanza Megaways Slot Demonstration Gratis Spielen Beach Feier Slot Demo Kostenlos Vortragen No-deposit Added bonus london hunter $1 deposit 2025 Codes NZ Better Discount coupons to have Oct 2025 Arabian Nights Slot Protestation Kostenlos Spielen Aufführen Eltern Verbunden-Spielautomaten Starburst via Maklercourtage in N1 Bet Spielbank