Current File : /home/escuelai/public_html/wp-content/plugins/learnpress/inc/admin/lp-admin-actions.php |
<?php
/**
* Defines the functions which called by hooks
*/
/***************************************/
/**
* Filter post types the user can access in admin
*
* @param $query
* @editor tungnx
* @modify 4.1.4 - comment - not use make redundancy
*/
/*function _learn_press_set_user_items( $query ) {
global $post_type, $pagenow, $wpdb;
if ( ! function_exists( 'wp_get_current_user' ) ) {
include( ABSPATH . 'wp-includes/pluggable.php' );
}
if ( ! did_action( 'plugin_loaded' ) || current_user_can( 'manage_options' ) || ! current_user_can( LP_TEACHER_ROLE ) || ! is_admin() || ( $pagenow != 'edit.php' ) ) {
return $query;
}
if ( ! in_array(
$post_type,
apply_filters(
'learn-press/filter-user-access-types',
array(
LP_COURSE_CPT,
LP_LESSON_CPT,
LP_QUIZ_CPT,
LP_QUESTION_CPT,
)
)
) ) {
return;
}
$items = $wpdb->get_col(
$wpdb->prepare(
"SELECT ID FROM $wpdb->posts
WHERE post_type = %s
AND post_author = %d",
$post_type,
get_current_user_id()
)
);
if ( count( $items ) == 0 ) {
$query->set( 'post_type', 'no-item-access' );
} else {
$query->set( 'post__in', $items );
}
add_filter( 'views_edit-' . $post_type . '', '_learn_press_restrict_view_items', 10 );
}
add_action( 'pre_get_posts', '_learn_press_set_user_items', 10 );*/
/**
* Restrict user views
*
* @param $views
*
* @return mixed
* @editor tungnx
* @modify 4.1.4 - comment - not see use anywhere
*/
/*function _learn_press_restrict_view_items( $views ) {
$post_type = get_query_var( 'post_type' );
$new_views = array(
'all' => __( 'All', 'learnpress' ),
'publish' => __( 'Published', 'learnpress' ),
'private' => __( 'Private', 'learnpress' ),
'pending' => __( 'Pending Review', 'learnpress' ),
'future' => __( 'Scheduled', 'learnpress' ),
'draft' => __( 'Draft', 'learnpress' ),
'trash' => __( 'Trash', 'learnpress' ),
);
$url = 'edit.php';
foreach ( $new_views as $view => $name ) {
$query = array(
'post_type' => $post_type,
);
if ( $view == 'all' ) {
$query['all_posts'] = 1;
$class = ( get_query_var( 'all_posts' ) == 1 || ( get_query_var( 'post_status' ) == '' && get_query_var( 'author' ) == '' ) ) ? ' class="current"' : '';
} else {
$query['post_status'] = $view;
$class = ( get_query_var( 'post_status' ) == $view ) ? ' class="current"' : '';
}
$result = new WP_Query( $query );
if ( $result->found_posts > 0 ) {
$views[ $view ] = sprintf(
'<a href="%s"' . $class . '>' . $name . ' <span class="count">(%d)</span></a>',
esc_url_raw( add_query_arg( $query, $url ) ),
$result->found_posts
);
} else {
unset( $views[ $view ] );
}
}
unset( $views['mine'] );
return $views;
}*/
/**
* Update permalink structure for course
*/
// function learn_press_update_permalink_structure() {
// global $pagenow;
// if ( $pagenow != 'options-permalink.php' ) {
// return;
// }
// if ( strtolower( $_SERVER['REQUEST_METHOD'] ) != 'post' ) {
// return;
// }
// $rewrite_prefix = '';
// $permalink_structure = ! empty( $_REQUEST['permalink_structure'] ) ? $_REQUEST['permalink_structure'] : '';
// if ( $permalink_structure ) {
// $rewrite_prefix = array();
// $segs = explode( '/', $permalink_structure );
// if ( sizeof( $segs ) ) {
// foreach ( $segs as $seg ) {
// if ( strpos( $seg, '%' ) !== false || $seg == 'archives' ) {
// break;
// }
// $rewrite_prefix[] = $seg;
// }
// }
// $rewrite_prefix = array_filter( $rewrite_prefix );
// if ( sizeof( $rewrite_prefix ) ) {
// $rewrite_prefix = join( '/', $rewrite_prefix ) . '/';
// } else {
// $rewrite_prefix = '';
// }
// }
// update_option( 'learn_press_permalink_structure', $rewrite_prefix );
// }
// add_action( 'init', 'learn_press_update_permalink_structure' );
/**
* Active Courses menu under LearnPress
* when user is editing course and course
* category.
*/
function learn_press_active_course_menu() {
$post_type = LP_Request::get( 'post_type' );
if ( ! $post_type ) {
return;
}
?>
<script>
jQuery( function( $ ) {
var $lpMainMenu = $( '#toplevel_page_learn_press' ),
href = 'edit.php?post_type=<?php echo esc_js( $_GET['post_type'] ); ?>',
$current = $( 'a[href="' + href + '"]', $lpMainMenu );
if ( $current.length ) {
$current.addClass( 'current' );
$current.parent( 'li' ).addClass( 'current' );
}
<?php if ( $post_type === LP_COURSE_CPT && LP_Request::get( 'taxonomy' ) === 'course_category' ) { ?>
$( 'body' ).removeClass( 'sticky-menu' );
$lpMainMenu.addClass( 'wp-has-current-submenu wp-menu-open' ).removeClass( 'wp-not-current-submenu' );
$lpMainMenu.children( 'a' ).addClass( 'wp-has-current-submenu wp-menu-open' ).removeClass( 'wp-not-current-submenu' );
<?php
}
?>
});
</script>
<?php
}
add_action( 'admin_footer', 'learn_press_active_course_menu' );
/*
* Display tabs related to course in admin when user
* viewing/editing course/category/tags.
*/
function learn_press_admin_course_tabs() {
if ( ! is_admin() ) {
return;
}
$wp_screen = get_current_screen();
if ( ! $wp_screen || 'edit-lp_course' !== $wp_screen->id ) {
return;
}
$admin_tabs = apply_filters(
'learn_press_admin_tabs_info',
array(
10 => array(
'link' => 'edit.php?post_type=lp_course',
'name' => esc_html__( 'Courses', 'learnpress' ),
'id' => 'edit-lp_course',
),
20 => array(
'link' => 'edit-tags.php?taxonomy=course_category',
'name' => esc_html__( 'Categories', 'learnpress' ),
'id' => 'edit-course_category',
),
30 => array(
'link' => 'edit-tags.php?taxonomy=course_tag',
'name' => esc_html__( 'Tags', 'learnpress' ),
'id' => 'edit-course_tag',
),
)
);
ksort( $admin_tabs );
$tabs = array();
foreach ( $admin_tabs as $key => $value ) {
array_push( $tabs, $key );
}
$pages = apply_filters(
'learn_press_admin_tabs_on_pages',
array( 'edit-lp_course', 'edit-course_category', 'edit-course_tag', 'lp_course' )
);
$admin_tabs_on_page = array();
foreach ( $pages as $page ) {
$admin_tabs_on_page[ $page ] = $tabs;
}
$current_page_id = get_current_screen()->id;
$current_user = wp_get_current_user();
if ( ! in_array( 'administrator', $current_user->roles ) ) {
return;
}
if ( ! empty( $admin_tabs_on_page[ $current_page_id ] ) && count( $admin_tabs_on_page[ $current_page_id ] ) ) {
echo '<h2 class="nav-tab-wrapper lp-nav-tab-wrapper">';
foreach ( $admin_tabs_on_page[ $current_page_id ] as $admin_tab_id ) {
$class = ( $admin_tabs[ $admin_tab_id ]['id'] == $current_page_id ) ? 'nav-tab nav-tab-active' : 'nav-tab';
// echo '<a href="' . admin_url( $admin_tabs[ $admin_tab_id ]['link'] ) . '" class="' . $class . ' nav-tab-' . $admin_tabs[ $admin_tab_id ]['id'] . '">' . $admin_tabs[ $admin_tab_id ]['name'] . '</a>';
echo wp_kses(
sprintf(
'<a href="%s" class="%s">%s</a>',
admin_url( $admin_tabs[ $admin_tab_id ]['link'] ),
$class . ' nav-tab-' . $admin_tabs[ $admin_tab_id ]['id'],
$admin_tabs[ $admin_tab_id ]['name']
),
true
);
}
echo '</h2>';
}
}
add_action( 'all_admin_notices', 'learn_press_admin_course_tabs' );
/**
* Create some warning messages:
* + LP Profile page is not setup
* + LP Checkout page is not setup
*/
if ( ! function_exists( 'lp_remove_admin_warning' ) ) {
function lp_remove_admin_warning() {
if ( isset( $_POST['action'] ) && $_POST['action'] === 'lp_remove_admin_warning' && isset( $_POST['name'] ) ) {
if ( empty( $transient_profile ) ) {
set_transient( $_POST['name'], true, 60 * 60 * 12 );
}
echo 'success';
wp_die();
}
echo 'error';
wp_die();
}
}
//add_action( 'wp_ajax_lp_remove_admin_warning', 'lp_remove_admin_warning' );