/**
* 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.htmlHomeFinest 5 Trusted Online gambling Websites in the usa � ComparedThat it Bitcoin local casino provides off punctual cashouts, with many crypto distributions put in mere moments!Choosing a secure Internet casino in australia?Below Italian words gaming guidelines, anyone in legal web based casinos is at new compassion away from a month-to-month lay maximum away from �step 1,100How can i Such as for instance a secure Online casino around australia?2. Stacks O’ Development � Most secure Online casino in australia for PokiesSignificance of Certification When deciding on a safe Into-range gambling enterpriseThis type of trial labels have become ideal for tinkering with a-game just before gambling actual cash insideHow Canadian Societal Shelter Performs Manage On the internet BettorsSafe financial is an essential part of one online a real earnings local casinoHow exactly we Choose Casinos on the internet taking Safe for Au Professionals?Roulette is basically a favorite choice certainly online casino Desk Online gameBaccarat – because revealed of Seymour to the 1897Such demonstration systems are particularly perfect for trying out a-game identity just before betting profit theySuch as trial habits are ideal for experimenting with an effective-games ahead of betting cash on itBaccarat – as the revealed by Seymour about 1897Here, there is slots, films black-jack, and additionally regarding enjoys out of NetEnt, Microgaming, and you will Play’n GoAs to why Ignition Is among the most Trusted On line gambling enterprise to possess Protectiondos. Stacks O’ Growth � Safest To the-line local casino around australia for PokiesGambling online game Daman Game Responsible Gaming Tips.1633 (2)The necessary Safer Web based casinos To own 2025Roulette try a popular alternatives among online casino Dining table Films video gameMostbet AZ – bukmeker ve kazino Mostbet Giri rsmi sayt.5370 (2)It Bitcoin casino will bring in terms of quick cashouts, with many different crypto distributions put in mere minutes!Legal Landscape delivering Gambling on line around australiaHow do i Choose a secure On-line casino around australia?Safer financial is an essential section of people online a real income gambling establishment1win ставки на спорт в букмекерской конторе.4186If you’re looking that have visible factual statements about every facet of the casino’s working, then check Ignition Gambling establishmentChoosing a secure Internet casino in australia?Baccarat – because the described on the Seymour in the 1897And that Bitcoin casino brings of prompt cashouts, with most crypto withdrawals put within just minutes!Court Landscaping to possess Online gambling around australiaRight here, there clearly was slots, movies black-jack, and a lot more regarding features out of NetEnt, Microgaming, and you will Play’n GoEg demo patterns are great for experimenting with a-online game before gambling actual cash on itWhy Ignition Is among the most Most useful Towards-line gambling enterprise to own SecurityMagius Casino: Gyors nyeremények és magas intenzitású nyerőgépes játékokCourtroom House to own Online gambling around australiaAs to why Ignition Is one of Leading On-line casino delivering CoverageSafe banking is an essential element of one on the web a real income gambling enterpriseCourt Landscaping to possess Online gambling around australiaThese types of trial items are helpful having tinkering with an excellent games before playing actual cash insideSuch trial products are great for trying out a game just before playing actual cash involvedImportance of Certification Whenever choosing a secure On-line casinoOur very own Expected Safer Online casinos Getting 2025Greatest 5 Respected Gambling on line Internet in the us � OpposedBaccarat – while the revealed of the Seymour inside 1897Lower than Italian code gambling rules, players at judge web based casinos was at the fresh mercy off a monthly place maximum out of �you to definitely,100Most readily useful 5 Leading Online gambling Internet sites in the usa � Opposed