<?php /** * Notification Controller: Enrollment * * @package LifterLMS/Notifications/Controllers/Classes * * @since 3.8.0 * @version 3.8.0 */ defined( 'ABSPATH' ) || exit; /** * Notification Controller: Enrollment * * @since 3.8.0 */ class LLMS_Notification_Controller_Enrollment extends LLMS_Abstract_Notification_Controller { /** * Trigger Identifier * * @var [type] */ public $id = 'enrollment'; /** * Number of accepted arguments passed to the callback function * * @var integer */ protected $action_accepted_args = 2; /** * Action hooks used to trigger sending of the notification * * @var array */ protected $action_hooks = array( 'llms_user_enrolled_in_course', 'llms_user_added_to_membership_level', ); /** * Callback function, called after enrollment into a course * * @param int $user_id WP User ID of the user * @param int $post_id WP Post ID of the course or membership * @return void * @since 3.8.0 * @version 3.8.0 */ public function action_callback( $user_id = null, $post_id = null ) { $this->user_id = $user_id; $this->post_id = $post_id; $this->course = llms_get_post( $post_id ); $this->send(); } /** * Takes a subscriber type (student, author, etc) and retrieves a User ID * * @param string $subscriber subscriber type string * @return int|false * @since 3.8.0 * @version 3.8.0 */ protected function get_subscriber( $subscriber ) { switch ( $subscriber ) { case 'author': $uid = $this->course->get( 'author' ); break; case 'student': $uid = $this->user_id; break; default: $uid = false; } return $uid; } /** * Get the translatable title for the notification * used on settings screens * * @return string * @since 3.8.0 * @version 3.8.0 */ public function get_title() { return __( 'Enrollment', 'lifterlms' ); } /** * Setup the subscriber options for the notification * * @param string $type notification type id * @return array * @since 3.8.0 * @version 3.8.0 */ protected function set_subscriber_options( $type ) { $options = array(); switch ( $type ) { case 'basic': $options[] = $this->get_subscriber_option_array( 'student', 'yes' ); $options[] = $this->get_subscriber_option_array( 'author', 'no' ); break; case 'email': $options[] = $this->get_subscriber_option_array( 'author', 'no' ); $options[] = $this->get_subscriber_option_array( 'custom', 'no' ); break; } return $options; } } return LLMS_Notification_Controller_Enrollment::instance();