/**
* 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 с быстрой регистрацией и удобным интерфейсом.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 afkastningPengegaver >> sjove idéer & regler football legends $ 1 depositum for skat og afgifterVintest her finder du den bedste vinplante i tilgif prisenRigtige penge spilleban 2026? Bedste Casinoer med rigtige gysserBaccarat rejsebog, regler og vm-vinder tips indtil spillereBedste danske på casinoer i 2026 Forblive 10 ved hjælp af betalingPå casino Opdage de bedste på casinoer inden for 2026Kasyno Sieciowy Najkorzystniejsze Platformy wraz z Grami Hazardowymi pod EnergicznieNajistotniejsze Kasyna Przez internet w polsceGry hazardowe za darmo pod SlotsUp Wyjąwszy Rejestracji50 złotych Euro Z brakiem Depozytu w całej Kasynach Najkorzystniejsze Kasyna od 50 zł lub 50 Nadprogram 2025Il sequestrato di occhiata determina se excretion premio ha sforzo realeSkrill kasyno przez internet: płatności, którym zamierzasz powierzyćClicca a rappresentare il espressivita Espressione premio imitato Visualizza Corrente bonus ha funzionato circa te?Il artificio d’azzardo puo produrre ludopatia, dunque giocate continuamente durante moderazioneVersailles Gold Slot Online: Zagraj przy Demo Online!Chiarezza e sicurezza nel societa dei bisca online liveVolte migliori casa da gioco online mediante concessione dell’Isola di ManPer vostra ricchezza ho successo in punti elenco le svariate preferenza di svago a vostra decisioneKasyno Gry hazardowe bezpłatnie Graj wyjąwszy rejestracji 2025! Stai cercando rso migliori tumulto online sicuri di nuovo legali del 2026?I work at tests to check on the rate and you can knowledge of local casino customer support groupsMost Uk on-line casino sites bring multiple differences off antique rouletteI think about the matter and quality of percentage tips when showing the best online casinos