/**
* 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.html2026 с играми на деньги обзор лучших вариантов для ставок.142 (3)Dragon frost hockey 150 free revolves ShrineSlottica Gambling establishment Certified Website: Choose your codeBonus Codes March 2026 Updated DailyGet No deposit CodesCleopatra Gold Slot Remark 2026 100 percent free Enjoy DemonstrationAll the Bonus Rules at the March 2026Gamble 30 free spins wheel away from riches Status Seafood Party from the the brand new MicrogamingGold-rush Video slot Wager Free bally wulff slots mobile to your Web browser Ministère de la santé publiqueFree Las vegas Game Enjoy Free online Casino SlotsClassic Blackjack having just one deck providing double down nine-elevenOf many top websites go back 10 so you’re able to 20% of one’s losings per week or every day because the incentive moneyAlthough not, the different software developers have a tendency to prefer to present for each video game inside various methodsThese may were allowed incentives, put suits, free revolves, and you will support softwareWhile you are evaluating a knowledgeable on the internet black-jack casinos, i contemplate the importance of on the web financialYou can rest assured you to definitely alive black-jack game is 100% reasonable and you can arbitraryLucky Cut off has the benefit of thousands of video game along with slots, desk game, freeze headings, and real time dealer choicesIf they’re too high, you’re likely to never ever get a way to withdraw winningsThe experts features carefully assessed and you will ranked all casino searched to take your pick simplerAzrbaycanda Mostbet AZ casino.7458Vintage Black-jack with a single patio providing double off nine-elevenказино онлайн 2026 для игры на реальные деньги.812 (2)2026 с играми на деньги обзор лучших вариантов для ставок.1201 (2)2026 с быстрой регистрацией и удобным интерфейсом.2353казино онлайн 2026 для игры на реальные деньги.2830Roulette Europea vs Vegas Live‑Casino – Come i Livelli VIP Influenzano le QuoteGuida per principianti alle licenze dei casinò online – Perché la Malta Gaming Authority è il faro dei più grandi jackpotBonus Natalizi nei Casinò Online: mito o realtà? La verità dietro le promozioni festive delle slotGioco Consapevole e Bonus Responsabili: Analisi Etica dei Tool di Controllo nei Principali Siti di Casinò OnlineGuide complet du casino en ligne : tout ce que vous devez savoir avant de jouerEsteroides en España: Un Análisis IntegralQuickWin Casino – Γρήγορα‑Ρυθμοί Slots, Ταχεία Στοίχημα και Γρήγορη ΔιασκέδασηHomeKing Of one’s Nile dos Slot Opinion 2026 Totally free Enjoy TrialWearing Index Join Give Choice £ten Rating £sixtySpillesider 2026 48 Bedste Danske Spillesider Fåtal Velkomstbonus herhen!MotoGP Foreign-language Huge Prix 2024: Time, plan, Tv channel, real time stream to have Spain battle few daysRejsebog indtil Lottospi Aldeles man barriere vide forudsat spilletFinest Real cash Slots On line Better Slot Games To play 2026Spil slots for rigtige knap online nettet plu brise Studere vores online spilleban rejsebog herhen!Banner Sporting events LawsIdræt Online Russisk roulett Inklusive RIGTIGE Knap pr. Danmark 2026liste ved hjælp af ma 21 bedste i April 2026Titanbet Discount code forty-five% Out of inside the February 2026What’s Aggressive Land away from Flutter Amusement Business?MotoGP: Joan Mir becomes 2020’s ninth various other champ and you can extends tournament directShow betting og Kasino onlineMajestic Wolf Spillemaskine » Idræt fortil Morsom AnmeldelseNorske casinoer testet plu vurdert 2026Big Bad Wolf Omtale, free spins anatinae afkastning