/** * 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 1Win India – Online Betting and Casino 1Win App.437 (2) Most useful 5 Trusted Gambling on line Websites in america � Compared How do i choice a real income throughout the an enthusiastic Australian internet casino? As to the reasons Find the Cellular Casino to relax and play Vegas Slots? Rizk was an established online casino into Canada which is area of the fresh internationally recognized Betsson Class This type of trial versions are particularly just the thing for tinkering with a-game before gambling dollars involved Our Needed Secure Online casinos Bringing 2025 How we Choose Online casinos becoming Not harmful to Bien au Somebody? Why Ignition Is considered the most Recognized On the-range gambling establishment having Protection How Canadian Societal Safeguards Perform Cover Online Bettors Safe financial is a vital component of one to on the web a real income gambling enterprise Safe financial is an essential component of you to definitely on the web a bona fide money local casino Safer economic is a vital element of that online actual money gambling enterprise If you’re looking to own noticeable facts about every aspect of new casino’s functioning, after that look no further than Ignition Local casino During the SafeCanada, we work with giving Canadian profiles honest, detailed analysis out-of safer casinos on the internet Such demo designs have become ideal for experimenting with a-game before gaming actual cash in to the If you’re looking providing obvious facts about every facet of brand new casino’s carrying out, upcoming take a look at Ignition Local casino As to the reasons Ignition Is one of Leading Into the-line local casino to possess Shelter Kelly Gulliver features noticed a move around in the way of a lot clients have begun affected by “scambling” in earlier times 12 months Roulette is actually a prominent selection certainly one of internet casino Table Video game Kelly Gulliver enjoys observed a change in how of numerous members possess been influenced by “scambling” previously season Such demonstration labels are very ideal for experimenting with a-game just before betting money in they To relax and play within Safe AUS Online casinos � Expert Tips and tricks Secure financial is an essential section of one on the web real money local casino Under Italian code betting rules, positives within this court online casinos is basically at the mercy from a monthly put maximum of �one to,000 Baccarat – since said from the Seymour on 1897 Exactly how Canadian Personal Shelter Work Protect Online Bettors As to the reasons Ignition Is one of Respected Online casino having Coverage Here, discover ports, video clips black colored-jack, and much more on enjoys of NetEnt, Microgaming, and you can Play’n Go And that Bitcoin local casino provides when it comes to prompt cashouts, with many crypto distributions lead in only moments! Anavar 10 mg Effekt – Eine umfassende Analyse Roulette was a famous selection one of internet casino Table Online game The way we Choose Online casinos become Safe for Bien au Pros? Safer financial is a vital section of you to definitely on line real cash gambling enterprise Exactly how Canadian Public Coverage Jobs Manage On the internet Gamblers As to the reasons Ignition Is one of Respected On the-line gambling enterprise for Security Baccarat – just like the said by Seymour during the 1897 Right here, you’ll find harbors, clips blackjack, and additionally about your wishes off NetEnt, Microgaming, and you may Play’n Go Hence Bitcoin gambling establishment will bring with respect to short cashouts, with plenty of crypto distributions setup only moments! Less than Italian language betting regulations, participants regarding the courtroom casinos on the internet was at brand new mercy off a monthly deposit limit regarding �one,100000 To try out throughout the Safe AUS Web based casinos � Specialist Tricks and tips Why Ignition Is the most Most useful Towards the-line gambling establishment having Coverage Importance of Certification When selecting a safe To the-line gambling enterprise Kelly Gulliver brings seen a relocate how of numerous customers have become determined by “scambling” previously year How Canadian Private Safeguards Functions Cover On the internet Gamblers To relax and play in the Safer AUS Online casinos � Pro Tips and tricks Better 5 Trusted Online gambling Sites in the us � Opposed Our Expected Safer Casinos on the internet To own 2025 Just how Canadian Societal Security Characteristics Cover Online Gamblers Home