function save()
 {
     parent::save();
     $course_permalink = $_POST['learn_press_course_base'];
     if ($course_permalink == 'custom') {
         // Get permalink without slashes
         $course_permalink = trim($_POST['course_permalink_structure'], '/');
         // This is an invalid base structure and breaks pages
         if ('%course_category%' == $course_permalink) {
             $course_permalink = _x('courses', 'slug', 'learn_press') . '/' . $course_permalink;
         }
         // Prepending slash
         $course_permalink = '/' . $course_permalink;
     } elseif (empty($course_permalink)) {
         $course_permalink = false;
     }
     $course_base = untrailingslashit($course_permalink);
     update_option('learn_press_course_base', $course_base);
     // Shop base may require verbose page rules if nesting pages
     $courses_page_id = learn_press_get_page_id('courses');
     $courses_permalink = $courses_page_id > 0 && get_post($courses_page_id) ? get_page_uri($courses_page_id) : _x('courses', 'default-slug', 'learn_press');
     if ($courses_page_id && trim($course_base, '/') === $courses_permalink) {
         update_option('learn_press_use_verbose_page_rules', 'yes');
     } else {
         delete_option('learn_press_use_verbose_page_rules');
     }
 }
예제 #2
0
 /**
  * Register course post type
  */
 function register_post_type()
 {
     $labels = array('name' => _x('Courses', 'Post Type General Name', 'learn_press'), 'singular_name' => _x('Course', 'Post Type Singular Name', 'learn_press'), 'menu_name' => __('Courses', 'learn_press'), 'parent_item_colon' => __('Parent Item:', 'learn_press'), 'all_items' => __('Courses', 'learn_press'), 'view_item' => __('View Course', 'learn_press'), 'add_new_item' => __('Add New Course', 'learn_press'), 'add_new' => __('Add New', 'learn_press'), 'edit_item' => __('Edit Course', 'learn_press'), 'update_item' => __('Update Course', 'learn_press'), 'search_items' => __('Search Course', 'learn_press'), 'not_found' => __('No course found', 'learn_press'), 'not_found_in_trash' => __('No course found in Trash', 'learn_press'));
     $args = array('labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'has_archive' => ($page_id = learn_press_get_page_id('courses')) && get_post($page_id) ? get_page_uri($page_id) : 'courses', 'capability_type' => LPR_COURSE_CPT, 'map_meta_cap' => true, 'show_in_menu' => 'learn_press', 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'taxonomies' => array('course_category', 'course_tag'), 'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'comments', 'author'), 'hierarchical' => true, 'rewrite' => array('slug' => 'courses', 'hierarchical' => true, 'with_front' => false));
     register_post_type(LPR_COURSE_CPT, $args);
     register_taxonomy('course_category', array(LPR_COURSE_CPT), array('label' => __('Course Categories', 'learn_press'), 'labels' => array('name' => __('Course Categories', 'learn_press'), 'menu_name' => __('Category', 'learn_press'), 'singular_name' => __('Category', 'learn_press'), 'add_new_item' => __('Add New Course Category', 'learn_press'), 'all_items' => __('All Categories', 'learn_press')), 'query_var' => true, 'public' => true, 'hierarchical' => true, 'show_ui' => true, 'show_in_menu' => 'learn_press', 'show_admin_column' => true, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'rewrite' => array('slug' => 'course_category', 'hierarchical' => true, 'with_front' => false)));
     register_taxonomy('course_tag', array(LPR_COURSE_CPT), array('labels' => array('name' => __('Course Tags', 'learn_press'), 'singular_name' => __('Tag', 'learn_press'), 'search_items' => __('Search Course Tags'), 'popular_items' => __('Popular Course Tags'), 'all_items' => __('All Course Tags'), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __('Edit Course Tag'), 'update_item' => __('Update Course Tag'), 'add_new_item' => __('Add New Course Tag'), 'new_item_name' => __('New Course Tag Name'), 'separate_items_with_commas' => __('Separate tags with commas'), 'add_or_remove_items' => __('Add or remove tags'), 'choose_from_most_used' => __('Choose from the most used tags'), 'menu_name' => __('Tags')), 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_menu' => 'learn_press', 'update_count_callback' => '_update_post_term_count', 'query_var' => true));
     if (!is_admin()) {
         LPR_Assets::enqueue_script('tipsy', LPR_PLUGIN_URL . '/assets/js/jquery.tipsy.js');
         LPR_Assets::enqueue_style('tipsy', LPR_PLUGIN_URL . '/assets/css/tipsy.css');
     }
 }
 static function auto_shortcode($template)
 {
     if (is_page()) {
         global $post, $wp_query, $wp;
         $page_id = $wp_query->queried_object_id;
         if ($page_id == learn_press_get_page_id('checkout')) {
             if (!preg_match('/\\[learn_press_checkout\\s?(.*)\\]/', $post->post_content)) {
                 $post->post_content .= '[learn_press_checkout]';
             }
         } elseif ($page_id == learn_press_get_page_id('profile')) {
             if (empty($wp->query_vars['user'])) {
                 $current_user = wp_get_current_user();
                 if (!empty($current_user->user_login)) {
                     wp_redirect(learn_press_get_endpoint_url('', $current_user->user_login, learn_press_get_page_link('profile')));
                     die;
                 } else {
                     learn_press_404_page();
                 }
             } else {
                 $query = array();
                 parse_str($wp->matched_query, $query);
                 if ($query) {
                     $profile_endpoints = (array) LP()->settings->get('profile_endpoints');
                     $endpoints = array_keys($profile_endpoints);
                     foreach ($query as $k => $v) {
                         if ($k == 'view') {
                             if (!$v) {
                                 $v = reset($profile_endpoints);
                             }
                             if (!in_array($v, apply_filters('learn_press_profile_tab_endpoints', $profile_endpoints))) {
                                 learn_press_404_page();
                             }
                         }
                         if (!empty($v)) {
                             $wp->query_vars[$k] = $v;
                         }
                     }
                 }
             }
             if (!preg_match('/\\[learn_press_profile\\s?(.*)\\]/', $post->post_content)) {
                 $post->post_content .= '[learn_press_profile]';
             }
         } elseif ($page_id == learn_press_get_page_id('cart')) {
             if (!preg_match('/\\[learn_press_cart\\s?(.*)\\]/', $post->post_content)) {
                 $post->post_content .= '[learn_press_cart]';
             }
         }
     }
     return $template;
 }
예제 #4
0
/**
 * get confirm order URL
 *
 * @param int $order_id
 * @return string
 */
function learn_press_get_order_confirm_url($order_id = 0)
{
    $url = '';
    if (($confirm_page_id = learn_press_get_page_id('taken_course_confirm')) && get_post($confirm_page_id)) {
        $url = get_permalink($confirm_page_id);
        if ($order_id) {
            $url = join(preg_match('!\\?!', $url) ? '&' : '?', array($url, "order_id={$order_id}"));
        }
    } else {
        $order = new LPR_Order($order_id);
        if (($items = $order->get_items()) && !empty($items->products)) {
            $course = reset($items->products);
            $url = get_permalink($course['id']);
        } else {
            $url = get_site_url();
        }
    }
    return $url;
}
 function save()
 {
     parent::save();
     $course_permalink = $_POST['learn_press_course_base'];
     if ($course_permalink == 'custom') {
         $course_permalink = trim($_POST['course_permalink_structure'], '/');
         if ('%course_category%' == $course_permalink) {
             $course_permalink = _x('courses', 'slug', 'learn_press') . '/' . $course_permalink;
         }
         $course_permalink = '/' . $course_permalink;
     } elseif (empty($course_permalink)) {
         $course_permalink = false;
     }
     $course_base = untrailingslashit($course_permalink);
     update_option('learn_press_course_base', $course_base);
     $courses_page_id = learn_press_get_page_id('courses');
     $courses_permalink = $courses_page_id > 0 && get_post($courses_page_id) ? get_page_uri($courses_page_id) : _x('courses', 'default-slug', 'learn_press');
     if ($courses_page_id && trim($course_base, '/') === $courses_permalink) {
         update_option('learn_press_use_verbose_page_rules', 'yes');
     } else {
         delete_option('learn_press_use_verbose_page_rules');
     }
 }
function learn_press_edit_admin_bar()
{
    global $wp_admin_bar;
    if (($profile = learn_press_get_page_id('profile')) && get_post_type($profile) == 'page' && LP()->settings->get('admin_bar_link') == 'yes') {
        $text = LP()->settings->get('admin_bar_link_text');
        $course_profile = array();
        $course_profile['id'] = 'course_profile';
        $course_profile['parent'] = 'user-actions';
        $course_profile['title'] = $text ? $text : get_the_title($profile);
        $course_profile['href'] = learn_press_get_page_link('profile');
        $course_profile['meta']['target'] = LP()->settings->get('admin_bar_link_target');
        $wp_admin_bar->add_menu($course_profile);
    }
    $current_user = wp_get_current_user();
    // add `be teacher` link
    if (in_array(LP()->teacher_role, $current_user->roles) || in_array('administrator', $current_user->roles)) {
        return;
    }
    //if ( !class_exists( 'LP_Admin_Settings' ) ) return;
    /**
     * $settings = LP_Admin_Settings::instance( 'general' );
     * if ( $settings->get( 'instructor_registration' ) ) {
     * $be_teacher           = array();
     * $be_teacher['id']     = 'be_teacher';
     * $be_teacher['parent'] = 'user-actions';
     * $be_teacher['title']  = __( 'Become An Instructor', 'learn_press' );
     * $be_teacher['href']   = '#';
     * $wp_admin_bar->add_menu( $be_teacher );
     * }*/
}
예제 #7
0
<?php

$settings = LP()->settings;
global $wp_post_types;
if (!empty($wp_post_types[LP()->course_post_type])) {
    $course_type = $wp_post_types[LP()->course_post_type];
    $default_courses_slug = $course_type->rewrite['slug'];
} else {
    $default_courses_slug = '';
}
$course_permalink = $settings->get('course_base');
$courses_page_id = learn_press_get_page_id('courses');
$base_slug = urldecode($courses_page_id > 0 && get_post($courses_page_id) ? get_page_uri($courses_page_id) : _x('courses', 'default-slug', 'learn_press'));
$course_base = _x('course', 'default-slug', 'learn_press');
$structures = array(0 => array('value' => '', 'text' => __('Default', 'learn_press'), 'code' => esc_html(home_url()) . '/?lp_course=sample-course'), 1 => array('value' => '/' . trailingslashit($course_base), 'text' => __('Course', 'learn_press'), 'code' => esc_html(sprintf('%s/%s/sample-course/', home_url(), $course_base))), 2 => array('value' => '/' . trailingslashit($base_slug), 'text' => __('Courses base', 'learn_press'), 'code' => esc_html(sprintf('%s/%s/sample-course/', home_url(), $base_slug))), 3 => array('value' => '/' . trailingslashit($base_slug) . trailingslashit('%course_category%'), 'text' => __('Courses base with category', 'learn_press'), 'code' => esc_html(sprintf('%s/%s/course-category/sample-course/', home_url(), $base_slug))));
$is_custom = true;
foreach ($structures as $k => $structure) {
    ?>
	<tr<?php 
    if ($k == 2 || $k == 3) {
        echo ' class="learn-press-courses-page-id';
        echo !$courses_page_id ? ' hide-if-js"' : '""';
    }
    ?>
 >
		<th>
			<?php 
    $is_checked = checked($course_permalink == '' && $structure['value'] == '' || $structure['value'] == trailingslashit($course_permalink), true, false);
    if ($is_custom && $is_checked) {
        $is_custom = false;
    }
 function process_order_paypal_standard()
 {
     if (!empty($_REQUEST['learn-press-transaction-method']) && 'paypal-standard' == $_REQUEST['learn-press-transaction-method']) {
         // if we have a paypal-nonce in $_REQUEST that meaning user has clicked go back to our site after finished the transaction
         // so, create a new order
         if (!empty($_REQUEST['paypal-nonce']) && wp_verify_nonce($_REQUEST['paypal-nonce'], 'learn-press-paypal-nonce')) {
             if (!empty($_REQUEST['tx'])) {
                 //if PDT is enabled
                 $transaction_id = $_REQUEST['tx'];
             } else {
                 if (!empty($_REQUEST['txn_id'])) {
                     //if PDT is not enabled
                     $transaction_id = $_REQUEST['txn_id'];
                 } else {
                     $transaction_id = NULL;
                 }
             }
             if (!empty($_REQUEST['cm'])) {
                 $transient_transaction_id = $_REQUEST['cm'];
             } else {
                 if (!empty($_REQUEST['custom'])) {
                     $transient_transaction_id = $_REQUEST['custom'];
                 } else {
                     $transient_transaction_id = NULL;
                 }
             }
             if (!empty($_REQUEST['st'])) {
                 //if PDT is enabled
                 $transaction_status = $_REQUEST['st'];
             } else {
                 if (!empty($_REQUEST['payment_status'])) {
                     //if PDT is not enabled
                     $transaction_status = $_REQUEST['payment_status'];
                 } else {
                     $transaction_status = NULL;
                 }
             }
             if (!empty($transaction_id) && !empty($transient_transaction_id) && !empty($transaction_status)) {
                 $user = learn_press_get_current_user();
                 try {
                     //If the transient still exists, delete it and add the official transaction
                     if ($transaction_object = learn_press_get_transient_transaction('lpps', $transient_transaction_id)) {
                         learn_press_delete_transient_transaction('lpps', $transient_transaction_id);
                         $order_id = $this->get_order_id($transaction_id);
                         $order_id = learn_press_add_transaction(array('order_id' => $order_id, 'method' => 'paypal-standard', 'method_id' => $transaction_id, 'status' => $transaction_status, 'user_id' => $user->ID, 'transaction_object' => $transaction_object['transaction_object']));
                         wp_redirect(($confirm_page_id = learn_press_get_page_id('taken_course_confirm')) && get_post($confirm_page_id) ? learn_press_get_order_confirm_url($order_id) : get_site_url());
                         die;
                     }
                 } catch (Exception $e) {
                     return false;
                 }
             } else {
                 if (is_null($transaction_id) && is_null($transient_transaction_id) && is_null($transaction_status)) {
                 }
             }
         }
     }
     wp_redirect(get_site_url());
     die;
 }
예제 #9
0
/**
 * Action when user press the "Take this course" button
 *
 * @param $course_id
 * @param string $payment_method
 */
function learn_press_take_course($course_id, $payment_method = '')
{
    $user = learn_press_get_current_user();
    $can_take_course = apply_filters('learn_press_before_take_course', true, $user->ID, $course_id, $payment_method);
    if ($can_take_course) {
        if (learn_press_is_free_course($course_id)) {
            if ($order_id = learn_press_add_transaction(array('method' => 'free', 'method_id' => '', 'status' => '', 'user_id' => $user->ID, 'transaction_object' => learn_press_generate_transaction_object()))) {
                learn_press_update_order_status($order_id, 'Completed');
                learn_press_add_message('message', __('Congratulations! You have enrolled this course'));
                $json = array('result' => 'success', 'redirect' => ($confirm_page_id = learn_press_get_page_id('taken_course_confirm')) && get_post($confirm_page_id) ? learn_press_get_order_confirm_url($order_id) : get_permalink($course_id));
                learn_press_send_json($json);
            }
        } else {
            if (has_filter('learn_press_take_course_' . $payment_method)) {
                $order = null;
                $result = apply_filters('learn_press_take_course_' . $payment_method, $order);
                $result = apply_filters('learn_press_payment_result', $result, $order);
                if (is_ajax()) {
                    learn_press_send_json($result);
                    exit;
                } else {
                    wp_redirect($result['redirect']);
                    exit;
                }
            } else {
                wp_die(__('Invalid payment method.', 'learn_press'));
            }
        }
    } else {
        learn_press_add_message('error', __('Sorry! You can not enroll to this course'));
        $json = array('result' => 'error', 'redirect' => get_permalink($course_id));
        echo '<!--LPR_START-->' . json_encode($json) . '<!--LPR_END-->';
    }
}
function learn_press_template_redirect()
{
    global $wp_query, $wp;
    // When default permalinks are enabled, redirect shop page to post type archive url
    if (!empty($_GET['page_id']) && get_option('permalink_structure') == "" && $_GET['page_id'] == learn_press_get_page_id('courses')) {
        wp_safe_redirect(get_post_type_archive_link('lp_course'));
        exit;
    }
}
예제 #11
0
 /**
  * Register course post type
  */
 static function register_post_type()
 {
     $settings = LP_Settings::instance();
     $labels = array('name' => _x('Courses', 'Post Type General Name', 'learn_press'), 'singular_name' => _x('Course', 'Post Type Singular Name', 'learn_press'), 'menu_name' => __('Courses', 'learn_press'), 'parent_item_colon' => __('Parent Item:', 'learn_press'), 'all_items' => __('Courses', 'learn_press'), 'view_item' => __('View Course', 'learn_press'), 'add_new_item' => __('Add New Course', 'learn_press'), 'add_new' => __('Add New', 'learn_press'), 'edit_item' => __('Edit Course', 'learn_press'), 'update_item' => __('Update Course', 'learn_press'), 'search_items' => __('Search Course', 'learn_press'), 'not_found' => sprintf(__('You have not got any course yet. Click <a href="%s">Add new</a> to start', 'learn_press'), admin_url('post-new.php?post_type=lp_course')), 'not_found_in_trash' => __('No course found in Trash', 'learn_press'));
     $course_permalink = empty($course_base = $settings->get('course_base')) ? _x('courses', 'slug', 'learn_press') : $course_base;
     $args = array('labels' => $labels, 'public' => true, 'query_var' => true, 'publicly_queryable' => true, 'show_ui' => true, 'has_archive' => ($page_id = learn_press_get_page_id('courses')) && get_post($page_id) ? get_page_uri($page_id) : 'course', 'capability_type' => LP_COURSE_CPT, 'map_meta_cap' => true, 'show_in_menu' => 'learn_press', 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'taxonomies' => array('course_category', 'course_tag'), 'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'comments', 'author'), 'hierarchical' => true, 'rewrite' => array('slug' => $course_permalink, 'hierarchical' => true, 'with_front' => false));
     register_post_type(LP_COURSE_CPT, $args);
     register_taxonomy('course_category', array(LP_COURSE_CPT), array('label' => __('Course Categories', 'learn_press'), 'labels' => array('name' => __('Course Categories', 'learn_press'), 'menu_name' => __('Category', 'learn_press'), 'singular_name' => __('Category', 'learn_press'), 'add_new_item' => __('Add New Course Category', 'learn_press'), 'all_items' => __('All Categories', 'learn_press')), 'query_var' => true, 'public' => true, 'hierarchical' => true, 'show_ui' => true, 'show_in_menu' => 'learn_press', 'show_admin_column' => true, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'rewrite' => array('slug' => empty($category_base = $settings->get('course_category_base')) ? _x('course-category', 'slug', 'learn_press') : $category_base, 'hierarchical' => true, 'with_front' => false)));
     register_taxonomy('course_tag', array(LP_COURSE_CPT), array('labels' => array('name' => __('Course Tags', 'learn_press'), 'singular_name' => __('Tag', 'learn_press'), 'search_items' => __('Search Course Tags', 'learn_press'), 'popular_items' => __('Popular Course Tags', 'learn_press'), 'all_items' => __('All Course Tags', 'learn_press'), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __('Edit Course Tag', 'learn_press'), 'update_item' => __('Update Course Tag', 'learn_press'), 'add_new_item' => __('Add New Course Tag', 'learn_press'), 'new_item_name' => __('New Course Tag Name', 'learn_press'), 'separate_items_with_commas' => __('Separate tags with commas', 'learn_press'), 'add_or_remove_items' => __('Add or remove tags', 'learn_press'), 'choose_from_most_used' => __('Choose from the most used tags', 'learn_press'), 'menu_name' => __('Tags', 'learn_press')), 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_menu' => 'learn_press', 'update_count_callback' => '_update_post_term_count', 'query_var' => true, 'rewrite' => array('slug' => empty($tag_base = $settings->get('course_tag_base')) ? _x('course-tag', 'slug', 'learn_press') : $tag_base, 'with_front' => false)));
     /*if ( !is_admin() ) {
     			LP_Assets::enqueue_script( 'tipsy', LP_PLUGIN_URL . '/assets/js/jquery.tipsy.js' );
     			LP_Assets::enqueue_style( 'tipsy', LP_PLUGIN_URL . '/assets/css/tipsy.css' );
     		}
     		flush_rewrite_rules();*/
 }
예제 #12
0
/**
 * Return true if user is in checking out page
 *
 * @return bool
 */
function learn_press_is_checkout()
{
    return is_page(learn_press_get_page_id('checkout')) || apply_filters('learn_press_is_checkout', false) ? true : false;
}
예제 #13
0
/**
 * Controls WP displays the courses in a page which setup to display on homepage
 *
 * @param $q
 */
function learn_press_pre_get_posts($q)
{
    // We only want to affect the main query
    if (!$q->is_main_query()) {
        return;
    }
    // Fix for verbose page rules
    if ($GLOBALS['wp_rewrite']->use_verbose_page_rules && isset($q->queried_object_id) && $q->queried_object_id === learn_press_get_page_id('courses')) {
        $q->set('post_type', 'lpr_course');
        $q->set('page', '');
        $q->set('pagename', '');
        // Fix conditional Functions
        $q->is_archive = true;
        $q->is_post_type_archive = true;
        $q->is_singular = false;
        $q->is_page = false;
    }
    // Fix for endpoints on the homepage
    if ($q->is_home() && 'page' == get_option('show_on_front') && get_option('page_on_front') != $q->get('page_id')) {
        $_query = wp_parse_args($q->query);
        /*if ( ! empty( $_query ) && array_intersect( array_keys( $_query ), array_keys( $this->query_vars ) ) ) {
        			$q->is_page     = true;
        			$q->is_home     = false;
        			$q->is_singular = true;
        
        			$q->set( 'page_id', get_option('page_on_front') );
        		}*/
    }
    // When orderby is set, WordPress shows posts. Get around that here.
    if ($q->is_home() && 'page' == get_option('show_on_front') && get_option('page_on_front') == learn_press_get_page_id('courses')) {
        $_query = wp_parse_args($q->query);
        if (empty($_query) || !array_diff(array_keys($_query), array('preview', 'page', 'paged', 'cpage', 'orderby'))) {
            $q->is_page = true;
            $q->is_home = false;
            $q->set('page_id', get_option('page_on_front'));
            $q->set('post_type', 'lpr_course');
        }
    }
    if ($q->is_page() && 'page' == get_option('show_on_front') && $q->get('page_id') == learn_press_get_page_id('courses') && learn_press_get_page_id('courses')) {
        echo learn_press_get_page_id('courses'), ',', $q->get('page_id');
        $q->set('post_type', 'lpr_course');
        $q->set('page_id', '');
        if (isset($q->query['paged'])) {
            $q->set('paged', $q->query['paged']);
        }
        global $wp_post_types;
        $course_page = get_post(learn_press_get_page_id('courses'));
        $wp_post_types['lpr_course']->ID = $course_page->ID;
        $wp_post_types['lpr_course']->post_title = $course_page->post_title;
        $wp_post_types['lpr_course']->post_name = $course_page->post_name;
        $wp_post_types['lpr_course']->post_type = $course_page->post_type;
        $wp_post_types['lpr_course']->ancestors = get_ancestors($course_page->ID, $course_page->post_type);
        $q->is_singular = false;
        $q->is_post_type_archive = true;
        $q->is_archive = true;
        $q->is_page = true;
    } elseif (!$q->is_post_type_archive('lpr_course') && !$q->is_tax(get_object_taxonomies('lpr_course'))) {
        return;
    }
}
예제 #14
0
 /**
  * Shop breadcrumb
  */
 private function add_crumbs_courses()
 {
     if (get_option('page_on_front') == learn_press_get_page_id('courses')) {
         return;
     }
     $_name = learn_press_get_page_id('courses') ? get_the_title(learn_press_get_page_id('courses')) : '';
     if (!$_name) {
         $product_post_type = get_post_type_object('product');
         $_name = $product_post_type->labels->singular_name;
     }
     $this->add_crumb($_name, get_post_type_archive_link('lp_course'));
 }
예제 #15
0
function learn_press_pre_get_post($q)
{
    if (is_admin()) {
        return $q;
    }
    global $post_type;
    if ($q->is_page() && ($q->get('page_id') == ($page_id = learn_press_get_page_id('courses')) && $page_id)) {
        $q->set('post_type', 'lpr_course');
        $q->set('page_id', '');
        if (isset($q->query['paged'])) {
            $q->set('paged', $q->query['paged']);
        }
        global $wp_post_types;
        $courses_page = get_post($page_id);
        $wp_post_types['lpr_course']->ID = $courses_page->ID;
        $wp_post_types['lpr_course']->post_title = $courses_page->post_title;
        $wp_post_types['lpr_course']->post_name = $courses_page->post_name;
        $wp_post_types['lpr_course']->post_type = $courses_page->post_type;
        $wp_post_types['lpr_course']->ancestors = get_ancestors($courses_page->ID, $courses_page->post_type);
        $q->is_singular = false;
        $q->is_post_type_archive = true;
        $q->is_archive = true;
        $q->is_page = true;
    }
    return $q;
}