lifterlms_template_student_dashboard_my_notifications()
Template for My Notifications student dashboard endpoint
Return Return
(void)
Source Source
File: includes/functions/llms.functions.templates.dashboard.php
function lifterlms_template_student_dashboard_my_notifications() { $url = llms_get_endpoint_url( 'notifications', '', llms_get_page_url( 'myaccount' ) ); $sections = array( array( 'url' => $url, 'name' => __( 'View Notifications', 'lifterlms' ), ), array( 'url' => add_query_arg( 'sdview', 'prefs', $url ), 'name' => __( 'Manage Preferences', 'lifterlms' ), ), ); $view = isset( $_GET['sdview'] ) ? llms_filter_input( INPUT_GET, 'sdview' ) : 'view'; if ( 'view' === $view ) { $page = llms_get_paged_query_var(); $notifications = new LLMS_Notifications_Query( array( 'page' => $page, /** * Filter the number of notifications per page to be displayed in the dashboard's "my_notifications" tab. * * @since unknown * * @param int $per_page The number of notifications per page to be displayed. Default `25`. */ 'per_page' => apply_filters( 'llms_sd_my_notifications_per_page', 25 ), 'subscriber' => get_current_user_id(), 'sort' => array( 'created' => 'DESC', 'id' => 'DESC', ), 'types' => 'basic', ) ); $pagination = array( 'max' => $notifications->get_max_pages(), 'current' => $page, ); $args = array( 'notifications' => $notifications->get_notifications(), 'pagination' => $pagination, 'sections' => $sections, ); } else { /** * Filter the types of subscriber notification which can be managed * * @since unknown * * @param array $types The array of manageable types. Default is `array( 'email' )`. */ $types = apply_filters( 'llms_notification_subscriber_manageable_types', array( 'email' ) ); $settings = array(); $student = new LLMS_Student( get_current_user_id() ); foreach ( llms()->notifications()->get_controllers() as $controller ) { foreach ( $types as $type ) { $configs = $controller->get_subscribers_settings( $type ); if ( in_array( 'student', array_keys( $configs ), true ) && 'yes' === $configs['student'] ) { if ( ! isset( $settings[ $type ] ) ) { $settings[ $type ] = array(); } $settings[ $type ][ $controller->id ] = array( 'name' => $controller->get_title(), 'value' => $student->get_notification_subscription( $type, $controller->id, 'yes' ), ); } } } $args = array( 'sections' => $sections, 'settings' => $settings, ); } add_filter( 'paginate_links', 'llms_modify_dashboard_pagination_links' ); llms_get_template( 'myaccount/my-notifications.php', $args ); remove_filter( 'paginate_links', 'llms_modify_dashboard_pagination_links' ); }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
6.3.0 | Fix paged query not working when using plain permalinks. |
5.9.0 | Stop using deprecated FILTER_SANITIZE_STRING . Fix how the protected LLMS_Notifications_Query::$max_pages property is accessed. |
3.37.16 | Fixed typo when comparing the current view. |
3.37.15 | Use in_array() 's strict comparison. |
3.35.0 | Sanitize $_GET data. |
3.26.3 | Introduced. |