/**
* 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.htmlPenalty Shoot Out da Evoplay como funcionam as apostas dentro do jogo de casino online.813Guide complet du casino en ligne : tout ce qu’il faut savoir avant de jouerGuide complet du casino en ligne : tout ce qu’il faut savoir avant de jouerThe Science of Efficiency: How Templates Improve Time Management10 Common PDF Mistakes That Could Be Costing You Time and MoneyPenalty Shoot Out da Evoplay jogabilidade para novos jogadores de casino online.2007Penalty Shoot Out da Evoplay estrutura e mecnica do jogo de casino online.535Болденон: Дозировка и ПрименениеNajlepsze Kasyna Online w Polsce w 2026.34832Online Casinos in sterreich mit schnellen Auszahlungen.2383Penalty Shoot Out da Evoplay jogabilidade para novos jogadores de casino online.728Casino non AAMS in Italia le migliori opzioni per i giocatori.6368Najlepsze Kasyna Online w Polsce w 2026.1559Mobile Online Casinos in sterreich.3910Big Clash casino online .3899Najlepsze Kasyna Online w Polsce w 2026.36505Nederlandse casino zonder registratie Nederland beste opties en aanbevolen casinos.1979BasariBet Casino Giri – Canl Casino Oyunlar.14650Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.12387 (2)Casinos en lnea confiables en Argentina.3349 (2)Wypacalne kasyna online w Polsce z licencj.5053BasariBet Casinoya giri – resmi siteye kayt.14953Internationella online casinon fr svenskar.5836KingHills Casino: Quick Spin Thrills for Fast‑Paced PlayersVavada Casino Login tmutat bejelentkezs az online kaszinba.2230Μη Άδεια Καζίνο στην Ελλάδα 495Wypacalne kasyna online w Polsce z obsug po polsku.5727Jetton Казино ассортимент игр в онлайн казино.1321 (2)Casino Megapari tragamonedas y juegos en vivo disponibles.2780Jetton Games особенности игрового процесса в онлайн казино.866Big Clash casino online .3484Casinos online populares en Argentina.3439 (2)Καζίνο με Μπόνους Καλωσορίσματος στην Ελλάδα 141Big Clash casino online .6453Calificaciones de casinos en lnea en Argentina.4731 (2)Calificaciones de casinos en lnea en Argentina.4600Los 10 mejores casinos online de Argentina.4617Pin Up – Azrbaycann n yax kazinosu Rsmi sayt.9306Pin Up – Azrbaycann n yax kazinosu Rsmi sayt.8968Pin Up Casino Azrbaycan.8790Vavada Online Casino felhasznli lmny dizjn s kezelhetsg.1890Μη Άδεια Καζίνο στην Ελλάδα 65Pin Up Casino Onlayn Azrbaycan.10082Leon .1214Najlepsze Kasyna Online w Polsce w 2026.11245 (2)Sky Crown Casino Australia Complete Guide to Playing.2958Rangliste over online casinoer uden licens i Danmark.4569Rangliste over online casinoer uden licens i Danmark.4005Pin Up Casino – Azrbaycanda onlayn kazino Pin-Up.20461Home