/**
* 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.htmlHomeGuide complet du casino en ligne : tout ce que vous devez savoir en 2026Greatest Sweepstakes Gambling establishment No deposit Added bonus 100 percent free South carolina 2026Best Steps you can take inside Phoenix in just about any Season10 Finest Web based casinos for real Money Greatest ListAlito Took Unreported Luxury Excursion Which have GOP Donor Paul ArtistThe Gambler’s Compass: Navigating the Digital Casino LandscapeThe Gambler’s Compass: Navigating the Digital Casino LandscapeThe Gambler’s Compass: Navigating the Digital Casino LandscapeThe Gambler’s Compass: Navigating the Digital Casino LandscapeBest Pokies and you may Punctual Earnings prepaid visa 5 dollars local casino to have Australian PlayersThe Gambler’s Compass: Navigating the Digital Casino LandscapeBest Online slots games inside the 2026 Real money Position Game100 percent free Ports Free Casino games On lineSlots Which have Added bonus Video game Try an educated Extra Slots inside 2026Play 32,178+ 100 percent free Slot Demos No ObtainDual Twist Megaways Actual-Day Analytics, RTP & SRP403 UnavailableTwin Spin Position Play Dual Spin Trial 2026$step one Put Gambling enterprises having 100 percent free Spins Bonus OffersTrolls Position Review Gamble Trolls Casino slot games Totally free Version On the webn Yax Azrbaycan Kazinolar 2026 Qaydalar v rtlr zr Bldi.5529Multiple Container Diamond Demo PositionSan francisco bay area Gambling establishment inside Rohnert ParkZimpler Gambling enterprises 2026 Find Better Casinos One Deal with ZimplerFinest Slot machines to experience & Victory Online the real deal Money in 2026Better On the internet Pokies the real deal Money in Australia!Top ten Charge Casinos on the internet 2026 Gambling enterprises Taking ChargeGreatest 20 Casinos on the internet regarding the U S. Better Court A real income Gambling establishment Sites 2026800+ Greatest Web based casinos in the Canada Confirmed from the 2026 AnalysisFinest Offshore CasinosGreatest Apple Spend Casinos 2026 Build Safer Fruit Shell out Dumps & DistributionsPlay 21,700+ Online Gambling games No Down loadten Better Australian On line Pokies for real Cash in 2026 to Enjoyten Greatest Usa Real cash Gambling establishment Sites to own Online gambling 2026Tomb Raider Position Video game Trial Gamble & Free Revolves אי שטרן ניהול פרויקטים הנדסיים בע”מFree Ports & On the internet Public CasinoTitanic On the web Getting Software To possess Android Mobile Genuine Or PhonyBlack-jack Means Cheating LayerZonder Cruks Online Casino Klantenservice.978 (2)243 Suggests + 100 percent free Spins IncentiveThunderstruck Gold Blitz Significant Gambling enterprise Online game Comment BetMGMPlanning Ahead: Vehicle Management Through Power of AttorneyThunderstruck Insane Super Gambling establishment Online game Review BetMGMGetting to Know Healthcare Decisions: The Impact of Power of AttorneyTotally free Revolves No-deposit United kingdom & Zero Wagering A real income IncentivesIWin Vit Nam tr chi trc tip v c cc.106EA FC twenty-five Thunderstruck promo inform trackerThe Best Anabolic Steroids for Definition and Muscle HardnessExcelBet Casino deschis noilor jucatori o dimensiune buna Extra din cauza au de pana la 2