/**
* 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 TVhttps://validator.w3.org/feed/docs/rss2.htmlSpinEmpire Gambling establishment Free Revolves No deposit to the slot wisps Treasures away from ChristmasSantastic Ports Enjoy this christmas wild wild spin online slot Determined RTG Online gameSafari Sam Slot On casino winz io login the web Gamble Demonstration and you can A real incomeShe actually is a refreshing Lady Pokie Wager 100 percent free avalon slot play for real money & Comprehend ReviewNo-deposit Incentive Codes & Totally free Spins Updated Each viking voyage casino dayGuide complet du casino en ligne – Tout ce que vous devez savoir avant de jouerUnderstanding Tren A 100: An In-Depth LookSet of Reddit Betting no deposit bitcoin casino bonuses Communities & Subreddits to own 2026Totally free Spins Incentives casino planet 7oz no deposit No-deposit ExpectedBetter Internet casino Australia The actual 100 100 percent free revolves zero deposit vertebral faucet deal Money 2026 Top Find treasure hill casino Costa RicaTop ten Online snap this site gambling Canada Sites the real deal Profit 2026Best Local casino slot wolf moon Software 2026 Finest 5 Casino Apps the real deal Currency80 100 deposit £5 get £20 percent free Spins Gambling establishment Offers Allege 80 Totally free Revolves to possess 2026Online Pokies 2026 670+ Free 300 bonus deposit Pokies Games!Best Gambling establishment Programs so you can Victory Real money On the internet to lightning link play own February 2026Usa No deposit Extra casino neteller Rules Better 2026 Gambling enterprise Also providesJungle Jim El Dorado Slot Play a night in paris slot machines On the internet 100 percent freePleased Holidays Slot: Christmas Position Remark and you slot machine Myths Of Bastet can Incentives during the KeyToCasinoLoad The new Happiest Christmas time Tree from the casino deposit 5$ get 80 Nat King Cole Listen on the web 100percent free for the SoundCloudGladiator vikings glory online slot Position Games Comment, Free Enjoy & Extra PasswordBetter 100 percent free Revolves Gambling $5 deposit casino Top Cat enterprises March 2026 No deposit HarborsEnjoy 21,700+ Free gambling tips and tricks online Casino games Zero InstallFree Higher Blue Position Gameplay Playtech Casinos on the 50 dragons pokie internetWasteland Cost 2 Slot Comment Playtech Gamble Totally free marco polo slot machine DemoEasy On the web bao casino no deposit code GamingBetter 100 online casino minimum deposit 5 percent free Spins No deposit Incentives Winnings Real moneyApple jumpin jalapenos slot machine Shell out Gambling enterprises & Sportsbooks Get the best Apple Shell out Betting SitesUnearthing Riches: A-deep Plunge to treasure island bonus game your Gonzo’s Journey Real-Currency Feel to possess German Gamblers 淨美皮膚科診所Break Aside 50 lions online slot Position Skates To the Fast Revolves and Big TimesGoldilocks and the Crazy Holds Slot Games Comment & mecca casino no deposit bonus code Free GambleEnjoy 50 free spins no deposit vegas world Dragons Position Totally free Mesmerizing ConstructionComeon Casino Zugang für Brd: Sicherer Zugriff, Herr BET Free Cash Bonus schnelle AuszahlungenMr O casino haz bonus codes 2023 Casino No deposit Extra $100 Totally free ProcessorOnline slots skrill casino bonus Software: Real money Android os & IosFree Harbors On line Enjoy Vegas Video slot play vegas hot 81 slot machine enjoymentGolden Goddess the site Ports, Real money Video slot & 100 percent free Gamble DemonstrationOn the web Pokies Greatest Aussie Pokie Game the casinos for real money real deal MoneyGreatest Mobile Gambling establishment Bonuses casino Da Vinci Use the newest Go and also have Compensated50 100 online casino dracula percent free Revolves No-deposit 2026 Allege Your Totally free Spins Bonus!Play free 50 spins no deposit Skip Kitty Silver regarding the BetMGM BetMGMFantastic Goddess position opinion slot Super Monopoly Money 2026 lillady huge earn Play for totally totally freeNewest 3 CAD Lowest Deposit Gambling enterprise Incentives casino Coral legit to own February 2026Totally free Harbors Online Enjoy 15 dollar free no deposit online casinos Vegas Video slot for funSanta Bonanza Slot: Unwrap Merry Wins gold fish slot play for real money This yuletide!Guide complet du casino en ligne – Tout ce que vous devez savoir avant de jouerAce?categorie provideri ofera rămăşeală sigure, corecte ?aoleu! verificate inainte de a pica JucatoriCinstit cum de Circula?o! platforma noastra mobila de ajunge?aoleu! spre săriA 10 întreprindere mai jucate preia on de 2025Understanding the Sustanon 250 Mg Cycle: Benefits, Dosage, and ConsiderationsHome