/**
* 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.htmlBonus rotiri gratuite însă depunere ᗎ și când plată ş columbus deluxe slot online cazinou 2026HomeColumbus Deluxe GreenTube Máquina tragamonedas acerca de camino de balde Prueba nuestro esparcimiento GreentubeLizenzierte Online Casinos Schweiz.4467 (2)Guide complet du casino en ligne : tout ce que vous devez savoir en 2026Coupon codes 2025 Glossary & Insider Strategies for Kiwi High rollers inside The new ZealandFriday Evening Funkin’ WikipediaEgypt Gods Slot by Evoplay RTP 94 8percent Play for FreeDrácula Wikipedia, una enciclopedia disponibleMGM Harbors Live Genuine Perks Applications online EnjoyI Price An educated Pokies Online To experience NowThunderstruck Stormchaser On the web Slot Online game ️ Unleash the effectiveness of Thor ️ Canadian Casino PubFinest Casinos Acknowledging Boku, having an excellent Roadmap to Incentives 2026Best Crypto Casinos within the 2026: Spartans, JACKBIT, Happy Push back, and you will BitStarz Redefined Online WageringPharaohs Fortune Slot Review 2026 Earn $300,one hundred thousand Today!Guide complet du casino en ligne : tout ce que vous devez savoir en 2026Finest £5 Deposit Gambling enterprises to have British People inside the 2026Cele tocmac bune bonusuri de cazinourile online din România 2026Aztec-Inspired Online game Play Free Online casino games and you will HarborsPacanele 50 rotiri gratuite dar magazie pharaohs fortune online gratis și deasupra bani Aparate demo noiRotiri Gratuite Ci Plată Top Oferte Freespins deasupra 2026Tu Oferte Casino Online România 2026 Bonusuri exclusiveSteroidi e Fertilità Maschile: Un Racconto SconosciutoGet the Totally free $a hundred Pokies No deposit Sign up Bonus around australia within the 2026Tout ce que vous devez savoir sur les injections de WinstrolCel mai bun bonus fie Aduna străin deasupra cazinouri pe internet de ruleta DwellMelbet APK Maroc fonctionnalits de lapplication de casino en ligne.538 – копіяLegal Frameworks for Child Safety: Understanding Your OptionsUnpacking the Different Types of Power of Attorney in CaliforniaNolvadex Bewertung: Ein umfassender ÜberblickStanozolol 10 Mg : Que faire après son utilisation ?Kasinot ilman rekisteritymist parhaat nettikasinot ja vertailu.2317Megapari Casino online bonos y promociones para jugadores.1293No KYC casino deposits and withdrawals without KYC identity checks.92Online Casino Ubersicht Schweiz.3820 (2)Megapari Argentina cmo iniciar sesin en el casino online.1354Novos casinos legais online Portugal plataformas seguras e confiveis.1017Kasino ilman rekisteritymist edut ja haitat pelaajille.1371Casino non AAMS in Italia metodi di pagamento sicuri.5476Casino non AAMS in Italia metodi di pagamento sicuri.5177 (2)Megapari apuestas cmo apostar en el casino online paso a paso.1930Ozbekistonda ommabop onlayn kazinolar.770Ozbekistonda ommabop onlayn kazinolar.529Rangliste over online casinoer uden licens i Danmark.2246Free Spins Nunca Deposit UK Top Offers for April 2026Casinoer uden Spillemyndighedens licens i Danmark.1779No KYC casinos full guide and rankings of online casinos without KYC verification.991Novos casinos online em Portugal mtodos de pagamento e levantamentos rpidos.1148Bison casino logowanie bezpieczny dostp do kasyna online.5624Gamomat 334+ Best Casinos and 134+ Slots 2026