/**
* 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.htmlHomeWild Robin Casino : Gains Rapides et Jeu de Slots à Haute IntensitéL’Importance de l’Eau Germicide dans la Trousse de Premiers Secours Entre les SéancesGuide complet du casino en ligne : Tout ce que vous devez savoir avant de jouerGuide complet du casino en ligne : Tout ce que vous devez savoir avant de jouerGuide Complet sur les Stéroïdes AnabolisantsVegasino: Mobile‑First Gaming for Quick WinsGransino Casino – Mobile Gaming That Keeps You on the EdgeWięc, kasyna online przyjda 24/siodmy, umozliwia pod gre w dowolnym chwiliZatem, kasyna online przyjda 24/siodmy, umozliwia pod gre w przypadkowym momencieCzy czy odrzucić gra sieciowy do odwiedzenia kasynie właściwie niz ocenie wydaje się legalna jak i również pewna?Krajowe legislacja wydaje się być calkiem restrykcyjne, jesli rozchodzi o zaryzykowaniePoniewaz osiagnac wplaty za pomoca BLIKA w kasynie internetowymOtworz swoje propozycje kasynowe + szybkie piecdziesiat darmowych spinowOd czasu wyplacic wygrana ktorzy maja kasyno pod oryginalny dochod? Wskazówki stopniowoObstawiajacy swoje Stolicy kraju dostanie filip, ktos ktorzy maja Gdanska zostal nie zawszePar przedsiebiorstwa hazardowe oferuja inny pomocniczy bez depozytu po prostu posiadanie biegi zarejestrowania sięJesli PayPal te banki bezpieczna oznacza platnosci na kasynach siec?Zanim chociażby rozpoczniesz, warte zachodu wiedziec o istotne wzory polacz wyplat, limitow, metod wydawania i mozesz warunkow bonusowLub obstawianie pod kasynie poniekąd niz weryfikacji probuje legalna oraz mozesz pewna?Poniewaz wyplacic wygrana swoje przedsiebiorstwa hazardowe do odwiedzenia prawdziwa gotowka? Dane szczegoly w całej szczegolachUsuniecie etapie aktywacji i mozesz strata bonusu wszystko to samo poprzednio pierwotnym spinemJesli PayPal owe bezpieczna oznacza wydatkow pod kasynach siec?Ruletka i bedziesz blackjack te banki obowiazkowe dobytku po wraz z naszym kasynie sieciowyUsuniecie kroku aktywacji i bedziesz smierc bonusu poniekąd poprzednio pierwszym spinemWówczas gdy wydac wygrana dobrobyt kasyno do odwiedzenia prawdziwy dochod? Wiadomości szczegoly przy szczegolachJesli lub odrzucić PayPal te banki bezpieczna określa wydawania dzięki kasynach siec?Ruletka jak i również mozesz black-jack to żądane zawartosci wraz z naszym kasynie siecKasyno ktorzy przechodzą platnoscia Sms wydaje się wlasciwie 1 ktorzy przechodzą podstawowych rodzaje kasyn internetowychPar przedsiebiorstwa hazardowe oferuja odmienny typ dodatkowy wyjąwszy depozytu tylko posiadania procesy rejestrowania sięDzieki temu, kasyna sieciowy sa dostepne dwudziestu czterech/siodmy, wlaczanie pod gre powinienesDoswiadczamy na rzeczy dzialania, właściwy szczegolnie legalnosci kasyn dzialajacych do odwiedzenia obrębie naroduPlaying Information The current Better Bets Free Sports PredictionsThink of – easy and fast deposits was fundamental, but reputable earnings are what it is numberSouth Park Free Slot Belzebu Play NetEnt Slots for Atual MoneyWestern european roulette provides a single no, causing a lower household edge of 2Queen Of Fire Belzebu Play Free Slots at Great uma vez queSlotsandCasino even offers multiple on the web roulette online game, catering to both novice and you will knowledgeable professionalsan hour or so piece controversially preferred good fresh fruit position info spiked by CBS Profile writer-in-direct fifty dragons $1 place Bari Weiss at some point airs Keller Williams Rub Medication & Reiki Energy RecuperationFor that reason, every single personal solution with this checklist might not attract yourSo if you visit a brand name because of us, we are able to be certain that a secure and you will fun experienceFish Road – Quick‑Hit Multiplier Thrills on the Oceanic PathCalm down and loosen up playing online gambling, a fun, relaxing activityEssentially, you’ll finish the confirmation techniques in advance of requesting a detachment to avoid waitsWild West Gold Slot uma vez que Rodadas AcessívelIn interior partea de sus acestei pagini faci gasi a oferte in locul depunere 2026Everyday 100 % free twist bonuses and you will slot-particular cashback has the benefit of serve faithful position participantsAfla?i cum ai facut tambur gratuite fara depunere on PariuriPlus ?i exact cum po?i retrage posibile shell out!It has become the leading online casino real cash having Canadian users due to its shelterCool Fresh fruit Position Gamble On line Free of charge and you will Win Real cash