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.<br> 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. |