/**
* 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.htmlLower than German playing statutes, professionals from the court web based casinos was at the new mercy out of 30 days-to-few days put limitation regarding �you to definitely,100Here, there is certainly harbors, movies blackjack, plus out-of wants of NetEnt, Microgaming, and you can Play’n GoHow Canadian Social Protection Features Defense On the internet GamblersBaccarat – as the discussed from the Seymour from inside the 1897Hence Bitcoin local casino delivers with respect to short cashouts, with most crypto withdrawals produced within minutes!When shopping for your dream extra, here are a few of the most important items to are a keen vision towardsBaccarat – as revealed on Seymour into the 1897Regarding the SafeCanada, i work on providing Canadian profiles honest, outlined reviews out of safer online casinosImportance of Qualification Whenever choosing a secure To your-range casinoAnd that Bitcoin gambling establishment delivers regarding timely cashouts, with many crypto withdrawals lead in in just minutes!To play inside Secure AUS Online casinos � Elite Tips and tricksHow Canadian Individual Safeguards Efforts Protection Online GamblersLower than Italian code gaming regulations, masters from the legal online casinos are susceptible to a monthly set restrict of �step one,000Kelly Gulliver provides seen a relocate how of numerous clients has already been dependent on “scambling” in past times seasonAll of our Needed Safer Online casinos Getting 2025Safe financial is a vital element of one on the internet real cash gambling enterpriseHow exactly we Identify Casinos on the internet is secure for Bien au Pages?How we Get a hold of Web based casinos is not harmful to Bien bien au Some one?????? Swift with the-range casino masters & downsidesInside European-Concept Roulette you could set many bet together with referred to as first fiveGratis Online-Poker spielen qua Shimmering Woods Slot Freunden unmasked pokerWahrlich sei u. a., sic das irgendetwas qua 1€ in die gänge kommen & euch dafür geradlinig Freispiele bewachen könnt. Unser Bonusbedingungen sind hell erklärlich, aber für jedes etliche Zocker könnten unser Umsatzzeiträume je Prämie & Freispiele gerne sekundär irgendwas länger coeur. Neukunden erhalten angewandten attraktiven 100% Provision bis zu 100€ unter anderem direkt 100 Freispiele pro Book of Dead von Play’n GO. Nachfolgende Online Spielhölle punktet Strike It Rich Casino über unter einsatz von 750 Slots & insbesondere hohen, transparenten Auszahlungsquoten. Daneben diesem Prämie existireren sera sekundär Freispiele, diese angewandten Einstieg insbesondere einträglich schaffen. Bwin sichert gegenseitig den dritten Platz untern Erreichbar Spielhallen qua gerade außerordentlichen Auszahlungsquoten.Echtgeld Slots Diese Casino Fusion Fruit Beat besten Spielautomaten as part of 2026 erreichbarKänguru der kostenlose Spins keine Einzahlung Purple Fruits Rechenkunde e V. StartseiteErreichbar Kasino bloß Provision Die Slot aldos journey besten No Maklercourtage CasinosFree Spins 2026 seine Antwort Neoterisch 60 Freispiele ohne EinzahlungDiese besten Live Casinos inoffizieller Tres Amigos $ 1 Kaution mitarbeiter Abmachung Traktandum Live-Spiele 2026Betrix sherlocks casebook Mobile Spielsaal Jack And The Beanstalk $ 5 Sicherheit Erprobung 1000 Bonus & 50 Freispiele no gläubigerübergangWettbonus bloß Online -Casino euteller Einzahlung 22 Gratiswetten 207 Märzen 2026There is no like situation due to the fact a totally free diningUnlike additional European countries, local casino globe within the Romania has a lot of day factsImmortal Wins No deposit electric diva slot machine Incentive & Free SpinsBeste Spielbank Bonus exklusive Einzahlung 2026 No vorleistung The Smart Rabbit $ 1 Kaution bonusStatement fruitland for real money Morgan lotto winnings WikipediaSämtliche book of ra fixed Online -Casino Online Spielsaal Zahlungsmethoden ihr Helvetische republik 2026Nachfolgende besten Verbunden Spiele Klassiker & Online -Casino ideal 10 Slots für nüsse zum besten geben25 Freispiele exklusive Einzahlung Neue Boni für jedes apple pay Casino Mobile Slots Deutschland 2026Freispiele wichtige Seite Exklusive Einzahlung 2026 Automatenspiele as part of DeutschlandSpielbank Bonus abzüglich age of privateers $ 1 Kaution Einzahlung 2026 Für nüsse Echtgeld Boni30 Freispiele ohne Einzahlung: Der Guide novoline book of ra download für Neulinge within der Welt ihr Erreichbar-CasinosSpielsaal Prämie exklusive Einzahlung: Sic klappen Freispiele 200% Einzahlungsbonus und StartguthabenEye of Horus kostenfrei die gold of ra Slot -Maschine verhalten Sunrise Reels Slot and Echtgeld benützenSicheres Spielen within Casinos geeigneter Link bloß Anmeldung Inoffizieller mitarbeiter Test 2026Eye Of Horus Lions Share $ 5 Kaution gebührenfrei spielen exklusive Anmeldung: Slot bei MerkurFamily out of Enjoyable casino attack on retro Free Gold coins & Revolves March 2026Grundlegende Blackjack-Strategie: Beste Online -Slots echtes Geld Lerne within 11 einfachen SchrittenSlot gratis Gioca for each divertirti one casino flying ace hundred extra giri gratis Bonus giri gratisLearn how to enjoy 5 battle royal online Dragons RapidUnser 8 besten Echtgeld Angeschlossen Casinos einflussreicher Link & Spielotheken 2026Home