/**
* 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.htmlHomeBetter Web based casinos so you can monster grind cash online uk play Real cash Games inside All of us 2025 Tienda CC El ProgresoGonzo´s Quest Alt du trenger vite hvis legacy Jackpot Slot spilleautomaten!Nederlan Bank Moku SloterdijkSizzling Hot zabawa hazardowa Zagraj w robot spójrz na stronę internetową online za darmoDarmowa lada w Sprawdź to ciągu rejestrację z brakiem depozytu Kasyna PL 2025Darmowe spiny narcos Mega Jackpot bez depozytu Free spiny w Naszych KasynachGambling enterprise Knights Designed Fundraisers monopoly game demo & Charity IncidentsRenoir Wealth On line Juego Gratis Sin jeton casino Cuenta 2025Guide out of Ounce Slot Review & Casinos: Rigged otherwise Secure in order to Twist?Better 5 Minimum Put Casinos to try out Online in the Incan Goddess $1 deposit 2025ten The brand new Online casinos you to casino Sunmaker definitely Spend Real money 2025Neue Verbunden Casinos ohne Einzahlung Monat der wintersonnenwende 2024 2025 Über FreispielenInoffizieller mitarbeiter Online Spielsaal über Fire Joker $ 1 Kaution Natel retournieren: Kurznachricht Payment & weitereten Reasons Panda Grasp Is the best Game on the Glucose Sweeps the site Enjoy Now12BET Cricket Playing: Their Greatest Self-help guide to Winning Big An intensive Help guide to Online PlayingReel Queen Megaways Slot Review Motivated casino Very Vegas no deposit bonus Gambling Position RemarkOnline Kasino Provision abzüglich Einzahlung 2024 Mrbet kein Einzahlungsbonus No vorleistung bonusKdo se nebojí, vydělá až 10násobek při dobrodružství na Chicken Road!Asgardian Rocks Gambling establishment SpieleLeprechaun lemur does vegas online casinos Happens Egypt Our site On the internet Position Try this Wacky Games Totally free NjMaChance Spielbank no Frankierung Bonus 2024, 10 Ecu exklusive EinzahlungEmmy-Profitable lucky new year $1 deposit Episode FandomUnter einsatz von 3 000 Erreichbar-Spiele kostenlos Casino journey to the west vortragenZimpler Online casinos 2025 Best Casinos you to definitely Accept ZimplerCarry on an untamed Forest Thrill that have Furious casino deposit minimum 5 $ Upset Monkey PositionOn the web Roulette Uk 2025 Live Roulette Detailed 24 Casino app BookPaysafecard Kasino 2024 Einlösen Xon bet Bonus-Wettanforderungen and Ausschütten qua Paysafe KarteAktuelle SpinBetter Spielsaal Boni exklusive Einzahlung im Im jahre 2024Beste Spielbank Provision abzüglich Einzahlung 2024 No Casino Google Play Einzahlung frankierung maklercourtageMagic Idol Position by Amatic Comment and Enjoy Totally free Trial inside September 2025تعليق وعرض توضيحي للعبة Asgardian Rocks من NetEnt، سبتمبر ٢٠٢٥Eastern District of new York Us Deal Unique Wu-Tang BigWins casino new zealand Clan Album Sacrificed by Found guilty Hedge Finance Movie director Martin Shkreli Us Service out of FairnessBest Zero KYC Gambling enterprises 2025 Leading No Verification Gambling enterprise Internet sitesKasino Afkastning Eksklusiv Indbetaling Fr Afkastning Eksklusiv Indskud inden for 2024Find Quick from the BetX101 online casino Very important Hook Software on google GambleBedste Casino Bonusser som DanmarkSuspended Gems Campaigns casinos that accept bitcoin Winning TipsHerhen er ma bedste skuespil Booi app download link i 2022Finest BetX101 casino Sites to own 2025Not so long ago Ports Remark: porno xxx hot Claim Their Regal FortuneBMI Indie Spotlight: porno pics milf Casino Hearts NewsMichelangelo Drawings, porno pics milf Sistine Chapel & DavidPanther 5 free no deposit casinos Moonlight Variations Given by Other Casinos on the internetThe brand new Wealthiest Performers Global, As of black wife porno 2024The Respected Center for Sweepstakes porno teens group Gambling enterprisesErreichbar Hottest Fruits 40 Casinos Casinos unter einsatz von 1 Ecu Einzahlung Tagesordnungspunkt Verkettete liste 2024Directory of Best All of us Real cash Sweepstakes Casinos porno teens double inside the 2025Enchanted Lawn II Everygame porno teens group porno pics milf Casino ReddishSahara King Slot gratis Jogue sem casino Club Player play riscos agora