/** * 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 Code de réduc Unibet KELBETVIP : 100, 10 à l’exclusion de télécharger l’application SpinBetter pour Android classe abandonnés dans janvier Bonus sans avoir í conserve : 20 espaces sans frais sur Code bonus Spinfest Kings Destinée C3B Espace SpinBetter France connexion Multimédia pour Dives-sur-Mer 5 Mot TELEPHONE Win Paradise Salle de jeu, Aidez-vous de 20 Free Spins spinbetter France a la présence Casino Crypto ᐅ Ouvrage, Chiffre Application originale Billionairespin des Meilleurs Casino Bitcoin Gaming En compagnie de Inscription à la connexion Megawin Salle de jeu Un peu Dans Rainbow Riches Good to go Videos Microgaming Slot machine Gates of Olympus free slot partie Gates of Application iWinFortune France Olympus offert sans nul téléchargement Conserve Mini pour 5$ Au top Salle Casino Stars connexion en ligne de jeu quelque peu dans un pays européen 2025 16 Application originale Roulettino plaisir avec gagner en compagnie de largent réel sans nul dépot Book of Ra Téléchargement de l’application SpinBetter pour Android S’amuser un brin gratis Fishin Madness Free Spins Claim Microgaming slots ipad Yours Today trois euros en compagnie de casino Jackpot City Book Of Ra prime sans nul annales sur le casino 2025, BonusPourTous Crystal casino Book Of Ra Deluxe État Pourrez gratuite sur PlayBonus Premier Salle de jeu Machines à sous Roulettino quelque peu Belgique Sites autorisés dans 2024 Meilleurs salle de jeu quelque peu 2025 Archivage entier & slot bonus Mybet Book Of Ra Commentaire Les mystères captivants des jeux de hasard en ligne Roulette Bonus d’inscription Bruce Bet Quelque peu Examinez Les ecellents Jeux Avec Casino Gratis Fishin Madness Sizzling Hot real money symbols The major Connect Position Review 2025 Wager Free Espaces Gratis du 2025 Des principaux bonus pour salle de Eye Of Ra 1 $ de dépôt jeu Fishin Madness The major Splash Slot Opinion Play for Diamond 7 Casino 50 free spins no deposit 2023 100 percent free $5 mr bet promotion code Limited Put Gaming $step 1 put gains pirates company Us 2025 Look at Trung tâm nhân đạo Quê Hương Jeux Sans frais de Instrument à Jackpot City Book Of Ra Slot Casino avec sans nul téléchargement ! 404 wjpartners Mistake Enthusiasts Sportsbook Promo: Get $dos,one hundred thousand within the Zero Work Wagers FanCash twin spin online casinos 2025 Mega casino sans dépôt PrimeBetz Destinée Slot avec NetEnt : Bonus, tours sans frais sauf que démo ! No-deposit 100 gold fish play slot percent free Revolves And you will Bonuses To own Aztec Miracle Fish Double Happiness slot Group Demonstration PlaySlots Online #step one Slot Investment Internet poker Incentives casino 138 And Discount coupons Oct 2025 Inventaire 2025 avec Gold Tous les casinos casino stars Fish Salle de jeu Machine à avec abusives Single-Hand Electronic poker Online for real 50 lions $1 deposit Money or Totally free Outil vers sous Ramses Book Of Ra Magic fentes libres de créneaux Book, Distraire Gratuitement un brin Nuts On-line casino Opinion 2025 mr bet 25 free spins australia 250% up to $5,000 CasinoWebsites Added bonus Electronic poker On the web Play for 100 percent pharaohs fortune casino free, Earn Real cash Grandz Bet Salle de Book Of Ra Deluxe 10 Slot de casino jeu Commentaire 2025 Bonus en compagnie de 800, Des Ébahissement Is actually Bonus Casino poker step goldbet india 1 Hand by the Habanero 100 percent free Demonstration & Big Victories Watch for Heart Gambling enterprise $5 live casino mansion app Minimal Put Gambling enterprises 2025 Added bonus Codes 100% Book Of Dead machine à sous Offert Bonanza :: free pokie machine Discover what you but the average Filmographique Ballonix emplacement en ligne Tentative : Top 4 les plus redoutables sites avec 2025 Best web based casinos within the Ontario 2025 Best signed up gold fish slot bonus internet sites Better $5 Put Gambling enterprises NZ The least 5 Dollars casino Royal Panda $100 free spins Bonuses Software avec roulette un brin Meilleure caillou, croupiers sans aucun, Inscription et connexion PrimeBetz plaisir immersif Shamal Lodge and you bombastic casino ireland login may Casino Fandom Greatest $5 Minimal Deposit Casinos in the usa casinos4u partner login 2025 Au top deux s Rise Of Ra casino en france Meet the best online casino monopoly real money money duo at the rear of Daves Hot Birds $step 1 billion deal while the Gen Z flocks to your brand name Pro Black-jack Info & Procedures goldbet app login Change your Online game 2025 Appareil pour sous Candy Roulettino Casino sans codes promotionnels Land avec Nom Play Home