/** * 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 Guide complet du casino en ligne : tout ce que vous devez savoir en 2026 Greatest Sweepstakes Gambling establishment No deposit Added bonus 100 percent free South carolina 2026 Best Steps you can take inside Phoenix in just about any Season 10 Finest Web based casinos for real Money Greatest List Alito Took Unreported Luxury Excursion Which have GOP Donor Paul Artist The Gambler’s Compass: Navigating the Digital Casino Landscape The Gambler’s Compass: Navigating the Digital Casino Landscape The Gambler’s Compass: Navigating the Digital Casino Landscape The Gambler’s Compass: Navigating the Digital Casino Landscape Best Pokies and you may Punctual Earnings prepaid visa 5 dollars local casino to have Australian Players The Gambler’s Compass: Navigating the Digital Casino Landscape Best Online slots games inside the 2026 Real money Position Game 100 percent free Ports Free Casino games On line Slots Which have Added bonus Video game Try an educated Extra Slots inside 2026 Play 32,178+ 100 percent free Slot Demos No Obtain Dual Twist Megaways Actual-Day Analytics, RTP & SRP 403 Unavailable Twin Spin Position Play Dual Spin Trial 2026 $step one Put Gambling enterprises having 100 percent free Spins Bonus Offers Trolls Position Review Gamble Trolls Casino slot games Totally free Version On the web n Yax Azrbaycan Kazinolar 2026 Qaydalar v rtlr zr Bldi.5529 Multiple Container Diamond Demo Position San francisco bay area Gambling establishment inside Rohnert Park Zimpler Gambling enterprises 2026 Find Better Casinos One Deal with Zimpler Finest Slot machines to experience & Victory Online the real deal Money in 2026 Better On the internet Pokies the real deal Money in Australia! Top ten Charge Casinos on the internet 2026 Gambling enterprises Taking Charge Greatest 20 Casinos on the internet regarding the U S. Better Court A real income Gambling establishment Sites 2026 800+ Greatest Web based casinos in the Canada Confirmed from the 2026 Analysis Finest Offshore Casinos Greatest Apple Spend Casinos 2026 Build Safer Fruit Shell out Dumps & Distributions Play 21,700+ Online Gambling games No Down load ten Better Australian On line Pokies for real Cash in 2026 to Enjoy ten Greatest Usa Real cash Gambling establishment Sites to own Online gambling 2026 Tomb Raider Position Video game Trial Gamble & Free Revolves אי שטרן ניהול פרויקטים הנדסיים בע”מ Free Ports & On the internet Public Casino Titanic On the web Getting Software To possess Android Mobile Genuine Or Phony Black-jack Means Cheating Layer Zonder Cruks Online Casino Klantenservice.978 (2) 243 Suggests + 100 percent free Spins Incentive Thunderstruck Gold Blitz Significant Gambling enterprise Online game Comment BetMGM Planning Ahead: Vehicle Management Through Power of Attorney Thunderstruck Insane Super Gambling establishment Online game Review BetMGM Getting to Know Healthcare Decisions: The Impact of Power of Attorney Totally free Revolves No-deposit United kingdom & Zero Wagering A real income Incentives IWin Vit Nam tr chi trc tip v c cc.106 EA FC twenty-five Thunderstruck promo inform tracker The Best Anabolic Steroids for Definition and Muscle Hardness ExcelBet Casino deschis noilor jucatori o dimensiune buna Extra din cauza au de pana la 2