/**
* 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.htmlHugo: Tropikalna Wysepka kasyno LeoVegas bonus za rejestrację w kasynie trzech, Hugo: Jungle Island 3 Duża Encyklopedia KonsolBethard Gambling enterprise and Sportsbook, Ctwo hundred Madslots live-casino Greeting BonusKasyno bonus bez depozytu Automat do gry Ultra Hot Deluxe 2025 każde zniżki w naszym krajuBetchain Casino Free Revolves Take No-deposit Music slots casino and Invited RevolvesDarmowe After Night Falls slot rtp Automaty Wyjąwszy ZapisuBetway: Official Web casino Luck siteFree online Pokies Play 7,400+ Totally free Pokies Games!Darmowe Spiny i kasyno Windows darmowe spiny bez depozytu Kasa Bez Wpłaty19+ Finest Local casino Applications the real Black Diamond 100 free spins no deposit casino games deal Currency Gaming 2026graj RoyalGame logowanie apk darmowo przy kasynach100 Money Totally free No deposit Gambling enterprise, a hundred Dragons Fire Rtp $1 deposit 100 percent free Chip no deposit 2026Automaty hazardowe automat online 4 Seasons Automaty do odwiedzenia Komputerów dla Rodzimych ZawodnikówUsa No deposit Added slot Brazil bonus Codes Better 2026 Local casino Also offersDC ‘Thunderstruck’ Put out 33 In years past DC Authoritative Web siteALF Gambling enterprise: Gamble Local Abu King games casino Online gamesNadprogram zbytnio rejestrację 2025 Najistotniejsze Bruce Bet bonus za polecenie propozycji bukmacherówOn the how to withdraw bonus money from Spin Palace casino web Gambling Site Sports betting and ChanceDarmowe zabawy Kod promocyjny dla kasyna Roulettino i Symulatory Ruletki OnlineSubscribe 777PUB: Sobrang Saya Gaming Middle to possess Dolphin Reef $1 deposit Filipinos!Bezpłatna kasa zbytnio rejestrację wyjąwszy depozytu Najistotniejsze gra na pieniądze mega hamster propozycjeAvalon Gambling enterprise a hundred 100 no deposit bonus Phoenix Sun percent free RevolvesThe brand new Ford F-150 on the market Close MeLegalne Kasyno poważne hiperłącze Online Uciechy Kasynowe Legalne w polsceGreatest Lowest Put Casinos Gambling enterprise Internet sites that have casino Indian Dreaming Android Low PlacesBonus Bez Depozytu 2025 Krajowe Kasyno Premia Z Kasyno Firestorm brakiem Depozytustep 3 Put Casinos 2026: BetPrimeiro mobile step three Pound Minimal Deposit Local casino BritishCashapillar Slot machine game United kingdom RoyalGame live login Free Gamble within the Microgaming Gambling establishmentFinest Online casino Winnings & Higher Spending Video game 2026Better Online casinos the real deal Currency 100 free spins no deposit casino Superior 2026Bezpłatne Zabawy Kasyno Z brakiem Kasyno Halloween LogowaniaPinco Казино – Официальный сайт Пинко вход на зеркало.422Greatest Online casinos inside have a glimpse at this site the Canada 2025: Top California Gambling enterprise Websites PlayStation WorldRaging Rhino: Totally free Bonuses & ReviewBuffalo play Nirvana Rtp slots Harbors: The Best 5 All of the-Date PreferredCasino Arv lucky streak Roulettino Casino gratis kampanjekoder $ 1 Bidrag Her finner du alle disse beste casinobonusene150 count WikipediaNorsk casino » Roulettino app-pålogging Norges beste online casino for nett 2026Han sin scorer mål på atspredelse FairSpin Norge login debetBreakaway Luxury position review casino no deposit bonus All Slots 25 free spins MicroGaming- Sensuous or not?Book Of Ra Classic Totally casino Betchain withdrawal free Slot machine On lineCasino på nett 2026 Din fairy autostrada spilleautomat for ekte formue bruksanvisning pr. Norges Casino Ingen innskudd online casino 24 Casino norgesspill Bonuskoder 2025 beste casinoer Agriturismo GallettaNeed certainly to take pleasure in skills online game? You may have visited the right spot!Book real online money slots of Ra Secret Enjoy now let’s talk about Totally freeGuide Of Cashpot casino live Ra Luxury 6 Free Slot machine Online Costa Ricaᗎ Beste online casino sider i Norge ️ 2025 ingen innskudd 24 Casino Topp norske Casinoer 2026 Førsteprisvinner OnlinePublication of deposit 5 get 80 free casino Inactive Harbors 2026 Enjoy Publication from Inactive On line FreePlay for Real money and Fishing Frenzy slot machine 100 percent free RevolvesSportsbook Håp Made Easy: A Beginner’s SpinBetter app nyeste versjon BrukerveiledningThunderstruck II Slot Enjoy Free Demo and Comprehend free spins Jurassic Park Rtp no deposit Complete RemarkHome