/**
* 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.html1Win India – Online Betting and Casino 1Win App.437 (2)Most useful 5 Trusted Gambling on line Websites in america � ComparedHow do i choice a real income throughout the an enthusiastic Australian internet casino?As to the reasons Find the Cellular Casino to relax and play Vegas Slots?Rizk was an established online casino into Canada which is area of the fresh internationally recognized Betsson ClassThis type of trial versions are particularly just the thing for tinkering with a-game before gambling dollars involvedOur Needed Secure Online casinos Bringing 2025How we Choose Online casinos becoming Not harmful to Bien au Somebody?Why Ignition Is considered the most Recognized On the-range gambling establishment having ProtectionHow Canadian Societal Safeguards Perform Cover Online BettorsSafe financial is a vital component of one to on the web a real income gambling enterpriseSafe financial is an essential component of you to definitely on the web a bona fide money local casinoSafer economic is a vital element of that online actual money gambling enterpriseIf you’re looking to own noticeable facts about every aspect of new casino’s functioning, after that look no further than Ignition Local casinoDuring the SafeCanada, we work with giving Canadian profiles honest, detailed analysis out-of safer casinos on the internetSuch demo designs have become ideal for experimenting with a-game before gaming actual cash in to theIf you’re looking providing obvious facts about every facet of brand new casino’s carrying out, upcoming take a look at Ignition Local casinoAs to the reasons Ignition Is one of Leading Into the-line local casino to possess ShelterKelly Gulliver features noticed a move around in the way of a lot clients have begun affected by “scambling” in earlier times 12 monthsRoulette is actually a prominent selection certainly one of internet casino Table Video gameKelly Gulliver enjoys observed a change in how of numerous members possess been influenced by “scambling” previously seasonSuch demonstration labels are very ideal for experimenting with a-game just before betting money in theyTo relax and play within Safe AUS Online casinos � Expert Tips and tricksSecure financial is an essential section of one on the web real money local casinoUnder Italian code betting rules, positives within this court online casinos is basically at the mercy from a monthly put maximum of �one to,000Baccarat – since said from the Seymour on 1897Exactly how Canadian Personal Shelter Work Protect Online BettorsAs to the reasons Ignition Is one of Respected Online casino having CoverageHere, discover ports, video clips black colored-jack, and much more on enjoys of NetEnt, Microgaming, and you can Play’n GoAnd that Bitcoin local casino provides when it comes to prompt cashouts, with many crypto distributions lead in only moments!Anavar 10 mg Effekt – Eine umfassende AnalyseRoulette was a famous selection one of internet casino Table Online gameThe way we Choose Online casinos become Safe for Bien au Pros?Safer financial is a vital section of you to definitely on line real cash gambling enterpriseExactly how Canadian Public Coverage Jobs Manage On the internet GamblersAs to the reasons Ignition Is one of Respected On the-line gambling enterprise for SecurityBaccarat – just like the said by Seymour during the 1897Right here, you’ll find harbors, clips blackjack, and additionally about your wishes off NetEnt, Microgaming, and you may Play’n GoHence Bitcoin gambling establishment will bring with respect to short cashouts, with plenty of crypto distributions setup only moments!Less than Italian language betting regulations, participants regarding the courtroom casinos on the internet was at brand new mercy off a monthly deposit limit regarding �one,100000To try out throughout the Safe AUS Web based casinos � Specialist Tricks and tipsWhy Ignition Is the most Most useful Towards the-line gambling establishment having CoverageImportance of Certification When selecting a safe To the-line gambling enterpriseKelly Gulliver brings seen a relocate how of numerous customers have become determined by “scambling” previously yearHow Canadian Private Safeguards Functions Cover On the internet GamblersTo relax and play in the Safer AUS Online casinos � Pro Tips and tricksBetter 5 Trusted Online gambling Sites in the us � OpposedOur Expected Safer Casinos on the internet To own 2025Just how Canadian Societal Security Characteristics Cover Online GamblersHome