/** * 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 Poki-videopeli Intiassa: Ilmaisia $1 Starburst ​​nettipelejä, ei latausta Oikea kasino suomi casinos raha Nettikolikkopelit Parhaat kolikkopelit Uhkapeliyritykset 2026 Gibt es den maklercourtage fur jedes craps im mobilen spielcasino? Fazit � Unser sei dasjenige beste 10� Einzahlung Spielsalon inoffizieller mitarbeiter Versuch Krypto Casinos bei Bundesrepublik deutschland – Reside Spiele, Computerspiel Chats weiters Stay Spielsalon Jedoch wie within manchen folgenden Landern siehst ebendiese Erfahrung anders alle ?? Was wird das Casino Moglich Willkommensbonus ohne Einzahlung? As part of einen letzten beiden Jahrzehnten chapeau sich ebendiese Terra wa Glucksspiels entscheidend verandert Paysafe: Nachfolgende sinnvolle Zahlungsmethoden je Casinos unter einsatz von 10� minimaler Einzahlung Freispiele, die inoffizieller mitarbeiter Kasino mit 0 Euro Einzahlung bestehend werden When choosing ranging from totally free bets and you will exposure-100 % free bets, it�s essential to think about your gaming layout and you may needs Can i fool around with Google Buy on-line casino places around the globe? Create your Earliest Put at the Gambling enterprises one to Accept Bing Spend There was a privacy that’s available on the site for your perusal 2?? Can it be secure to try out at Huge Ivy Local casino? Our Research Criteria off Web based casinos without Deposit Greeting Packages We feel the enterprise looking to be great needs to bring customer comments surely They usually are a profit bonus between C$10-C$50 or 10-100 free revolves Dosage du Caberos 0.125 mg de Driada Medical : Améliorez Vos Performances Sportives Auf diese weise kriegt man einen Bonus via 9.1 Euronen Einzahlung Software pro ovocné automaty na Bonus Unlimluck internetu Užijte si Zlaté dolary 100 procent zdarma Revolves Ascending Gains Zkušební verze od Driven Gambling Bezplatný výherní automat Stažení aplikace Trinocasino v Česko a online hra Poznámka Залагайте в критична връзка мрежата и на мобилния си телефон অমর সম্পর্ক স্লট মতামত 2024 চেষ্টা করার জন্য একটি প্লাস পান Online Seafood Capturing Games Without Deposit: Winnings Real cash موانئ وقت عيد الميلاد استمتع بموانئ مستوحاة من عيد الميلاد مجانًا تمامًا Pride Affiliates Added bonus bucks works best once you treat it in a different way in the money you spend yourself New york gets their very first 3 Las vegas-style casinos Rating instructions and tell you pathways inside Google Maps Computer system Yahoo Maps Assist R2PBet Gambling enterprise cities solid emphasis on doing a secure and you will transparent ecosystem for its users Zusatzlich profitierst Du inside the der App von exklusiven Boni, die nur fur mobile Nutzer bereitstehen Put 5 Rating a hundred Totally free Spins Finest 5 Minimal Put Casinos in the British Claim 5 No-deposit Free Spins at the Ports Creature Free internet games in the Poki Gamble Now! Operating less than tight regulating supervision, Goldenbet Local casino British combines thorough gambling selection having security features one see United kingdom gambling standards Classic Egyptian Themed Casino Games The video game write well, plus the app performs firmly through the productive sessions that have numerous entry Queen Victory Local casino is a modern-day betting program that has been released within the 2024 twenty-five 100 percent free Revolves on the registration no-deposit Greatest 2026 Now offers This will make it specifically tempting to own users exactly who choose clear incentive terminology Spinpug Local casino Opinion And 100 percent free Potato chips Extra Surgery treatment Philippines Dermaesthetics The fresh new Game & Incentive Provides: The latest Playing Enjoy Unlocked We believed the most common position online game being usually calculated with no-deposit incentives Preferred Slots and Casino games >> Wager 100 percent free Generate offers work harder – what things to discover before you could claim Playamo Incentives: No deposit, Bonus Codes in the Playamo and you can 100 percent free Revolves Which have people local casino platform, the fresh online game and you can headings it’s is actually paramount Twist They Safe: Verified Totally free Spins Bonuses for March 2026