/**
* 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.htmlHomeFresh 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 depozytoweQuickWin Casino – Vincite Istantanee e Gioco Rapido in 28 LingueRegister America’s Biggest Internet poker Websiteказино онлайн 2026 для игры на реальные деньги.45661win официальный сайт букмекерской конторы 1вин.1691казино онлайн 2026 играйте с уверенностью и безопасностью.6993Vinci Spin – Action de Machine à Sous Rapide et Expérience de Casino en Mode Fast‑Play1win букмекерская контора вход.87Gambling online game Daman Game Responsible Gaming Tips.1633 (2)HighFly Casino : Quick‑Hit Slots pour des jeux courts et à haute intensité2026 с играми на деньги обзор лучших вариантов для ставок.55441win букмекерская контора 1вин.29 (3)Gambling online game Daman Game Customer Support and Assistance.1628 (2)Mostbet Casino Giri Trkiye Resmi casino ve spor bahisleri.122761win зеркало сайта букмекерской конторы 1вин.1217Mostbet Casino Giri Trkiye Resmi casino ve spor bahisleri.118681win зеркало официального сайта букмекера рабочее на сегодня.1297 (3)Казино Официальный Сайт Играть в Онлайн Казино Pin Up.6206Казино – Официальный сайт Pin Up Casino Входи и играй.2260 (2)Казино играть в онлайн Pin Up Casino – официальный сайт.1167 (2)Hər Gün Yeni Şans Fraga platforması ilə həyəcanlı oyunlar oynayın, böyük qazanclar əldə edin və öz ş