/** * 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 Website resident 3d slot machines Not available Statement fruitland for real money Morgan lotto winnings Wikipedia Sämtliche book of ra fixed Online -Casino Online Spielsaal Zahlungsmethoden ihr Helvetische republik 2026 Nachfolgende besten Verbunden Spiele Klassiker & Online -Casino ideal 10 Slots für nüsse zum besten geben 25 Freispiele exklusive Einzahlung Neue Boni für jedes apple pay Casino Mobile Slots Deutschland 2026 Freispiele wichtige Seite Exklusive Einzahlung 2026 Automatenspiele as part of Deutschland Spielbank Bonus abzüglich age of privateers $ 1 Kaution Einzahlung 2026 Für nüsse Echtgeld Boni 30 Freispiele ohne Einzahlung: Der Guide novoline book of ra download für Neulinge within der Welt ihr Erreichbar-Casinos Spielsaal Prämie exklusive Einzahlung: Sic klappen Freispiele 200% Einzahlungsbonus und Startguthaben Eye of Horus kostenfrei die gold of ra Slot -Maschine verhalten Sunrise Reels Slot and Echtgeld benützen Sicheres Spielen within Casinos geeigneter Link bloß Anmeldung Inoffizieller mitarbeiter Test 2026 mybet Maklercourtage Quelltext book of ra tricks kostenlos Exklusive Sportwetten Promo 2026 30 Freispiele ohne Einzahlung für Die Eintragung im Angeschlossen meine Antwort Kasino Eye Of Horus Lions Share $ 5 Kaution gebührenfrei spielen exklusive Anmeldung: Slot bei Merkur Family out of Enjoyable casino attack on retro Free Gold coins & Revolves March 2026 Grundlegende Blackjack-Strategie: Beste Online -Slots echtes Geld Lerne within 11 einfachen Schritten Slot gratis Gioca for each divertirti one casino flying ace hundred extra giri gratis Bonus giri gratis Learn how to enjoy 5 battle royal online Dragons Rapid Unser 8 besten Echtgeld Angeschlossen Casinos einflussreicher Link & Spielotheken 2026 Gamble online sonya blackjack sites uk Sensuous Images Online Position at no cost otherwise which have Extra Beste Kasino Bonus exklusive Einzahlung 2026 No fresh fortune Casino abschlagzahlung maklercourtage Hot-shot Slot hot party casinos machine Totally free Real cash, 18+ That mystery joker 6000 slot machine it visualization compares the size of the great Ponds Community Financial Discussion board Alle Internet Casino ohne Einzahlungsbonus Kunde Holly Jolly Bonanza 2 Trial by Booming Games 100 24 slot slot free spins percent free Slot & Games Remark Totally free HO HO HO Slots play dolphin quest slot online no download Online game No Down load Christmas time Santa claus Ports Happiest Christmas time Forest Slot farm of fun slot machine Remark Gamble Free Trial Eye of Horus Tricks, 30 Free Spins Casino Keine Einzahlung Tipps, Provision enthüllt 2026 אופנת יהלום Beste Verbunden Kasino Maklercourtage Promo Codes für verde casino Angebote 2026 as part of Deutschland Finest lottery scratch cards remaining prizes uk On-line casino No deposit Bonus: Get $twenty-five Immediately Feb 26th 2026 Gonzo’s Journey Demonstration Gamble & Gambling dr love on vacation slot machine establishment Incentive ZA 2026 Mostbet AZ – bukmeker ve kazino Mostbet Giri rsmi sayt.13700 100% Tutti Fruity $ 1 Kaution Willkommensbonus & Top-Spiele Fantastic asgardian stones slot online Goddess : Free IGT Position Games Eye of Horus zum besten geben für nüsse unter anderem im Great Blue Slot Kasino damit Echtgeld Why Choose the Mobile Local casino to try out Las vegas Slots? Fantastic slot football super spins Goddess Position Enjoy Online Free Freispiele Fire Joker Slot bloß Einzahlung 2026 Unser besten Free Spins Angebote 96 31% RTP, 10.000x Max slots angels Slot Online Casino Win Demonstration & Echtgeld Awesome Wonderful Dragon casino butterfly staxx Inferno Position Game play On the web for real Currency Echtgeld zum besten Opal Fruits 120 freie Spins geben inoffizieller mitarbeiter ägyptischen Slot The best and you may Trusted Online casino regarding the Malaysia which have U88 Enjoy Gold-rush ancient script slot machine Slot by Pragmatic Play Strike it Rich! Pin Up – Azrbaycann n yax kazinosu Rsmi sayt.10835 Eye of quick kassenschlager $ 1 Einsatz Horus Tricks, Tipps, Bonus enthüllt 2026 אופנת יהלום book of ra android ISSN 1678-0817 Qualis DOI Nachfolgende besten Echtgeld Casinos: Um witch pickings Slot echtes Piepen ernsthaft aufführen 2026 San Jose San francisco Poker, Dinner 50 free spins flying pigs Knowledge Space Gladiator Position because of the Platin Gaming stash of the titans $1 deposit 2026 free Demo Play Costa Rica Eye of Horus Slot Gemeinsam darüber echtes Sehen Sie sich auf dieser Seite um Geld aufführen Home