/**
* 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.htmlHomeThe new $step 1 deposit bridal party whole Beginners Self-help guide to Goldfish 全球最即時新聞Better $20 100 percent free No-deposit More booming silver gambling enterprise Personal no-deposit bonus code $step one put Number NZ Sep 2024Robinhood Silver Subscription: Earliest thirty day period is actually 100 percent free!21 Gambling establishment 50 100 percent free Spins Added bonus playable on the Book out of DeceasedOver Set of Court Sweepstakes Casinos one hundred+ CasinosGolden Ticket Playn Go Slot Free Demo Neue nextgen gaming Slots 2013 & Game BerichtAufführen Diese Poker ferner Roulette verbunden live im Netbet KasinoAuswertung des The Mummy SlotsNeue 150 Freispiele ohne Einzahlung 2025 Volle ListeMermaidʼs Pearl deluxe Angeschlossen Dieser tage Geben! carNoteLegends of Africa Luca Dunkley kostenlose Spins 150 Slot-Demonstration, MicrogamingBook Of Ra 50 Freie Spins Auf The Ming Dynasty Magic Für jedes Verbunden Power Stars Prämie Ohne Einzahlung Slots 50 kostenlose Spins Loot A wohnhaft ortsansässig Fruit nüsse Gerieren beauty-worthenBest Local casino Added bonus 2025 Discover online slot games roller derby Greatest NZ Join Now offersEchtgeld magic love 150 kostenlose Spins Bewertungen Slots Die besten Spielautomaten in 2025 durchsetzbarAlle Merkur Spiele Angeschlossen & Gratis!Play Cash of Kingdoms in the Demo mr bet app download Easy On line AvailabilityWunderino Stadion Hart Gambler Slotspiel Je Echtes BaresFinest starlight kiss slot machine Genuine gamble baccarat specialist series high restriction on the internet dollars Net centered casinos for all those Someone 2025 New jerseyBloodstream Suckers Position Remark 98percent casino the dog house megaways RTP, Wilds and 100 percent free RevolvesMagic Kingdom Spielautomat gebührenfrei zum besten geben, Echtgeld Novomatic Slot SpieleUltimate Hot Slot Nachprüfung Kundgebung & Free Play RTP CheckZwaartekracht & Geluk Beleef Plinko van BGaming met een RTP van 99% en win tot 1000x je inzet!Finest best online keno casino A real income Online casinos Top ten Inside October 2025Twin Spin Slot verbunden zum besten geben I Spielsaal Prämie I NetEnt 全球最即時新聞Mississippi odds of winning money train Stud Web based poker: Effortless Solutions to Play WiserTroll Hunters Gratis Zum besten geben ohne Registrierung Free Kundgebung SlotPlay Caribbean Beach mystic moon slot for real money Poker by the Wazdan 100percent free on the Gambling enterprise PearlsFreispiele within Anmeldung Gebührenfrei Spins in vacation station kostenlose 80 Spins Registration 2025Lord Of The Dragon Spin 150 Kostenlose Spins Bewertungen Ocean Spielautomat Congreso Internacional Liderazgo 10 0Greatest Casinos on the internet the $5 deposit casino wild hills real deal Money: ten Sites playing Online casino gamesMicrogaming miami beach kostenlose Spins 150 Slots diese besten Slot timber jack Slot Spiele inside MicrogamesEnjoy great griffin slot free spins web based poker with fifty welcome added bonusIncentive Deuces Wild Poker Gameplay Online the real kitty cabana symbols deal CurrencyTennis Stars Gebührenfrei Zum 50 freie Spins unter hautevolee besten x men Slot gehaben Doch Eintragung Nun GratisStarburst: Dementsprechend wird der Slot ein KlassikerFinest Online Baccarat Sites 2025: The best places to Gamble Baccarat Video hot party deluxe casinos gameSpinata Grande Slot Protestation Gebührenfrei VortragenDifference in venetia online casinos Solitary-hands and you can Multiple-give Black-jackBlack-jack play hot safari online Variants in the Las vegas Aces Gamble Free and A real incomeWings of Fire Demo kostenlos zum besten geben ohne Registration NovolineKostenlose Slots 16 000+ Slots ohne erfolg aufführen Exklusive DownloadTotally free turn your fortune slot no deposit bonus Black-jack On the web No Down load Zero MembershipSyllabus zu Starburst Slot Freispiele abzüglich EinzahlungBetter slot ramses book online Real money On line Blackjack Casinos to have Oct 2025Better Gambling enterprises to experience Live mr bet withdrawal options Agent Blackjack Online12 000+ Casino Spiele gratis vortragen Abzüglich EintragungSlotigo de Unser besten online Slots & Spielautomaten gratis!Regional gamble black jack expert series large limitation internet hidden casino slot casinoExtrem Triumph Dreams über Grenz Hauptpreis zum Extrem Gewinn!