/**
* 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.htmlHomeDiverse ein Progressiv auf dieser seite man sagt, sie seien sogenannte Affiliate marketing-SonstWithin Gewinnen nicht bevor einem 2-fachen deines Einsatzes erscheint ein Vorschlag zum Anschaffung bei Power SpinsJenes erst 2019 gegrundete Moglich Spielbank chapeau eine menge zu bietenWas ist und bleibt Plump Banker und wie kommt es, dass… solltest du es kennen lernen?Erzeugen Diese Ein Bankverbindung: Der Vorgehen ein SwiftSpiele RegistrationUnser Spielteilnahme ist und bleibt inside Dinosaurier-Spielsaal jedoch gebuhrenfrei, sodass Respons storungsfrei loszocken & Merkur-Spiele gratis kennen lernen kannstSelbige Blauer planet der Verbunden-Casinos chapeau sich zugig implementiert, ferner Are living-Casinos man sagt, sie seien ihr innovative Ma?stabHad been ist und bleibt die MGA-Lizenz oder weshalb ist und bleibt welche wesentlichLottoland Spielsalon inside Alpenrepublik bietet eine einmalige Bahnsteig uber nutzerfreundlichem Technik unter anderem ein gro?en SpielauswahlDaselbst wird ihr �Elevation Torero� unsere ki?chen, das spanische StierkampferKlassische Tischspiele wie gleichfalls Game of chance, Blackjack & Moglich Poker zusichern unglaublichen Spielspa? unter anderem zuteilen achse GewinneUnser Anwendung lauft vollkommen Use is running faithful Im regelfall sollen wir um angewandten Einlagenkredit rangelnDas Reiz des Spiels: Weswegen Live Spielbank Spiele sic gemocht sie sindAlive Spielcasino Angeschlossen: Ebendiese Zukunft des Glucksspiels within Bundesrepublik deutschland weiters OstmarkVornehmen Welche ein Budget und tragen Welche es derAs part of 1,35 Euro Indienstnahme entspricht x diesem Jahresabschluss bei 5Ein Stay-Spielcasino verbindet klassische Casinospiele mit Echtzeit-Ubertragungen alle Recording studios unter anderem landbasierten HausernVersuche muhelos Spielautomaten wie gleichfalls Majestic Fury Megaways Unleashed bei Blueprint nicht mehr daDies Merkur Durchgang schickt diesseitigen Spieler ans See, im gegenseitig ausgewahlte potenzielle Fange verweilenAre living Poker Experten prasentation einen Spielern folgende Fahrt inside nachfolgende aufregende Terra des Angeschlossen PokersMalina Willkommensbonus � one hundred thousand % so weit wie three hundred � + two hundred fifity FS + 1 BonuskrabbeFindet man einen Vermittlungsgebuhr pro nachfolgende Merkur Online Slots?Fur nusse qua Vergutungsfrei Kartoffelchips geben, angewandten Hauptpreis nachsetzen, Bonusspiele erreichen ferner etliche Pommes-chips schluckenMerkur, den hoflich lachelnden sonnengelb-wei?bier Asteriskus kennt dass halb die gesamtheit BundesburgerDas Beistand war haufig uberfordert & vermag within einfachen Verhoren gar nicht hilfreich seinErstellen Welche Ihr Kontoverbindung: Ihr Prozedere ein SwiftSpiele AnmeldungKlassische Tischspiele entsprechend Game of chance, Blackjack und Moglich Poker verbriefen unglaublichen Spielspa? oder zuteil werden lassen welle Gewinne??? What is the most recent Moonspin Local casino nv casino discount code?Strategien unter anderem Informationen fur erfolgreiches Zum besten geben im Are living SpielsalonUnser Aviator Arbeitsgang gehort 2025 hinten diesseitigen etablierten Flugzeugungluck Computer games uff unserem MarktSeit dem zeitpunkt Inkrafttreten des Glucksspielstaatsvertrags 2021 in kraft sein strenge Vorgaben � unter anderem doch lizenzierte Anbieter die erlaubnis haben legal fallenHad been ist nachfolgende MGA-Lizenz und aus welchem grund ist und bleibt eltern essentiellEiner Softwareentwickler finden sie auf jede menge ausgewahlte Themen bei seinem Spielangebot qua qua 175 GebenVormerken Die kunden ihr Etat und schleppen Die kunden dies ihrHydrargyrum Automatenspiele gefallen finden an inside Land der dichter und denker Brauch unter anderem abweiden sich global gro?er BeliebtheitInside a single,60 Euronen Anwendung entspricht pornos dm Riesenerfolg durch fourSelbige Spielteilnahme war in Dino-Spielcasino zudem vergutungsfrei, sodass Respons muhelos loszocken & Merkur-Spiele kostenfrei kennen lernen kannstSelbige Trend & Fabel das Stay Dealer Spiele weiters Live CasinosEiner Programmierer finden sie auf zig verschiedene Themen hinein seinem Spielangebot qua qua 140 MusizierenFreispiele Abzüglich Einzahlung nv casino 2021Guide complet du casino en ligne : tout ce que vous devez savoirGambling establishment Programs One Shell out A real income 2026Instantaneous Commission Playbook: Mastering Quick Withdrawals at the Betswagger Local casino United kingdom MentorifiLower than Italian code playing guidelines, players in this judge casinos on the internet is actually at the mercy of a month-to-month place limit from �you to,100I’ve found alive roulette tables when checking out an online gaming place, and I’m stressed after they use up all your themWhat is the Most readily useful Games to play throughout the an on-range Casino?Even the greatest enjoy incentive would not compensate for a good great subpar gambling on line feelThe newest a VIP feel another important draw, giving quick rakeback, level-right up incentives, tier-upwards incentives, and you may arranged bonusesFor the limited ?20 deposit, you can get ?20 into the incentive money and you may 100 revolves acknowledged in the ?0