/**
* 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.htmlHomeVipzino Casino Bonuses & Loyalty Programme Uk Player Perks 2026Significantly less than Italian words betting regulations, players during the judge online casinos is at the mercy of a month-to-month deposit restriction of �step 1,000An informed Ports Host In the IndiaSuch demo models have become ideal for trying out a game prior to gaming bucks into theIhr DuckTales Geldspeicher inoffizieller mitarbeiter LEGO Ideas Review geschütztMoving Ports Local casino No-deposit Incentives, Requirements & Sign-upwards Has the benefit of April
2026Roulette try prominent options certainly one of online casino Desk Video gameEspaces sans frais à l’exclusion de archive: 10+ salle de jeu Pas de casino de dépôt verde casino pour les joueurs existants à tours non payantsRoulette was popular selection certainly online casino Desk On line video gameSultan Games Всё что нужно знать.1245 (2)Quick Detachment Bitcoin Local casino Get money in the SecondsLaisvieji goldbet kontaktas Lietuvoje uostai ir internetinis socialinis vietinis kazinoTo relax and play on the Safe AUS Casinos on the internet � Expert Tips and tricksExactly how Canadian Personal Coverage Create Manage On the web GamblersGoing Ports Casino Feedback Expert & Member Evaluations 2026Vorfinden interpretieren Deutsch-Englisch: Cambridge LexikonSafe banking is an essential part of that online real cash casinoCourt Land that have Gambling on line around australiaRunning Harbors Gambling establishment 2026 RollingSlots No-deposit Added bonusDvigubo sukimo nemokamos pozicijos lošimas. Dvigubas sukimas dėl „NetEnt“ vulkan spiele lošimo automatų programėlės promo kodai 100 procentų nemokamo žaidimo.Roulette is actually popular possibilities certainly to the-line gambling establishment Table Video gameKelly Gulliver has noticed a move around in ways many members provides been impacted by “scambling” in advance of seasonsMoving Ports Casino Canada 5,000+ Online game $30 Put100% Bonus & 50 FreispieleJust how Canadian Personal Safety Operate Safeguards On the web BettorsInternetinis vulkan spiele premijos sąskaita kazino lošimas už tikrus pinigus „PokerStars“ kazinoBaccarat – because demonstrated of your Seymour when you look at the 1897Enjoy Safely And have now Totally free Revolves!Kelly Gulliver provides noticed a move around in the way in which of a lot people was influenced by “scambling” before seasonsFre Revolves Toeslag 2026 Eersterangs 10 kosteloos ramses ii slotvrije spins spins bonussenDrückGlück Spielbank Erprobung: 100 Maklercourtage, 50 FreispieleAs to why Ignition Is one of Top Web sites gambling establishment having SafeguardsRolling Ports Gambling establishment Erfahrungen und auch Bewertung Gambling establishment GuruAttraversa la strada con la gallina e raccogli monete in Chicken Road, evitando le auto!Significantly less than German playing laws, participants from inside the judge casinos on the internet was at the fresh new compassion off a monthly put restriction of �step one,100Vaizdo lošimo automatų vulkan spiele Lietuva bonusas leidinys. Geriausi būdai išbandyti „Videos Harbors“ internete.Kelly Gulliver have seen a move in the way out-of an excellent parcel players have been impacted by “scambling” in earlier times 12 monthsMoving Ports Local casino Opinion 2026: 260% Complement so you can $step 3,600 + 260 Free RevolvesTo relax and play from the Safe AUS Online casinos � Elite Tricks and tipsEchtgeld Angeschlossen Casinos Ostmark März 2026bonus Videoslots Переклад та приклади англійська німецькаBetter 5 Respected Online gambling Web sites in america � Opposed1win казино и БК.2192Going Harbors Casino Review Professional & Associate Product reviews 2026Sultan Games Как начать играть.1008Court Landscaping getting Gambling on line around australiaMinimali goldbet partnerio prisijungimo registracija tautaGamble over 500 Of the finest Online slotsThis Bitcoin casino brings from brief cashouts, with many crypto distributions installed simply minutes!