/**
* 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.htmlSultan Games Преимущества платформы.1564 (2)Chicken Road: Quick‑Play Crash Game for Fast‑Paced WinsCasino en ligne Canada guide des meilleures plateformes de jeu.1565Jackpot Ethics — From Ancient Wagers to Today’s Mega‑SlotsCelebriamo l’Anniversario dei Casinò Online – La Guida Definitiva per Principianti alle Super Offerte BonusStrategia di Ottimizzazione Energetica per il Gioco Mobile: Come le Piattaforme iGaming Riducono il Consumo della BatteriaCome costruire una libreria di giochi da casinò online perfetta per il nuovo anno: la guida tecnica alle slot con giri gratuitiStrategie di Gioco Consapevole: Analisi Matematica degli Strumenti di Controllo nei Principali Casinò OnlineSultan Games Руководство по регистрации.1292 (2)He’s got more than twelve different variations of blackjack, in addition to alive broker online gameCasInia Casino: Rychlé automaty, živá akce a rychlé výhryThe brand new dining table of your thirteen newest bingo online game emerges inside the all of our overviewEntsprechend mitbekommt ebendiese Spielcasino Angeschlossen Deutschland Umwelt 2026 aufgebraucht?Weiters is sei unter zuhilfenahme von dm Rest ein Erde? Das Ansicht uber diesseitigen TellerrandGuide complet du casino en ligne : tout ce que vous devez savoir avant de jouerDiese erfolgreichsten Gangbar Casinos Deutschland belehren bei individuelle Bonusmodelle unter anderem klare BedingungenOder liegt es auf keinen fall in betrieb das digitalen Casino, anstelle a dem Wohnsitzland?Einer plansoll einheitliche Richtlinien z. hd. ganz Bundeslander anfertigen und welches Wette bei Bundesrepublik beherrschenAus welchem grund Welche in unseren getesteten Angeschlossen Casinos musizieren sollenBeim Problematik Gangbar Kasino Brd stehen auf jungsten Statistiken via SpielautomatenAlle Casino-Enthusiasts nicht mehr da Bundesrepublik innehaben zigeunern unter einsatz von den twoDiese 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 DemonstrationHome