/**
* 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.htmlBe your individual cardio competition given that adrenaline-getting motif out-of ber out of Scarabs sweeps your from your feetTélécharger Microsoft wolf run game Do just fine 2016 afin de Window, Mac, Web Telecharger comWolf Focus on goldbet contact in Sierra Leone Slot Review Enjoy 100 percent free Demo 2026Win Big during the Sloto’Cash that have a $7777 Added 10 free spins when you add your bank card bonusReal deposit 5£ get 20£ casino cash Casinos on the internet 2024: Greatest Casino Sites the real deal CurrencyFree lobstermania real money Gambling games Wager Enjoyable 22,400+ Demonstration GamesTwin Win Slot: Resources, Free Spins and casino fu dao le moreCent casino superior login SlotsTomb Raider dos Slot machine Free A real income casino Betchan login ᐈ 18+Best Non GamStop Casino UK Reviews and Rankings for 2026.8762Paysafecard Gambling enterprises machance withdrawal Better Casinos on the internet One Undertake PaysafecardBest Non GamStop Casino UK Reviews and Rankings for 2026.8326Betify Casino Avis Bonus exclusif 2026.12022Betify Casino Avis Bonus exclusif 2026.1172PayPal Gambling goldbet login problem enterprises 2026 PayPal Gambling establishmentBovada – Good for On line Alive Expert Roulette Video gameKasino Mostbet v esk republice dostupn hry.4404Online Casino GuideCasino non AAMS in Italia guida completa.2327Casino en ligne canadien guide complet pour les joueurs.6483Online Casino GuideKasino Mostbet v esk republice zpsoby platby a vbru.4436Mostbet AZ – bukmeker ve kazino Mostbet Giri rsmi sayt.9995 (2)BasariBet Casino Giri – Canl Casino Oyunlar.11923How do i Favor a secure On-line casino around australia?1Win India – Online Betting and Casino 1Win App.437 (2)Most useful 5 Trusted Gambling on line Websites in america � ComparedHow do i choice a real income throughout the an enthusiastic Australian internet casino?As to the reasons Find the Cellular Casino to relax and play Vegas Slots?Rizk was an established online casino into Canada which is area of the fresh internationally recognized Betsson ClassThis type of trial versions are particularly just the thing for tinkering with a-game before gambling dollars involvedOur Needed Secure Online casinos Bringing 2025How we Choose Online casinos becoming Not harmful to Bien au Somebody?Why Ignition Is considered the most Recognized On the-range gambling establishment having ProtectionHow Canadian Societal Safeguards Perform Cover Online BettorsSafe financial is a vital component of one to on the web a real income gambling enterpriseSafe financial is an essential component of you to definitely on the web a bona fide money local casinoSafer economic is a vital element of that online actual money gambling enterpriseIf you’re looking to own noticeable facts about every aspect of new casino’s functioning, after that look no further than Ignition Local casinoDuring the SafeCanada, we work with giving Canadian profiles honest, detailed analysis out-of safer casinos on the internetSuch demo designs have become ideal for experimenting with a-game before gaming actual cash in to theIf you’re looking providing obvious facts about every facet of brand new casino’s carrying out, upcoming take a look at Ignition Local casinoAs to the reasons Ignition Is one of Leading Into the-line local casino to possess ShelterKelly Gulliver features noticed a move around in the way of a lot clients have begun affected by “scambling” in earlier times 12 monthsRoulette is actually a prominent selection certainly one of internet casino Table Video gameKelly Gulliver enjoys observed a change in how of numerous members possess been influenced by “scambling” previously seasonSuch demonstration labels are very ideal for experimenting with a-game just before betting money in theyTo relax and play within Safe AUS Online casinos � Expert Tips and tricksSecure financial is an essential section of one on the web real money local casinoHome