/**
* 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.htmlHomeUs No deposit Bonus Online casinos April 2026 The new Bonusstu złotych bez depozytu od momentu Fontan Casino Bezpłatne Bonusy spośród Promo CodeNo deposit Bonus Best Casino Free Ports No deposit BonusesNo deposit Casino Bonuses Free Spins to have Online Players 2026The new No deposit Casino Bonus Codes The new Free Spins 2026Best Online casino No deposit BonusesNo deposit Bonus Codes & Free Spins Updated Every daySkrill is recognized for its speedy transactions, and you will distributions usually hit-in 1�several daysPrivate Bonuses Updated Every dayKrajowe Kasyno przez internet oraz premia odwiedź owe witrynę wyjąwszy depozytu w początek w 2025 r Partner2ConnectNo deposit Casino Bonuses Best Also offers Out of 2026Best No deposit Bonuses Annual percentage rate 2026 $fifty FreeBest No deposit Bonus Casinos 2026 Play Online Rather than SpendingSocial Casino games Play with Free Every day Gold coinsPorts Deposit Bonus Uk موقع الأول نيوز الأخباريSpin City Casino RenomęWin Big at the Sloto’Cash that have a good $7777 BonusAnd, don’t let yourself be amazed in the event that casino asks for ID verificationReal money GameCasino 60 No deposit Bonus Is just a marketing Gimmick, Not a golden TicketFree online Ports: Play Casino Slot machines For funZestawienia fachowcówSafe Casino Log onInterest Required! CloudflareSlotsandCasino Done CommentA safe United kingdom internet casino retains an effective Uk Gambling Fee license, promising reasonable play and protectionSlotsandCasino Comment 2026: Game, Bonuses, and moreAn informed Us Slot Sites & Real money Online slots to have 2026Kasyna internetowego wyjąwszy depozytu na terytorium polski 2026Leading Casino Gambling Book to have 30+ YearsSlotsandCasino Comment 2026 Take A good $step 1,5K Bonus + Free SpinsOnline casino Scams Opened: How to Place, Stop, & Recover from ScamThe truth about Online slots Debunking Best Slot RumorsWhen you’re there are many downsides, they will not overshadow the great factorsBest Online casino Reviews 2026: Award winning Online casinosBest online casinos for real currency: Choosing the big online casino to have 2026Bonusy wyjąwszy depozytuBest Real money Online casinos: Leading United states Casino Sites 2026Casino Reviews Check if an online casino is legit or notPlay 21,700+ Free online Casino games No DownloadNajpozytywniejsze lokalne kasyna przez internet Zestawienia 2026 i przewodnik!Play 20,000+ Free Casino games No Download, No Subscription!The newest analysis complete implies that customer happiness try in person linked to customers respect having local casino participantsShort Hit Casino Ports Game Apps on google PlayFree online Ports: Play Casino Slot machines For funLeading Casino Gambling Book to have 30+ YearsBieżące Kasyno Bonus bez Depozytu po Nasz kraj 2026 145 promocjiPlay Slot Game Online Best Online slotsDiscover licensed and you can top gambling on line providers in america