/** * 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 Vipzino Casino Bonuses & Loyalty Programme Uk Player Perks 2026 Significantly less than Italian words betting regulations, players during the judge online casinos is at the mercy of a month-to-month deposit restriction of �step 1,000 An informed Ports Host In the India Such demo models have become ideal for trying out a game prior to gaming bucks into the Ihr DuckTales Geldspeicher inoffizieller mitarbeiter LEGO Ideas Review geschützt Moving Ports Local casino No-deposit Incentives, Requirements & Sign-upwards Has the benefit of April 2026 Roulette try prominent options certainly one of online casino Desk Video game Espaces sans frais à l’exclusion de archive: 10+ salle de jeu Pas de casino de dépôt verde casino pour les joueurs existants à tours non payants Roulette was popular selection certainly online casino Desk On line video game Sultan Games Всё что нужно знать.1245 (2) Quick Detachment Bitcoin Local casino Get money in the Seconds Laisvieji goldbet kontaktas Lietuvoje uostai ir internetinis socialinis vietinis kazino To relax and play on the Safe AUS Casinos on the internet � Expert Tips and tricks Exactly how Canadian Personal Coverage Create Manage On the web Gamblers Going Ports Casino Feedback Expert & Member Evaluations 2026 Vorfinden interpretieren Deutsch-Englisch: Cambridge Lexikon Safe banking is an essential part of that online real cash casino Court Land that have Gambling on line around australia Running Harbors Gambling establishment 2026 RollingSlots No-deposit Added bonus Dvigubo sukimo nemokamos pozicijos lošimas. Dvigubas sukimas dėl „NetEnt“ vulkan spiele lošimo automatų programėlės promo kodai 100 procentų nemokamo žaidimo. Roulette is actually popular possibilities certainly to the-line gambling establishment Table Video game Kelly Gulliver has noticed a move around in ways many members provides been impacted by “scambling” in advance of seasons Moving Ports Casino Canada 5,000+ Online game $30 Put 100% Bonus & 50 Freispiele Just how Canadian Personal Safety Operate Safeguards On the web Bettors Internetinis vulkan spiele premijos sąskaita kazino lošimas už tikrus pinigus „PokerStars“ kazino Baccarat – because demonstrated of your Seymour when you look at the 1897 Enjoy Safely And have now Totally free Revolves! Kelly Gulliver provides noticed a move around in the way in which of a lot people was influenced by “scambling” before seasons Fre Revolves Toeslag 2026 Eersterangs 10 kosteloos ramses ii slotvrije spins spins bonussen DrückGlück Spielbank Erprobung: 100 Maklercourtage, 50 Freispiele As to why Ignition Is one of Top Web sites gambling establishment having Safeguards Rolling Ports Gambling establishment Erfahrungen und auch Bewertung Gambling establishment Guru Attraversa la strada con la gallina e raccogli monete in Chicken Road, evitando le auto! Significantly less than German playing laws, participants from inside the judge casinos on the internet was at the fresh new compassion off a monthly put restriction of �step one,100 Vaizdo lošimo automatų vulkan spiele Lietuva bonusas leidinys. Geriausi būdai išbandyti „Videos Harbors“ internete. Kelly Gulliver have seen a move in the way out-of an excellent parcel players have been impacted by “scambling” in earlier times 12 months Moving Ports Local casino Opinion 2026: 260% Complement so you can $step 3,600 + 260 Free Revolves To relax and play from the Safe AUS Online casinos � Elite Tricks and tips Echtgeld Angeschlossen Casinos Ostmark März 2026 bonus Videoslots Переклад та приклади англійська німецька Better 5 Respected Online gambling Web sites in america � Opposed 1win казино и БК.2192 Going Harbors Casino Review Professional & Associate Product reviews 2026 Sultan Games Как начать играть.1008 Court Landscaping getting Gambling on line around australia Minimali goldbet partnerio prisijungimo registracija tauta Gamble over 500 Of the finest Online slots This Bitcoin casino brings from brief cashouts, with many crypto distributions installed simply minutes!