/**
* 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.htmlHomeIf you’re looking to own obvious facts about all aspects of brand new casino’s working, then look no further than Ignition Gambling establishmentJust how to See the Best Gambling establishment Incentives & Sign-Upwards Offers?Encouraging Safety and security: Just how Small-Commission Casinos on the internet Coverage Players’ CurrencyBaccarat – while the revealed of Seymour from the 1897Start your travel with a gambling establishment Bonus!Unlike most other European countries, gambling establishment industry into the Romania brings much time recordWild Bull Casino had previously been think a good, reputable system to play on the internetWould you like to delight in solutions video game on the web? You have got started to the right spot!Information Lay on a low-British Casino Webpages?How do i carry out an effective Sloto’Cash Gambling enterprise membership?Take your gambling sense one step further obtaining the new the fresh Roulette � Gambling establishment DesignUsually do not Overlook These Incredible Transformation within this Most useful Online casino Web sitesI’ve discovered so it an excellent local casino hence providesRight here, discover ports, clips blackjack, and much more regarding the loves regarding NetEnt, Microgaming, and Play’n WadeChampion esport | Improving Wins: Tricks for Crypto BettingNew colorful updates – 9 Bins out of SilverSet Your own Put Limitation From The newest BeginningThe way to select the best Video slot on the internet to you personally?Playing from inside the Safe AUS Casinos on the internet � Expert Tricks and tipsWhich kind of Casino Bonus is usually the Biggest?Just how Am i going to Use this into the Real life?Delaware turned into a good trailblazer in the usa online gambling land while the of your legalising issues within this industry into the 2012Short Struck Gambling enterprise might be able to hit the urban area and bring your own times regarding fun with major wins!Everything is and outlined and you can put into obviously labeled communities, particularly the newest video game, popular video game, and you can private gamesVery first Jordan Brand �Arena of Flight’ shop out-of U.S. opens up into the PhillyReally don’t promote much pounds for the enable an online casino possessEverything you need to Find out more about Having fun with Paypal providing On line Recreations GamingTasmania JackJumpers up against Perth Wildcats Anticipate & To experience ResourcesIn lieu of additional European countries, gambling establishment industry within the Romania have enough time ideasCertain casinos on the internet have a tendency to make you forfeit one to profits about skills you make a withdrawal prior to hitting the playing criteriaThe new colorful slot – nine Containers out-of Goldfive. Slots Magic � High RTP Games of all the Uk Casinos on the internetHow we Ranked an informed Towards-line gambling enterprise Internet in britainDeposits & Distributions Spree public gambling establishment review of customer serviceWhat’s the low count I am able to installed order so you can an web sites casino?Which are the Casino games which have Top Potential?All more than items merely count if your website gives the newest video game we should gambleAn educated Casinos on the internet one Take on Paypal Commission MethodThese types of trial models are ideal for tinkering with a-game before playing profit theyStart their excursion which have a casino Extra!If you’re looking to possess visible information about every facet of the new casino’s functioning, then have a look at Ignition Gambling establishmentdos. Piles O’ Gains � Trusted For the-line casino around australia to have PokiesAnd you may, certain sign-up incentives aren’t open to individuals regarding certain regionsRoulette try a popular selection indeed into the-line gambling enterprise Desk GamesWhen searching for your dream additional, listed below are some of the biggest points to remain an enthusiastic eye towardsClub Local casino revealed inside 2023 and you may currently possess an amazing selection of more than 2,000 British position online gameBeyond the Clouds Amplify Your Winnings with the aviator predictor apk & Master Timely Cashouts.How exactly we Rated the best On-line casino Internet sites regarding ukBut not, however remember the benefit words and you may someone problems that impact the property value the fresh bonuses