/**
* 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.htmlHomeCertain casinos are a �2nd twist no� for the Durante Prison formQuickest Detachment Gambling enterprise Bonuses & Lingering CampaignsEuropean Antique Multihand are a virtual black-jack video game mirroring the principles found in European casinosOn the internet black-jack ‘s the undeniable queen of your PlayOJO gambling establishment tree!Bet On Red Casino: Rychlé výhry a zážitek z rychlé hryTagesordnungspunkt Casinos über Sofortauszahlung 2025 Schnelle Ausschüttung garantiertFree Harbors Zero Download Zero Subscription: 100 percent free Slot machines Instantaneous GambleFree Gambling games & Online slots games Kingdom Urban area Online casinoImpressumSlots Angels Gambling enterprise Rating a welcome Added bonus & Enjoy in the Ports Angels Gambling establishment On the internet#1 Free online Societal Local casino FeelSantastic Position No-deposit Extra Requirements 2026 #1Thunderstruck 2 Slot Demonstration RTP 96 65% Totally free PlayErreichbar Spielbank über PayPal 1 Ecu Einzahlung ᐅ Qua FreispieleOnline Ports Gamble 5000+ 100 percent free Position Online game QuicklyPharaoh Wide range Harbors Remark: A money maker or perhaps Another Trap?Can play Fa Fa FaBetter African Harbors On the web #5 African Safari Ports to try out On the webXmas Joker Demonstration Play 100 percent free Slots at the High comSuper Hook Gambling games Much more GamesPick the best 3 hundred Join Incentive Gambling establishment PhilippinesGunsbet Gambling enterprise Review 2026 Recommendations, Bonuses, Video gameEntsprechend konnte guy einen interessanten Freispiel-Bonus blo? Einzahlung erkennen?Delight in Raging Rhino Condition 100 percent free instead of Subscription Grupo MBP Costa RicaRaging Rhino Casino slot games Wager 100 percent free with no DepositLord Of one’s Water Miracle Position Remark 2026 Free Play TrialGratorama Casino No deposit Bonus Requirements March 2026Crime DevelopmentGamble 18,500+ Online Ports Zero Install No SubscriptionCasumo dabei der umwerfender Abgabe bis wichtiger Hyperlink zu 500 Bonusgeld, 120 FreispieleRamses Book Trial Enjoy Totally free Ports during the Great comAristocrat’s Lightning Connect poker machineErreichbar Blackjack Spielen unter einsatz von Spielgeld unter anderem echtem BaresPharaoh’s Chance Slot RemarkRaging Rhino Position Gamble 100 percent free Spins20 Euro Prämie exklusive Einzahlung Kasino » 20 No Frankierung BoniPlay 32,178+ Free Slot Demos Zero ObtainDie gängigsten Casino-ZahlungsmethodenKingbit Casino View 2026Live Casino Canada Up to $1,one hundred thousand ExtraBest Bitcoin Casinos to Play Verbunden in March 20267 Jurassic Park & World Videos Ranked Jurassic Community Rebirth Rotten TomatoesBetter On-line casino Position Game 2026 Gamble Preferred PortsBlackjack Masterplan: Die besten Tipps & Systeme je weitere TriumphFree Cent Slots No Download, Gamble Online Slot machines and you may Game inside 2026Cricket Betting Info Totally free Cricket ForecastsCurso de Theatre elizabeth Audiovisual UESBThe brand new Jurassic Playground Remastered Position Spin the new Reels Today! Welcome to Pratek Automotive Pty Ltd1977 Argentine Huge Prix