/**
* 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.htmlStanozolol 10 Mg : Que faire après son utilisation ?Kasinot ilman rekisteritymist parhaat nettikasinot ja vertailu.2317HomeMegapari Casino online bonos y promociones para jugadores.1293No KYC casino deposits and withdrawals without KYC identity checks.92Online Casino Ubersicht Schweiz.3820 (2)Megapari Argentina cmo iniciar sesin en el casino online.1354Novos casinos legais online Portugal plataformas seguras e confiveis.1017Kasino ilman rekisteritymist edut ja haitat pelaajille.1371Casino non AAMS in Italia metodi di pagamento sicuri.5476Casino non AAMS in Italia metodi di pagamento sicuri.5177 (2)Megapari apuestas cmo apostar en el casino online paso a paso.1930Ozbekistonda ommabop onlayn kazinolar.770Ozbekistonda ommabop onlayn kazinolar.529Rangliste over online casinoer uden licens i Danmark.2246Casinoer uden Spillemyndighedens licens i Danmark.1779No KYC casinos full guide and rankings of online casinos without KYC verification.991Novos casinos online em Portugal mtodos de pagamento e levantamentos rpidos.1148Bison casino logowanie bezpieczny dostp do kasyna online.5624Novos casinos legais online Portugal ranking dos melhores casinos online.581Bison kasyno gry slot i live casino w kasynie online.6124Mobile Online Casinos Schweiz.4508 (2)No KYC crypto casinos best platforms for anonymous gambling without KYC.12Novos casinos online Portugal avaliaes e opinies dos jogadores.265Vip Casino: Quick‑Play Slots, Live Action, and Instant WinsGlutamin Peptider: Positive Effekter og FordeleKasyno online Vulkan Vegas Recenzja.2428 (3)Kasyno online Vulkan Vegas Recenzja.1635Online Casinos in sterreich mit schnellen Auszahlungen.1886Online Casinos in sterreich mit schnellen Auszahlungen.1541Kasyno online jakie metody patnoci s dostpne.1456 (2)Kasinot ilman rekisteritymist bonukset ja tarjoukset ilman tili.2184Basic Jordan Brand �Realm of Flight’ shop toward U.S. opens up inside PhillyBar Gambling establishment put-out in to the 2023 and you can currently has an impressive assortment more dos,100 British position online gameWagers a real income to play internet sites for RomaniaAn informed on-line casino Zimpler inside Switzerland 2024Throughout the examining the terms and conditions, we discover which free revolves hold legitimate valueHow Canadian Public Safety Perform Shelter Online GamblersWe’ve the new the modern very ines you are aware and you can also like – after which certainMaximising The latest Bankroll Which have A real income Gambling enterprise BonusesGuide complet du casino en ligne : tout ce que vous devez savoir en 2026Things to be cautious about and when gaming onlinePlay the finest online slots games towards the markets at SpaceCasinocuatro. Red-dog � Versatile Incentive Redemption having Lower Betting and you may Crypto AcceleratesA fast Publication on how best to Play on range RouletteThese are typically a well-known choice for members having a giant bankroll, as they have the opportunity to has actually higher professionalsBaccarat – because revealed of your Seymour about 1897Short Strike Casino is ready to smack the area and you will establish their era out-of enjoyable that have major wins!My Decision: Comparing the new Five Better Gambling enterprise Websites I triedDie Besten Verbunden Spielsaal ohne OASIS vortragen abzüglich Sperrdatei