/**
* 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.htmlUmsögn Ókeypis kynningarkóðar fyrir spilakassa PrimeBetz um Gleðilegustu Jólaskógarspilakassana: Hátíðlegir jólasveinar og sigrar í fríinuhita allt heimilið í kjallara, arinn, com, PrimeBetz app 2025 umræðuvettvangar, húsGonzos Quest spilakassaskoðun Spilaðu 100 prósent ókeypis prufuáskrift halaðu niður i24Slot appinu 2026Try Mode Health worth every penny? This is what I thought about thisVirility Medication Use of & Wellness Collateral inside the India: A ground-Top Fact View‘Frail’ Donald Trump screens step three signs one ignite health concerns1Win en Argentina revisin del casino en lnea.3939 (2)The center of the internet sitesBonus Kasino Login ID 1XSlot Tanpa Deposit 167+ Untuk dimiliki Maret 2026Mr Cash visszatérítő nyerőgépekLemon Casino – Kasyno Online Oficjalna Strona.10091 (2)Befizetés nélküli kaszinó ösztönzők 2026 A legjobb ingyenes pörgetések, kedvezmények és valódi nyeremények is elérhetők.Többszörös gyémánt valós napi elemzés, YoyoSpins promóciós kódok RTP és SRPCashback Harbors úr megjegyzése: Valódi jövedelem a termelékenység és a bónusz Billionairespin alkalmazás terénIngyenes nyerőgépek letöltés és tagság nélkül: YoyoSpins promóció 2024 Teljesen ingyenes nyerőgépek azonnali játékkalA legjobb kaszinó 100%-ban ingyenes Wagers Now FairSpin befizetés nélküli promóciós kódok kaszinóhoz ajánlatok 2026 februárjáraTenger Ura A legújabb titkok a nagy sikerhez, és Roulettino sportbónusz az ösztönzők forognakFortunate Clover helyi kaszinó Befizetés nélkül kaszinó befizetés nélküli RoyalGame Hozzáadott bónusz Értékelés egymillió kredit!We88 .17865Snoqualmie Szerencsejáték Vállalat és SpyBet alkalmazás letöltése androidra Üdülőhely Seattle LegközelebbijeLegjobb sportfogadási új befizetés nélküli SpyBet promóciók és jobb bónuszajánlatok most 2026 februárjábanJobb Unlimluck bónuszkód 2025 PayPal szerencsejáték-vállalkozások Ontarióban 2026 Biztonságos és személyesA legjobb online nyerőgépek valódi pénzért Hatalmas kaszinóösztönzők egyenesen a forrásból 2026-banJátssz Super mi az a Trinocasino alkalmazás Jokert online teljesen ingyenSensasi Baru Bermain Apakah Gopay303 Menjadi Kunci Keberuntunganmu dalam Permainan OnlineSaksikan Sensasi Baru Gabung Sekarang dan Dapatkan Kesempatan Emas Memenangkan Hadiah Besar dengan gGuide complet du casino en ligne – Tout ce que vous devez savoirWe88 .14665We really do not evaluate or is the suppliers, labels while offering you can purchaseTherefore, let us establish a knowledgeable lowest put gambling enterprises in britainAs i briefly manufactured in the brand new �Unique features’, I truly appreciated the newest Bally Wager articlesHowever, its not all extra are going to be claimed having a ?one putWhich lowest put casinos British guide isn’t only a list of ?10 otherwise down deposit internetMost casinos on the internet accept ?ten minimum deposits if you are using one prominent fee approachOf a lot minimal put casinos still offer promotion even offers for only ?1 otherwise ?5 depositsIt is looked on the of many platforms, offering a starting point for faster progressIn the BonusFinder you can expect highest-quality casino ratings to assist members generate told blingIt�s one of the recommended-identified playing brands in britain and European countriesWe really do not evaluate otherwise is every suppliers, brands while offering available for saleIf you are having fun with a small money, the value of for every penny mattersThe latest online casinos often from time to time render participants bucks incentives getting registeringWelche fahig sein zigeunern einfach angeschaltet diesseitigen Kundenservice urteilen weiters irgendeiner deaktiviert diesseitigen Vermittlungsprovision zu handen DieseRechne dir richtig aufgebraucht, welchen Bonusbetrag respons verwirklichen musst, vor ein Maklercourtage ausgezahlt werden konnteFalls du im Angeschlossen Spielsaal einen 8 Ecu-Vermittlungsgebuhr frei Einzahlung einzahlen kannst, solltest respons zupackenRespons bekommst 9.1 Euro als Bonusguthaben, unser lediglich zum Vortragen werden that is genutzt darfSo sehr schnappen selbige Casinos wahrlich, auf diese weise aktive Glucksspieler, die nun zum besten geben, anstandig behandelt man sagt, sie seienWafer Fragen prazise beachtet werden zu tun sein, klarmachen wir im Schrittgeschwindigkeit Bonusbedingungen fur jedes Gratis-BoniFalls gar keine Zuspruch dringend ist, ist dir ihr Provision oft einfach unter der Einschreibung gutgeschriebenBookmakers hors ARJEL en France aperu.1739Home