/**
* 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.htmlDiese Bizzo Spielbank Nachprufung � Spiele, Erlaubnis oder BonusangeboteGuide complet du casino en ligne : tout ce que vous devez savoir avant de jouerAlles Interessante unter zuhilfenahme von legale deutsche online Casinos innehaben unsereins im nachfolgenden Waren fur jedes Dich aufgelistetHis particular review usually takes distributionspolitik complete starting June by inside Neunter monat des jahresFeuer speiender berg Las vegas ist und bleibt das beliebtes ferner bekanntes Moglich SpielbankEnded up being man sagt, sie seien die zentralen Ma?nahmen zum Spielerschutz inside Land der dichter und denker?– Официальный сайт Pinco Casino.3275 (2)Da Bitcoin a Jackpot: il percorso tecnico‑strategico di Crypto Winner nel mondo delle slot online, un’analisi dettagliata di infrastruttura cloud‑edge, RNG certificato e strategie bonus che stanno rivoluzionando i casinò cripto italianiMostbet Casino Giri Trkiye Resmi casino ve spor bahisleri.2118Da Bitcoin a Jackpot: il percorso tecnico‑strategico di Crypto Winner nel mondo delle slot online, un’analisi dettagliata di infrastruttura cloud‑edge, RNG certificato e strategie bonus che stanno rivoluzionando i casinò cripto italianiонлайн – Gama Casino Online – обзор 2025.4794Da Bitcoin a Jackpot: il percorso tecnico‑strategico di Crypto Winner nel mondo delle slot online, un’analisi dettagliata di infrastruttura cloud‑edge, RNG certificato e strategie bonus che stanno rivoluzionando i casinò cripto italianiStrategia di Profitto al Poker Online: Analisi Economica dei Casi di Successo e il Ruolo dei Siti di GiocoDa Bitcoin a Jackpot: il percorso tecnico‑strategico di Crypto Winner nel mondo delle slot online, un’analisi dettagliata di infrastruttura cloud‑edge, RNG certificato e strategie bonus che stanno rivoluzionando i casinò cripto italianiJackpot Progressivi d’Avanguardia: Le Storie di Vincitori che Stanno Rivoluzionando le SlotStrategia e Trasparenza : il Piano d‑Azione dell’iGaming per Slot Sempre Giuste– Официальный сайт Pinco Casino вход на зеркало.2764Sultan Games в Казахстане Удобный вход и безопасная игра.1737Sultan Games в Казахстане Как получить бонусы.1865 (3)Sultan Games в Казахстане Как получить бонусы.1581 (3)Boldenon: Wie einzunehmenказино онлайн 2026 играйте с уверенностью и безопасностью.54812026 с играми на деньги обзор лучших вариантов для ставок.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 jackpotHome