/**
* 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.htmlQuickWin 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 casinosThis approach helps people end programs which have a reputation unethical practicesAlthough not, for people who go after several effortless laws, it is possible to swing chances on your own go forFresh to online casino games or maybe just need to sharpen the knowledge?Sizzling Hot Deluxe Bezpłatne Gry hazardowe Sizzling Hot DeluxeBezpłatne Dochody z FS zbyt Rejestrację, Kasyna pochodzące z Free Spinami z brakiem Depozytu w ciągu Weryfikację 2025ICE Casino Szyfr Promocji: Pozyskaj szyfr promocji od czasu ICE KasynoBieżące Bonusy z brakiem Depozytu zbyt Rejestrację 2025 Świeże Kasyna bez Depozytu pod StartA new comer to casino games or maybe just want to hone your knowledge?