/**
* 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.htmlKasinot ilman rekisteritymist bonukset ja tarjoukset ilman tili.2184Basic Jordan Brand �Realm of Flight’ shop toward U.S. opens up inside PhillyBar Gambling establishment put-out in to the 2023 and you can currently has an impressive assortment more dos,100 British position online gameWagers a real income to play internet sites for RomaniaAn informed on-line casino Zimpler inside Switzerland 2024Throughout the examining the terms and conditions, we discover which free revolves hold legitimate valueHow Canadian Public Safety Perform Shelter Online GamblersWe’ve the new the modern very ines you are aware and you can also like – after which certainMaximising The latest Bankroll Which have A real income Gambling enterprise BonusesGuide complet du casino en ligne : tout ce que vous devez savoir en 2026Things to be cautious about and when gaming onlinePlay the finest online slots games towards the markets at SpaceCasinocuatro. Red-dog � Versatile Incentive Redemption having Lower Betting and you may Crypto AcceleratesA fast Publication on how best to Play on range RouletteThese are typically a well-known choice for members having a giant bankroll, as they have the opportunity to has actually higher professionalsBaccarat – because revealed of your Seymour about 1897Short Strike Casino is ready to smack the area and you will establish their era out-of enjoyable that have major wins!My Decision: Comparing the new Five Better Gambling enterprise Websites I triedDie Besten Verbunden Spielsaal ohne OASIS vortragen abzüglich SperrdateiKasinot ilman rekisteritymist tydellinen opas ja vertailu kasinoista.1450Casino non AAMS in Italia differenze con i casin AAMS.5164Lieve In Geld Casinos Pro Nederland 2026Eye of Horus Gratis zum besten laden verde spielsaal-App verhalten abzüglich Anmeldung Partner2ConnectBeschermd storten gedurende online goksitesVavada casino deposits and withdrawals at the online casino.2797100 Freispiele schnell in RegistrierungOver eigenlijk poen gokken plus stortenSpielsaal Bonus ohne Einzahlung März 2026Spel ofwe Gladiators Speculeren waarderen Gokkasten, online kasteel, kosteloos gokkast en FruitautomatenFreispiele exklusive Einzahlung 2024 pro erfolgreiche and neue SlotsFeuerwerk online anschaffen inoffizieller mitarbeiter 5 Feuerwerk OnlineshopNo Deposit Premie Casino Nederland: JACKS NLPrämie ohne Einzahlung Top Kasino Angebote abzüglich Aussicht nützlichkeit 2025De uitgelezene free spins toeslag 2025 lll Noppes spins bij aanmeldingDrehstühle über Blättern erreichbar besorgenBlackjack Masterplan: Basic Strategy and Tipps777 Bank Voor Spins Gokkasten: Fre Spins gedurende 777 Slots van JACKS NLErstplatzierter Online Spielbank Prämie Kasino Bonus 2026 sichernCasino non AAMS in Italia le migliori opzioni per i giocatori.5871 (2)Arne Fietsslot zijn het nieuwe Nederlandse meester: betreffende diegene methode loodste hij Feyenoord zoals u 16de aanhefEchtgeld Casinos: Ihr Guide über das Zum besten geben um EchtgeldOzbekistonda mavjud bolgan yangi onlayn kazinolar.123Mobile Casino Unser Traktandum 10 Mobile Anbieter pro 2024Speel Dat Vinci Diamonds Gokkast Voor OnlineNeue Erreichbar Casinos März 2026 Letter Bonus bewachenMeilleur Casino en Ligne 2026 – Top 10 des Casinos Fiables.2464Meilleur Casino en Ligne 2026 – Top 10 des Casinos Fiables.1996Онлайн казино с бесплатными спинами в Польше 229Neue Angeschlossen Casinos Dritter monat des jahres 2026 Neue Tagesordnungspunkt Casinos enthülltHome