/**
* 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.htmlHomePoki-videopeli Intiassa: Ilmaisia $1 Starburst nettipelejä, ei lataustaOikea kasino suomi casinos raha Nettikolikkopelit Parhaat kolikkopelit Uhkapeliyritykset 2026Gibt es den maklercourtage fur jedes craps im mobilen spielcasino?Fazit � Unser sei dasjenige beste 10� Einzahlung Spielsalon inoffizieller mitarbeiter VersuchKrypto Casinos bei Bundesrepublik deutschland – Reside Spiele, Computerspiel Chats weiters Stay SpielsalonJedoch wie within manchen folgenden Landern siehst ebendiese Erfahrung anders alle?? Was wird das Casino Moglich Willkommensbonus ohne Einzahlung?As part of einen letzten beiden Jahrzehnten chapeau sich ebendiese Terra wa Glucksspiels entscheidend verandertPaysafe: Nachfolgende sinnvolle Zahlungsmethoden je Casinos unter einsatz von 10� minimaler EinzahlungFreispiele, die inoffizieller mitarbeiter Kasino mit 0 Euro Einzahlung bestehend werdenWhen choosing ranging from totally free bets and you will exposure-100 % free bets, it�s essential to think about your gaming layout and you may needsCan i fool around with Google Buy on-line casino places around the globe?Create your Earliest Put at the Gambling enterprises one to Accept Bing SpendThere was a privacy that’s available on the site for your perusal2?? Can it be secure to try out at Huge Ivy Local casino?Our Research Criteria off Web based casinos without Deposit Greeting PackagesWe feel the enterprise looking to be great needs to bring customer comments surelyThey usually are a profit bonus between C$10-C$50 or 10-100 free revolvesDosage du Caberos 0.125 mg de Driada Medical : Améliorez Vos Performances SportivesAuf diese weise kriegt man einen Bonus via 9.1 Euronen EinzahlungSoftware pro ovocné automaty na Bonus Unlimluck internetu Užijte siZlaté dolary 100 procent zdarma Revolves Ascending Gains Zkušební verze od Driven Gambling Bezplatný výherní automat Stažení aplikace Trinocasino v Česko a online hra PoznámkaЗалагайте в критична връзка мрежата и на мобилния си телефонঅমর সম্পর্ক স্লট মতামত 2024 চেষ্টা করার জন্য একটি প্লাস পানOnline Seafood Capturing Games Without Deposit: Winnings Real cashموانئ وقت عيد الميلاد استمتع بموانئ مستوحاة من عيد الميلاد مجانًا تمامًاPride AffiliatesAdded bonus bucks works best once you treat it in a different way in the money you spend yourselfNew york gets their very first 3 Las vegas-style casinosRating instructions and tell you pathways inside Google Maps Computer system Yahoo Maps AssistR2PBet Gambling enterprise cities solid emphasis on doing a secure and you will transparent ecosystem for its usersZusatzlich profitierst Du inside the der App von exklusiven Boni, die nur fur mobile Nutzer bereitstehenPut 5 Rating a hundred Totally free Spins Finest 5 Minimal Put Casinos in the BritishClaim 5 No-deposit Free Spins at the Ports CreatureFree internet games in the Poki Gamble Now!Operating less than tight regulating supervision, Goldenbet Local casino British combines thorough gambling selection having security features one see United kingdom gambling standardsClassic Egyptian Themed Casino GamesThe video game write well, plus the app performs firmly through the productive sessions that have numerous entryQueen Victory Local casino is a modern-day betting program that has been released within the 2024twenty-five 100 percent free Revolves on the registration no-deposit Greatest 2026 Now offersThis will make it specifically tempting to own users exactly who choose clear incentive terminologySpinpug Local casino Opinion And 100 percent free Potato chips Extra Surgery treatment Philippines DermaestheticsThe fresh new Game & Incentive Provides: The latest Playing Enjoy UnlockedWe believed the most common position online game being usually calculated with no-deposit incentivesPreferred Slots and Casino games >> Wager 100 percent freeGenerate offers work harder – what things to discover before you could claimPlayamo Incentives: No deposit, Bonus Codes in the Playamo and you can 100 percent free RevolvesWhich have people local casino platform, the fresh online game and you can headings it’s is actually paramountTwist They Safe: Verified Totally free Spins Bonuses for March 2026