/**
* 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.htmlHomeVinci 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 şMostbet Casino Giri Trkiye Resmi casino ve spor bahisleri.13102онлайн – Gama Casino Online – обзор 2025.430SupaBet: Quick‑Hit Slots and Fast‑Track Casino ActionHow to Earn at the Harbors: Maximize your PayoutsOshi Casino: Mobile‑First Slots and Quick Wins for On‑the‑Go PlayersКазино – Официальный сайт Pin Up Casino Входи и играй.6435 (2)Казино Официальный Сайт Играть в Онлайн Казино Pin Up.10332Wild Panda Position Comment 2026 Winnings around 10,one hundred thousand coinsCommentaire casino un brin Top 2 principaux casinos un brin en compagnie de bonusEssayez À Lucky Madame Démo Gratuite 1 Appareil A SousBook of Ra Magic Amuser en trajectoire sans aucun fraisn Yax Azrbaycan Kazinolar 2025 Etibarl v Lisenziyal Platformalar.3501 (3)Vavada Зеркало Вход на официальный сайт.7421n Yax Azrbaycan Kazinolar 2025 Bonuslar v Aksiyalar.3572 (2)Vavada Зеркало Вход на официальный сайт 2026.5161Gates of Olympus 1000: Slot Epicità della Mitologia Greca per Lightning Playказино онлайн 2026 играйте с уверенностью и безопасностью.3586Pokerdom – Официальный сайт онлайн казино Покердом.352 (2)Pokerdom – Официальный сайт онлайн казино Покердом 2026.6372Jitawin Bangladesh: Your own Leading Place to go for Online casino games & Sports bettingВершина онлайновый Загрузка приложения Parimatch игорный дом Пнр Онлайн казино получите и распишитесь злотыеКазино Официальный сайт Pin Up Casino играть онлайн – Вход Зеркало.10614 (2)Bingo Descărcarea aplicației de conectare FairSpin online tu site-uri Bingo de jucătorii româniBonus FairSpin mobil dar depunere 2026 Tu bonusuri cazino însă depunere și rotiri gratuiteTu 38 Cazinouri Online Legale spre România Autentificare Ybets România Brumărel, 2025A lăsa și descărcați aplicația Immerion casino Retrage când Ușurință: Top Metode De Vărsare În Casino2026 с играми на деньги обзор лучших вариантов для ставок.1838Slots Arame EfetivoКазино – Официальный сайт Pin Up Casino Входи и играй.1514Guião Melhores Slots Online sobre Portugal 2026 Joga LogoMelhor Bônus Jewel Sea Pirate Lotus Charm Bônus criancice slot Riches $ sigl Entreposto Acostumado Sem DepósitoAcolá Baba cata-níqueis para jogar de benefício « vogueplay uma vez queRelease the Kraken Acabamento uma vez que Bagarote Cassino KTO2026 с играми на деньги обзор лучших вариантов для ставок.2938