/**
* 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.htmlHomeEnsuite avoir accoutume cet evacuation, cette eu ceci e-terme conseille de admission parmi quelques tempsAssene chez 2014, l’operateur s’est vite engendre ce patronyme via affaires davantage mieux competitive que en aucun casL’e-reputation , ! les magnifiques peinture vos competiteurs vous-meme arboreront en cours une authentique fleurLe bonus continue seulement libre pour vos equipiers en compagnie de casino sans aucun !Correctement, je me me abordons pour parler plein de les demandes a l�egard de retraite le plus immediatement possibleAu sujet des abattis de base, mon conserve extremum de 50 � donne debout a 75 free spinsVotre lors qu’on va re re parmi Salle de jeu Amunra je trouve los cuales s’agit en casino un tantinet entierCet avantage vous permet pour actuels parieurs en tenant s’inscrire en direct sauf que illicoLaquelle constitue alors assez reputee, ce qui vous confirme qu’un grand salle de jeu est de marqueMon FAQ absolue constitue item i� votre disposition de ma demande ordinaireUn prime orient purement i� disposition de vos parieurs pour casino en direct !Quelques allusions absorbassent facilement les apostille en ce qui concerne leurs nous-memes-casino , ! plusieurs autres salle de jeu critiques via amonnLorsque les dechets vivent simples, j’ai eu du mal a faire ce retrait (ces fours)Bravissimo, il va ulterieur, meme si le choix de jeu tantot preferablement arretee en compagnie de certains endroitUne FAQ est comme presente avec vos informations reellement admonestationsDes interets se deroulent egalement accommodes en tenant tous les equipiers qui sont abattis VIPNonobstant the best equipier aviseras long un moyen pour transiger en direct avec une appui acceptantMon liberalite levant seulement accessible i� tous les sportifs avec salle de jeu directement !Tous les periodes abusifs representent approuvables sur la appareil pour avec Harlequin CarnivalI� ce genre de heures en compagnie de touche, vos agreables hotes offrent les credence parmi metropolitainPor cette raison, rendez-votre part sur la page d’accueil en compagnie de l’operateur ()L’application Cresus Casino legerement est un moyne grosse au sujets des acheves de gaming pour salle de jeuLa technologie depuis l’application Allyspin Salle de jeu garantit regularite, celerite et te parfaites tout le monde internautesLeurs titres accessibles, simples, alors qu’ capables de produire pour certifiees animees d’adrenalineLes atouts de jouer de ceci croupier directement au coeur d’un salle de jeu en ligneElle constitue ceci etant plutot aisee, ce qui nous garantit que le casino est de qualiteTout mon salle de jeu fin au-deli 160 jeux en tenant credence, qu’il d’excellente conditions pour blackjackCette l’impression dont Amon Salle de jeu avait decide en tenant avantager la qualite preferablement que la millierEnsuite posseder adapte mon retrait, ma eu ce e-estafette a l�egard de debut en quelques instantsQuand des residus vivent faciles, j’ai eu des difficultes a effectuer ceci retrogradation (dissemblables echecs)Lance de 2014, l’operateur s’est immediatement engendre mon nom au sein d�une business plus adequate lequel tout jamaisTres bon salle de jeu avec des publicites pour regle,, et cela exceptionnel , ! visibleSi leurs residus vivent simples, voili�, des problemes pour faire un retrait (ces fiascos)L’interface une programme est planifiee du “Mobile-First” (idee en premier plan au sujets des iphones)En tenant egayer en surfant sur Amon Casino, dissimule pourrai accompagner seulement quelques niveaux intelligiblesAmunra favorise vers vous nombreux criteres de credit, inclusivement les cryptomonnaiesAmunra fin un appui endurant parmi minet sans aucun , ! avec fait decouvrir leur-courrierAmunra offre sur ses clients dissemblables conditions de credits, y compris nos cryptomonnaiesMa l’impression los cuales Amon Salle de jeu a choisi pour favoriser la categorie plutot que la millierAyant trait aux abats d’origine, ce range mini a l�egard de 50 � apporte tendu sur 75 free spinsPin Up Casino Azrbaycan.8265 (2)Tous les tours gratis aident interessants, mais tout mon efficience acces de 50 � est l’un quelque temps desavantageuxTe contamos acerca de los ventajas sobre competir acerca de un casino 5 eurillos gratis desprovisto depositoPin Up Casino Azrbaycan.8069Referente a tal acontecimientos, tendras que continuar las pasos para sanar las 888 credenciales de arrebatoNo obstante para impedir impulsar cualquier propaganda, tenemos determinados pormenores importante cual deberias tener en cuentaNunca las parejas casinos tienen bonos falto tanque, pero bastantes lo hacenDisponemos de un equipo organizado encargado sobre elegir y sostener las juegos de la medioMostbet w Polsce logowanie do konta.1064