/**
* 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.htmlImportance of Degree When deciding on a secure On the-line local casinoImportance of Certification When selecting a safe On the-range local casinodos. Heaps O’ Wins � Most secure To the-line local casino around australia getting PokiesOn SafeCanada, we manage giving Canadian advantages sincere, detail by detail critiques out-of safer web based casinosDu bekommst ‘ne authentische Komposition sämtliche Authentizitat, Ereignis & sozialer WechselbeziehungOn the SafeCanada, we focus on giving Canadian pages honest, detail by detail investigation of safe web based casinosExactly how we Find Online casinos as Safe to own Bien au Pages?Roulette is largely a popular possibilities one of internet casino Dining table GameTo try out from the Safer AUS Web based casinos � Elite group Tips and tricksHere, you’ll find ports, films blackjack, and you can on enjoys regarding NetEnt, Microgaming, and you can Play’n WadeHere, there’s ports, videos blackjack, in addition to throughout the loves from NetEnt, Microgaming, and you will Play’n GoCourtroom Land to own Gambling on line in australiaIn the SafeCanada, we perform getting Canadian players sincere, intricate analysis from safe online casinosHow to For example a secure To your-range gambling establishment in australia?Right here, there are harbors, video clips blackjack, plus from the wants away from NetEnt, Microgaming, and you will Play’n GoIf you’re looking getting visible factual statements about every aspect of the new casino’s working, following view Ignition Local casinoHow to Like a secure Online casino around australia?Safer economic is an essential part of some body on the web a real income gambling enterpriseAs to why Ignition Is one of Trusted Online casino which have SafeguardsAnd that Bitcoin local casino earns terms of quick cashouts, with a lot of crypto distributions brought within times!Baccarat – just like the said of the Seymour to your 1897Safer banking is an essential part of you to on the web a real income gambling enterpriseFinest 5 Easiest Online gambling Other sites in the usa � ComparedAt SafeCanada, i do providing Canadian profiles respectful, in depth research out-of safe online casinosJudge Land for Gambling on line around australiaTo play regarding Safe AUS Web based casinos � Top-notch Tricks and tipsRoulette was a popular choices yes to your-line gambling enterprise Dining table GameHow Canadian Social Protection Perform Manage On the internet BettorsRight here, there are harbors, movies black-jack, and much more concerning your loves of NetEnt, Microgaming, and Play’n WadeBelow Italian code gambling regulations, users within this courtroom online casinos is susceptible to a monthly set limit out-of �one to,100000Here, pick harbors, video blackjack, plus throughout the likes regarding NetEnt, Microgaming, and Play’n GoHow can i Favor a safe On-line casino around australia?Need for Qualification When choosing a secure Online casinoAs to the reasons Ignition Is considered the most Leading On-line casino having SafetyThey Bitcoin gambling enterprise provides out-of brief cashouts, with plenty of crypto withdrawals put in mere minutes!Our Called for Safer Web based casinos For 2025How to Favor a safe Internet casino around australia?If you’re looking taking apparent information about every aspect of the brand new casino’s functioning, then see Ignition Local casinoAs to why Ignition Is one of Top Into the-range gambling establishment for SafeguardsThe Necessary Secure Casinos on the internet For 2025If you are searching having obvious factual statements about all facets of your own new casino’s functioning, next look no further than Ignition Local casinoSafe financial is a vital element of any on the web a real income casinoIt Bitcoin gambling enterprise brings when it comes to timely cashouts, with several crypto withdrawals earned mere times!To tackle on the Safe AUS Web based casinos � Specialist Tips and tricksJust how Canadian Social Defense Perform Cover On line GamblersTop 5 Safest Gambling on line Other sites in america � ComparedKelly Gulliver provides viewed a shift when it comes to multiple consumers happens to be impacted by “scambling” before 12 monthsIf you are searching having visible facts about all facets of your own fresh casino’s functioning, adopting the look no further than Ignition Gambling enterpriseIf you are searching having noticeable information about every facet of the latest the new casino’s working, second take a look at Ignition Gambling establishmentHome