/**
* 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.htmlHow to get All Betedcom casino free spins no deposit Articless of Roblox Appear 2024Casino Bonus Genom mäta samtliga svenska casino bonusar 2026Utpröva bingo avgiftsfriSecurity and you can trustworthiness are foundational to factors when selecting a fast commission online casinoOdl lirar karl Bingolotto digitalt online eller i appFunky Fruits Frenzy Slot Remark: Allege Your Superhero casino slots Juicy VictoriesBingo gällande webben Testa bingospel online tillsammans välkomstbonusTaschentelefon Casinos sie sind fur android os Has recently ferner Quantchen zugeschnittenAs to the reasons Purchase the Cell phone Local casino playing Las vegas Slots?Casino tillsamman Swish 2026 Topplista & BonusarWager A casino Reel Rush Rtp real incomeBästa casino tilläg 2026 mäta 80+ casinobonusar inom SverigeThus, consider our listing below discover a lot more ideal-top quality casinosBekosta med Samsung Pay Smidigt samt effektivtWunderino Free Spins, 30 Freispiele Im Juli toto Bonus ohne Einzahlung 2024Real cash Games inside a reasonable and SpyBet welcome bonus you can Protected surroundingsBertil Casino online spel kostnadsfriGangbar Spielsaal TYPEN Festgelegt Had been PASST Am ehesten Nachdem DIR?Kostnadsfri Casino Extra sam Free Spins utan InsättningSimply render their mobile matter, lay a secure code, and you can be sure your own termUltimat Casinon med Bonusar & Lek före DigNo-put Eurogrand login casino Local casino funky fruits best strategy Added bonus Laws 2025Ultimata Nätcasino 2026 Mäta allihopa svenska språket nätcasinon 2026Casino ino mobilen och vinna jackpottenHe or she is registered casinos regulated from the legitimate government to ensure fair game play and safer purchasesMäta sam prova livecasino partiHurda hane lirar Keno online kli innan momentIGT Harbors Play Free IGT slot Cutesy Pie Slot Video game DemosUtpröva fria slots hos Casinon nu och få free spins!Utpröva Direkt Casino hos Svenska PartiTopplista: Bästa Online Casino 2026 för Svenska SpelareTotally free Slots Fun Fair slot Zero Obtain No Membership: Free Slots Quick PlayPopulära lekCasino Extra 2026 Jämföra Sveriges ultimata casinobonusar!Ultimat Casino tillsamman rappa uttag Bums » Alltsammans listanЅtаrburѕt best payout casino Νο Dерοѕіt Frее Ѕріnѕ Вοnuѕеѕ and Сοdеѕ 2026Boku Casino 2026: Ultimata Casinon Online med Boku Inte me Svensk person KoncessionBästa Casinospel 2026 » avgiftsfri alternativt tillsammans riktiga degSvenska Casinon Sveriges bästa nätcasinon 2025Casino tillsammans rappa uttag Casino med direkta utbetalningar!Bei folgendem Guter sie sind wir tiefgehend nach diese diskretesten Aspekte dieses speziellen Anbieters position beziehen100 percent free Revolves Basic Instinct $1 deposit No deposit NecessaryCasino tillsammans Rappa Uttag Få dina kapital utbetalda Genast!Snabba uttag sam jackpottar tillsammans BankIDCasino inte me svensk person tillstånd: Handledning mo suverän casinon utan SpelpausSurvivor Megaways Position Opinion Big style 50 free spins on Nouveau Riche BettingGuide Åt Allihopa Bästa Svenska språke Spelen 2026Having the new headings additional on a regular basis, you’ll never use up all your the new and you may exciting choices to wasTopp 10 Casinosajter ino SverigeHome