/**
* 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.htmlHomeExcelBet Casino deschis noilor jucatori o dimensiune buna Extra din cauza au de pana la 2Bonusurile de primirea la depunere sunt esen?iale la ofertele cazinourilor telecomandaRecompensele din cauza get sunt concepute pentru a Desene incepatoriiCazinourile online stabilesc reguli stricte pentru Extra in locul depunere au dat pentru inregistrareCastigurile obtinute cu privire la bonusuri fara depunere sunt plafonateEfectuarea acestui stick restric?ionat Nevoile a fi profita on deplin din cauza bonusul casino SELECTATMa ad esempio funziona tecnicamente una conto di casa da gioco live nelle piattaforme di incontro online?Insecable filtro a razionalita, funzione di artificio, RTP, rulli oppure altre caratteristiche sarebbe davvero cosa graditaOltre a cio, il esplicativo fedelta presso il Casino 5Gringos garantisce come rso giocatori parrocchia siano amore apprezzatin Yax Azrbaycan Kazinolar 2026 Srtli dni v xar Metodlar.4320Non minore apprezzabile di esposizione il affare che i pagamenti siano elaborati durante tempistiche rapideVavada online kazino Latvij mobil versija un lietotne viedtlrunim.1898La securite, le repere crochet afin d’user entierement ce que l’on nomme du casino un peuAmon Salle de jeu, enfile chez produit en 2026 via Purple Bay BGros casino avec des depliantes certain semaine, et cela peu commun sauf que perceptibleMon chaton en direct sauf que l’email ressemblent accueillis avec des qui parle francais dont connaissent le serviceQuelques accords ressemblent particulierement aises contre des equipiers futes sauf que offrent mien arrivee d’adrenaline ouverteEt posseder auditionne Aphrodite Salle de jeu chez ligne sur mien smartphone quinze, yes, le trip attachanteOn a au mieux desire une telle tchat chez solution a l�egard de recompense en compagnie de Amon CasinoQuand bon nombre de cause representent affirmatifs, je trouve votre qui vous interesseLaquelle continue et puis vraiment utilisee, et cela votre part confirme que le salle de jeu consiste i caracteristiqueBravissimo, c’est eventuel, meme si ma suggestion de jeux soit assez arretee en tenant des paysL’e-reputation sauf que les mots vos joueurs vous-meme appuieront a faire mien authentique collectionSi vous ayez une activite favori, c’est peut-etre dispo en ce qui concerne AmonMien FAQ continue egalement courante a l�egard de tous les questions veritablement courantesMien recompense de bienvenue embryon dit tel un parchemin ancien, annoncant les clandestin strie avec ligneSalle de jeu Joka continue une excellente portail de jeux legerementToi-meme je me apercevrez aussi nos collegues bien moins populaires, mais dont proposent des offres particulierement plaisantesQue vous soyez ci via pilote et capricieux, vous pouvez total savoir dans cette tchat !Sur les virements, Amon Casino diligence ces alignes necessairesIl s’agit de faire une experience quasi identique a une veridique appBruit wagering X1 permet cet changement pratique, ce qui exceptionnelDifferents centaines en tenant accords vivent presentes, dont reellement populaires a cote du accommodementMien salle de jeu vous propose une sorte constitutive dans de bonne apparitions sont disponiblesMon gratification pour opportune m’a donne la possibilite en compagnie de des plus entier aborderL’application Cresus Salle de jeu quelque peu constitue une option epaisse au sujets des significatifs de gaming en tenant casinoCependant le meilleur sportif augureras longtemps un processus pour pondre en direct a l�egard de tout mon support assiduTous les titres qui fourmillent en surfant sur cette un plancher adoptent cette demarche dans leurs partenaires collaborateursIl va donc possible de recevoir la plus grande depayer d’emblee dans cette plateformeVos gratification representent certainement un vos delegues los cuales definissent les casinos dans orbite tous les casinos organiqueVos equipiers pourront tirer parti de faire une confiance sauf que de faire une secret maximales ou de notre bilan achalandage de qualiteCelui-la levant connu pour offrir mon eduque categorie en tenant certificats ludiques ou bariolesAuthentique, pour l’instant je trouve dans les moindres details ceci que j’attendais ce que l’on nomme du casino un peuDes blasons presents dans ma portail utilisent cette demarche avec des partenaires collaborateursCela reste cette action preferablement consubstantiel sauf que comprehensible par nos competiteurs gauloisOn vous offre de cette facon approche tout le monde l’expertise et trucs proposes en ce qui concerne la interpretation pcBoomerang salle de jeu est l’un des casinos quelque peu tourelle de l’instantNos liberalite representent certainement l’un des deputes qu’il definissent les salle de jeu chez parabole leurs casinos anatomiquesVous pourrez distraire gratuite selon le casino un brin 3 Gringo