/**
* 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.htmlHomeOn the SafeCanada, i run giving Canadian users respectful, detail by detail analysis from safe web based casinosRight here, discover slots, movies black-jack, and on the fresh new enjoys regarding NetEnt, Microgaming, and you may Play’n GoIf you’re looking to own noticeable details about every aspect of your own the new casino’s performing, then look at Ignition Local casinoHow exactly we Come across Casinos on the internet is not damaging to Au Users?Court Landscaping getting Online gambling in australiaSafer banking is a vital section of people on the internet a great actual money local casinoIn the SafeCanada, i focus on bringing Canadian benefits polite, outlined critiques from safe casinos on the internetBest 5 Safest Online gambling Web sites in the us � OpposedAll of our Needed Safe Casinos on the internet To own 2025Why Ignition Is one of Trusted Online casino having SecurityAs to why Ignition Is the most Finest On-line casino having ProtectionExactly how Canadian Individual Protection Qualities Coverage Online GamblersContained in this SafeCanada, i work on giving Canadian members honest, detailed critiques from secure casinos on the internetAs to the reasons Ignition Is among the most Better On-line casino having CoverBetter 5 Trusted Gambling on line Websites in the usa � ComparedKelly Gulliver has observed a move around in how of many members provides come affected by “scambling” in the past seasonDependence on Certification When selecting a safe Internet casinoSafer banking is a crucial part of 1 on line a real income gambling enterpriseSafe financial is a vital part of someone on the internet real bucks gambling enterpriseThe Needed Secure Casinos on the internet With 2025How can i Including a secure Online casino around australia?Lower than German gambling guidelines, pages in the courtroom casinos on the internet try at the mercy of a great monthly put restriction from �step 1,000If you are looking to own obvious details about every element of your own newest casino’s operating, next take a look at Ignition Local casino2. Piles O’ Progress � Safest Online casino in australia for PokiesThey Bitcoin casino brings when it comes to timely cashouts, with many different crypto distributions installed just minutes!Why Ignition Is one of Best On-line casino having ProtectionHere, you will find harbors, clips black colored-jack, and you will on has actually from NetEnt, Microgaming, and you will Play’n WadeBetter 5 Easiest Gambling on line Other sites in america � OpposedHere, there are harbors, movies blackjack, plus regarding have regarding NetEnt, Microgaming, and you will Play’n GoHow to Like a safe On-line casino around australia?Right here, there are ports, movies black-jack, and additionally concerning your wants from NetEnt, Microgaming, and you will Play’n WadeOur very own Needed Safer Online casinos To have 2025Our very own Requisite Safer Web based casinos Getting 2025And that Bitcoin gambling establishment provides when it comes to prompt cashouts, with a lot of crypto withdrawals lead-in just moments!Roulette is largely prominent choice among on-line casino Dining table Online gameBaccarat – as the revealed from the Seymour during the 1897Lower than Italian words playing statutes, users within legal online casinos try susceptible to a great monthly put limitation out of �one,100000Exactly how we Choose Online casinos getting Safe for Au Some one?Including demo habits are ideal for tinkering with a game title just before betting cash in itImportance of Certification When deciding on a safe Toward-line casinoMost readily useful 5 Top Online gambling Internet sites in america � OpposedHow can i Prefer a secure To the-line casino around australia?Requirement for Certification When deciding on a safe Online casinoHow exactly we Like Online casinos is safe having Bien au People?Exactly how we Discover Web based casinos to-be Not harmful to Bien au Profiles?Finest 5 Safest Gambling on line Internet in the us � OpposedAs to why Ignition Is one of Best Online casino providing CoverageSo it Bitcoin gambling establishment brings with respect to quick cashouts, with quite a few crypto withdrawals earned simple minutes!Lower than Italian vocabulary gaming regulations, players during the court casinos on the internet has reached the mercy regarding a monthly deposit limitation regarding �step 1,100