/**
* 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.htmlHomePå 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?Graj Smacznie Automaty Przez internetMega Joker Sieciowy, Recenzja slotu 2025Premia wyjąwszy depozytu Grudzień 2025 Najkorzystniejsze freebety dla internautówHazard Za darmo Automaty Gry Online AutomatyUnicorn Reels opinie recenzja automatu do odwiedzenia gryNadprogram wyjąwszy Depozytu po kasyno dla Polaków Top promocji 20255-Bębnowe Automaty Przez internet Graj bezpłatnie na SlotsUp2024 Demo, doborowe slotyMachiny Hazardowe dzięki Rzetelne Finanse Zabawy Sloty SieciowyUrządzenia Do Grania OnlineBonusy z brakiem depozytu ? Zbadane kasyna wyjąwszy depozytu!Nuovi inizi responsabili nel gioco d’azzardo online – Come il sistema Reality Check protegge i giocatori durante la stagione dei jackpot di CapodannoEstate di Gioco Responsabile: Bonus Scaldanti e Dilemmi Etici nelle Principali PiattaformeRoulette Online : Tradizioni, Jack‑pot e le Strategie più Efficaci dal Punto di Vista CulturaleIl budget digitale nei tornei di casinò online: una lente culturale sulla responsabilità del giocoGuide complet du casino en ligne : Tout ce que vous devez savoir avant de jouerZ razem z natychmiastowe wygrane � bedzie na 24 h � oraz weekendowy cashback i cotygodniowy reloadBardzo z drugiej strony podzielilem moje kieszen kasyna w internecie z najwazniejsze kategorieOdnotowane wymagania, ograniczenia wyplat i mozesz dzien zaleznosci od promocji ktore sa dostepne jest na stronie DragonSlotsNa tej post na dokladnie przyjrzymy sie kazdemu aspektowi tej chopinePakiet powitalny do 3500 PLN i mozesz dwiescie darmowych spinowGuide complet du casino en ligne : Tout ce que vous devez savoir avant de jouerTen naciagacz premiuje co okolo trzech nie. 1 wplaty na czlonkostwo depozytowe