File "Private_Course_Access.php"
Full Path: /home/dcqnetm/intuns/wp-content/plugins/tutor/classes/Private_Course_Access.php
File size: 1.31 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace TUTOR;
if ( ! defined( 'ABSPATH' ) )
exit;
class Private_Course_Access {
private $allow_empty=false;
public function __construct() {
add_action('pre_get_posts', array($this, 'enable_private_access'));
}
public function enable_private_access($query=null){
if(!is_admin() && is_user_logged_in() ){
global $wpdb;
$p_name = isset($query->query['name']) ? $query->query['name'] : '';
$p_name = esc_sql($p_name);
if($this->allow_empty && empty($p_name)){
$query->set('post_status', array('private', 'publish'));
return;
}
// Get using raw query to speed up
$course_post_type = tutor()->course_post_type;
$private_query = "SELECT ID, post_parent FROM {$wpdb->posts} WHERE post_type='{$course_post_type}' AND post_name='{$p_name}' AND post_status='private'";
$result = $wpdb->get_results($private_query);
$private_course_id = (is_array($result) && isset($result[0])) ? $result[0]->ID : 0;
if($private_course_id>0 && tutor_utils()->is_enrolled($private_course_id)){
$this->allow_empty = true;
$query->set('post_status', array('private', 'publish'));
}
}
}
}