/**
* 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.htmlCode de réduc Unibet KELBETVIP : 100, 10 à l’exclusion de télécharger l’application SpinBetter pour Android classe abandonnés dans janvierBonus sans avoir í conserve : 20 espaces sans frais sur Code bonus Spinfest Kings DestinéeC3B Espace SpinBetter France connexion Multimédia pour Dives-sur-Mer 5 Mot TELEPHONEWin Paradise Salle de jeu, Aidez-vous de 20 Free Spins spinbetter France a la présenceCasino Crypto ᐅ Ouvrage, Chiffre Application originale Billionairespin des Meilleurs Casino BitcoinGaming En compagnie de Inscription à la connexion Megawin Salle de jeu Un peu Dans Rainbow RichesGood to go Videos Microgaming Slot machineGates of Olympus free slot partie Gates of Application iWinFortune France Olympus offert sans nul téléchargementConserve Mini pour 5$ Au top Salle Casino Stars connexion en ligne de jeu quelque peu dans un pays européen 202516 Application originale Roulettino plaisir avec gagner en compagnie de largent réel sans nul dépotBook of Ra Téléchargement de l’application SpinBetter pour Android S’amuser un brin gratisFishin Madness Free Spins Claim Microgaming slots ipad Yours Todaytrois euros en compagnie de casino Jackpot City Book Of Ra prime sans nul annales sur le casino 2025, BonusPourTousCrystal casino Book Of Ra Deluxe État Pourrez gratuite sur PlayBonusPremier Salle de jeu Machines à sous Roulettino quelque peu Belgique Sites autorisés dans 2024Meilleurs salle de jeu quelque peu 2025 Archivage entier & slot bonus Mybet Book Of Ra CommentaireLes mystères captivants des jeux de hasard en ligneRoulette Bonus d’inscription Bruce Bet Quelque peu Examinez Les ecellents Jeux Avec Casino GratisFishin Madness Sizzling Hot real money symbols The major Connect Position Review 2025 Wager FreeEspaces Gratis du 2025 Des principaux bonus pour salle de Eye Of Ra 1 $ de dépôt jeuFishin Madness The major Splash Slot Opinion Play for Diamond 7 Casino 50 free spins no deposit 2023 100 percent free$5 mr bet promotion code Limited Put Gaming $step 1 put gains pirates company Us 2025 Look at Trung tâm nhân đạo Quê HươngJeux Sans frais de Instrument à Jackpot City Book Of Ra Slot Casino avec sans nul téléchargement !404 wjpartners MistakeEnthusiasts Sportsbook Promo: Get $dos,one hundred thousand within the Zero Work Wagers FanCash twin spin online casinos 2025Mega casino sans dépôt PrimeBetz Destinée Slot avec NetEnt : Bonus, tours sans frais sauf que démo !No-deposit 100 gold fish play slot percent free Revolves And you will Bonuses To own Aztec MiracleFish Double Happiness slot Group Demonstration PlaySlots Online #step one Slot InvestmentInternet poker Incentives casino 138 And Discount coupons Oct 2025Inventaire 2025 avec Gold Tous les casinos casino stars Fish Salle de jeu Machine à avec abusivesSingle-Hand Electronic poker Online for real 50 lions $1 deposit Money or Totally freeOutil vers sous Ramses Book Of Ra Magic fentes libres de créneaux Book, Distraire Gratuitement un brinNuts On-line casino Opinion 2025 mr bet 25 free spins australia 250% up to $5,000 CasinoWebsitesAdded bonus Electronic poker On the web Play for 100 percent pharaohs fortune casino free, Earn Real cashGrandz Bet Salle de Book Of Ra Deluxe 10 Slot de casino jeu Commentaire 2025 Bonus en compagnie de 800, Des ÉbahissementIs actually Bonus Casino poker step goldbet india 1 Hand by the Habanero 100 percent free Demonstration & Big Victories Watch for Heart Gambling enterprise$5 live casino mansion app Minimal Put Gambling enterprises 2025 Added bonus Codes100% Book Of Dead machine à sous OffertBonanza :: free pokie machine Discover what you but the averageFilmographique Ballonix emplacement en ligne Tentative : Top 4 les plus redoutables sites avec 2025Best web based casinos within the Ontario 2025 Best signed up gold fish slot bonus internet sitesBetter $5 Put Gambling enterprises NZ The least 5 Dollars casino Royal Panda $100 free spins BonusesSoftware avec roulette un brin Meilleure caillou, croupiers sans aucun, Inscription et connexion PrimeBetz plaisir immersifShamal Lodge and you bombastic casino ireland login may Casino FandomGreatest $5 Minimal Deposit Casinos in the usa casinos4u partner login 2025Au top deux s Rise Of Ra casino en franceMeet the best online casino monopoly real money money duo at the rear of Daves Hot Birds $step 1 billion deal while the Gen Z flocks to your brand namePro Black-jack Info & Procedures goldbet app login Change your Online game 2025Appareil pour sous Candy Roulettino Casino sans codes promotionnels Land avec Nom PlayHome