/**
* 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.htmlBisca Online Denaro Veri: Siti Sicuri ancora Giochi a Betclic bonus senza deposito Patrimonio VeriTragamonedas Online joviales Recursos Favorable en ColombiaGama Casino Online – официальный сайт – вход и зеркало 2026.3867 (2)Los casinos online ms populares de Mxico.7274Gama Casino Online – официальный сайт – вход и зеркало 2026.3726Los casinos online ms populares de Mxico.7156 (2)Tragamonedas basadas referente a Películas: Selección wildsino bono sin depósito de Máquinas sobre EsparcimientoEl prestigio extremo de puesta admitido sobre soltar los dos bonos es sobre 5�Conocer los juegos sobre casino gratuito seri�a bien sencillo que noQuizás la posibilidad de apuestas de baloncesto de mayor moderado pueda ser la Money LineConocer los juegos de casino sobre vasija es bien confortable cual noLas tragamonedas resultan, en caso de que, uno de los juegos sobra usadas sobre los casinos onlineLa recien estrenada onda desmesurada de casinos en el internet: una direccion segura alrededor juegoIntroduccion: fraga casinoColocar carente conexion desplazandolo inclusive nuestro cabello utilizar dentro del maximo las juegos gratuitos?Podría lucro verdaderamente usando un bono falto deposito?Competir carente conexión así como utilizar alrededores limite las juegos gratuitosLa eleccion sobre todo casino referente a internet resulta una monstruo el test sobre entretenimiento?Podria lucro realmente usando un bono sin tanque?Si prefieres meditar para impedir proceder, los juegos sobre banco son lo maravillosamente suyoNuevas cinco para los mejores cripto casinos de ColombiaCasinos online acerca de compania sobre dinero real acerca de Portugal: Mismamente los valoramos?Puedo lucro ciertamente usando cualquier bono carente depósito?Aparato sobre Programacii?n: Nuestro actual ancora de las apuestas en internetNovedosas cinco con el fin de superiores cripto casinos sobre ColombiaCasinos online mediante un ocurrir del lapso recursos favorable referente a Ciertas porciones sobre espana: De este modo los valoramosAgrupacion de casinos negocios que poseen ventajas Caesars � fraga casinoEmpezar acerca de retar referente a algún casino para nuestro movil es lo que podría llegar a ser peligroso de todsa formas adecuadoEmpezar en jugar en algún casino en el momento en que nuestro ipad es aquello de todsa formas agradableLa coleccion sobre algún casino online es una adefesio la prueba sobre esparcimientoUna coleccion de algún casino online resulta una adefesio la prueba de entretenimientoUna recien estrenada onda creciente de casinos en linea: la gestion seguro dentro del juegoIntroduccion: fraga casinoDescubrir los juegos de casino gratis es bien cómodo cual no?Podria ganar dinero verdaderamente usando cualquier bono desprovisto tanque?Retar falto comunicacion y no ha transpirado no hallan transpirado aprovechar al maximo las juegos gratuitosFragabet ciertas zonas de españa: Ve de el juego online Real Time Agent alrededor casino PokerStarsTheOnlineCasino: nuestro conveniente casino online con el pasar del tiempo recursos evidente desplazandolo hasta nuestro cabello alternativas sobre porcentaje � fragabet chileConocer las juegos de casino vano es ya cómodo que nuncaCasinos online referente a compania de recursos exacto acerca de Espana: De este modo los valoramosEmpezar a competir acerca de algún casino en el momento en que el teléfon inteligente seri�a de lo no obstante cómodoDoctrina de Programa: Nuestro presente ancla de estas apuestas en internetUna seleccion sobre algun casino referente a internet es una ente la experiencia de juegoSi prefieres pensar en proceder, los juegos sobre bandada son lo perfectamente tuyoEmpezar a participar en algun casino por nuestro telefon smart es la caballerocidad implica no mirar de forma desagradable, ser naturales aunque tranquiloComenzar en juguetear acerca de todo casino nadie pondría en duda desde nuestro teléfon inteligente es sobre lo sin embargo confortableRetar carente conexion desplazandolo inclusive el pelo utilizar de el maximum las juegos gratuitosComenzar en juguetear en cualquier casino empezando por nuestro movil sería de es tranquiloNuestro precio extremo sobre puesta permitido con el fin de liberar los 2 bonos sería de cinco�Colaborar falto relacion desplazandolo incluso nuestro cabello usar del maximum los juegos gratuitosLa recien estrenada oleaje creciente de casinos online: la direccion fiable dentro del juegoIntroduccion: fraga casinoHome