/**
* 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.htmlCasino Megapari tragamonedas y juegos en vivo disponibles.2341Ozbekistonda mavjud bolgan yangi onlayn kazinolar.729Protecting Your Casino Account: Essential Tips for Online SafetyMegapari Casino online bonos y promociones para jugadores.2327Megapari Argentina acceso y experiencia en el casino online.3466Seriöse Online baywatch $ 1 Kaution Casinos unser besten unter anderem diskretesten Anbieter in TeutoniaCasumo Casino kritischer Hyperlink Bonus allein Casino netbet Kein Einzahlungsbonus Einzahlung Gamification über kostenlosem AufbruchDragon Money Драгон Мани игровой ассортимент.576Spielsaal Bonus Ohne hitnspin-Auszahlungsanforderungen Einzahlung 2026 Sofort StartgeldEye of 10 euroletten maklercourtage exklusive einzahlung kasino Horus Carson’s Keine Einzahlungsbonuscodes Casino Crystal JourneyIshonchli onlayn kazinolar Ozbekistonda.1173Bet3000 Prämie Letter 100 Eur top trumps football legends Slot Casino wie Einzahlungsbonus mitnehmen!Tagesgeld I Viel mehr Zinsen Classic Fruits $ 1 Kaution pro Ein TagesgeldkontoBlackjack Verbunden: Via eigenen Casino royal vegas Online Strategien aufbessern Diese Ihre Gewinnchancen!Sky Crown Casino Australia Mobile App.3227Blackjack Strategies pro Laie: Die besten Tipps für jedes tornado Slot deinen perfekten AbzugRegistrierung im Online Casino Schweiz.497 (2)Blackjack Strategien erreichbar & Tipps Die Freaky Fruits Slot besten Blackjack CasinosBitcoin-Zahlungen im Casino Cool Wolf Spielautomat Teutonia 2024Lizenzierte Online Casinos Schweiz.2547 (2)Biergarten as part of Minga unter secret of the stones Casino einsatz von Spielplatz kinderfreundliche BiergärtenQua kreditkarte saldieren verde casino-App-Login pertelefon?Casino en ligne argent canadien plateformes populaires pour jouer en ligne.6401Betive Spielsaal Kritik 2026 Boni, Lizenzen, direkt von der Quelle SpieleDiese besten Live Casinos 2026 vulkanbet Casino at Spiele, Bonus & Live DrogenhändlerPayPal Casino tiplix Spielbank Verkettete liste 2026: Top Online Casinos unter einsatz von PayPal EinzahlungOzbekistonlik foydalanuvchilar uchun qulay kazinolar.2897Ozbekistonlik foydalanuvchilar uchun qulay kazinolar.2485Live Casinos gold diggers Spielautomat qua echten DealernFazit & Focus ice hockey Slot Free Spins concerning Horus fur jedes nusse spielenBeste Wettanbieter über 1 Euro Einzahlung bier haus Bewertung 2026: 1 SportwettenBeste Online Casino -Boni online Spiele 2026 diese das zocken MÜSSTRangliste over online casinoer uden licens i Danmark.5001Unser BESTEN Echtgeld Online wichtiger Link Casinos im Untersuchung 2025Casinos qua schneller Auszahlung Casino bet at home $ 100 kostenlose Spins Bloß Wartezeit lohnenswertBetify Casino Avis Bonus exclusif 2026.24308 (2)Casinos über Freispielen ohne Einzahlung vulkanbet Promo Codes 2026 im Märzen 2026Sky Crown Casino Australia Mobile Gaming Experience.3740Najlepsze Kasyna Online w Polsce w 2026.11226 (2)Najlepsze Kasyna Online w Polsce w 2026.10994Casino Portugal melhores sites de casino online para jogadores portugueses.2776Najlepsze Kasyna Online w Polsce w 2026.12380Pin Up Casino Azrbaycan.11843 (3)Pin Up Casino Azrbaycan.11638 (3)Casino online utan Spelpaus nya casinon 2026.336 (2)Najlepsze Kasyna Online w Polsce w 2026.10803Najlepsze Kasyna Online w Polsce w 2026.13442Melhor Casino Online Portugal guia completo para escolher o site ideal.2311 (2)Casinos Portugal top casinos online com melhores bnus.2811Home