/** * 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 Importance of Degree When deciding on a secure On the-line local casino Importance of Certification When selecting a safe On the-range local casino dos. Heaps O’ Wins � Most secure To the-line local casino around australia getting Pokies On SafeCanada, we manage giving Canadian advantages sincere, detail by detail critiques out-of safer web based casinos Du bekommst ‘ne authentische Komposition sämtliche Authentizitat, Ereignis & sozialer Wechselbeziehung On the SafeCanada, we focus on giving Canadian pages honest, detail by detail investigation of safe web based casinos Exactly how we Find Online casinos as Safe to own Bien au Pages? Roulette is largely a popular possibilities one of internet casino Dining table Game To try out from the Safer AUS Web based casinos � Elite group Tips and tricks Here, you’ll find ports, films blackjack, and you can on enjoys regarding NetEnt, Microgaming, and you can Play’n Wade Here, there’s ports, videos blackjack, in addition to throughout the loves from NetEnt, Microgaming, and you will Play’n Go Courtroom Land to own Gambling on line in australia In the SafeCanada, we perform getting Canadian players sincere, intricate analysis from safe online casinos How to For example a secure To your-range gambling establishment in australia? Right here, there are harbors, video clips blackjack, plus from the wants away from NetEnt, Microgaming, and you will Play’n Go If you’re looking getting visible factual statements about every aspect of the new casino’s working, following view Ignition Local casino How to Like a secure Online casino around australia? Safer economic is an essential part of some body on the web a real income gambling enterprise As to why Ignition Is one of Trusted Online casino which have Safeguards And that Bitcoin local casino earns terms of quick cashouts, with a lot of crypto distributions brought within times! Baccarat – just like the said of the Seymour to your 1897 Safer banking is an essential part of you to on the web a real income gambling enterprise Finest 5 Easiest Online gambling Other sites in the usa � Compared At SafeCanada, i do providing Canadian profiles respectful, in depth research out-of safe online casinos Judge Land for Gambling on line around australia To play regarding Safe AUS Web based casinos � Top-notch Tricks and tips Roulette was a popular choices yes to your-line gambling enterprise Dining table Game How Canadian Social Protection Perform Manage On the internet Bettors Right here, there are harbors, movies black-jack, and much more concerning your loves of NetEnt, Microgaming, and Play’n Wade Below Italian code gambling regulations, users within this courtroom online casinos is susceptible to a monthly set limit out-of �one to,100000 Here, pick harbors, video blackjack, plus throughout the likes regarding NetEnt, Microgaming, and Play’n Go How can i Favor a safe On-line casino around australia? Need for Qualification When choosing a secure Online casino As to the reasons Ignition Is considered the most Leading On-line casino having Safety They Bitcoin gambling enterprise provides out-of brief cashouts, with plenty of crypto withdrawals put in mere minutes! Our Called for Safer Web based casinos For 2025 How to Favor a safe Internet casino around australia? If you’re looking taking apparent information about every aspect of the brand new casino’s functioning, then see Ignition Local casino As to why Ignition Is one of Top Into the-range gambling establishment for Safeguards The Necessary Secure Casinos on the internet For 2025 If you are searching having obvious factual statements about all facets of your own new casino’s functioning, next look no further than Ignition Local casino Safe financial is a vital element of any on the web a real income casino It Bitcoin gambling enterprise brings when it comes to timely cashouts, with several crypto withdrawals earned mere times! To tackle on the Safe AUS Web based casinos � Specialist Tips and tricks Just how Canadian Social Defense Perform Cover On line Gamblers Top 5 Safest Gambling on line Other sites in america � Compared Kelly Gulliver provides viewed a shift when it comes to multiple consumers happens to be impacted by “scambling” before 12 months If you are searching having visible facts about all facets of your own fresh casino’s functioning, adopting the look no further than Ignition Gambling enterprise If you are searching having noticeable information about every facet of the latest the new casino’s working, second take a look at Ignition Gambling establishment Home