at path:
ROOT
/
wp-content
/
plugins
/
tutor
/
includes
/
droip
/
backend
/
Pages.php
run:
R
W
Run
ElementGenerator
DIR
2026-04-14 05:34:27
R
W
Run
Ajax.php
5.03 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
Backend.php
746 By
2026-04-14 05:34:27
R
W
Run
Delete
Rename
Editor.php
894 By
2026-04-14 05:34:27
R
W
Run
Delete
Rename
Frontend.php
321 By
2026-04-14 05:34:27
R
W
Run
Delete
Rename
Helper.php
863 By
2026-04-14 05:34:27
R
W
Run
Delete
Rename
Hooks.php
40.91 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
Iframe.php
1.37 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
Pages.php
8.23 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
VisibilityCondition.php
28.88 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
error_log
up
📄
Pages.php
Save
<?php /** * Preview script for html markup generator * * @package tutor-droip-elements */ namespace TutorLMSDroip; use Droip\HelperFunctions; use TUTOR\Input; use TutorPro\Subscription\Settings; use TutorPro\Subscription\Subscription; if (! defined('ABSPATH')) { exit; // Exit if accessed directly. } /** * Class Pages * This class is used to define all helper functions. */ class Pages { /** * Class constructor * * @since 1.0.0 */ public function __construct() { /** * Manage Post API call's */ add_action('wp_ajax_nopriv_tde_get_apis', [$this, 'tde_get_apis']); add_action('wp_ajax_tde_get_apis', [$this, 'tde_get_apis']); // add_action('template_redirect', [$this, 'control_pages_content']); add_action('template_include', [$this, 'may_be_change_template'], PHP_INT_MAX); add_filter('droip_assets_should_load', [$this, 'load_droip_assets']); add_action('wp_enqueue_scripts', [$this, 'load_assets'], 100); } /** * Get all APIs * * @since 1.0.0 */ public function tde_get_apis() { $course_template = Helper::get_course_template_posts(); $pages = []; foreach ($course_template as $key => $template) { $pages[] = [ 'id' => $template->ID, 'title' => $template->post_title, 'post_type' => $template->post_type, 'status' => $template->post_status, 'preview_url' => $template->guid, 'editor_url' => add_query_arg( [ 'action' => 'droip', 'post_id' => $template->ID, ], $template->guid ), ]; } wp_send_json_success($pages); } public function may_be_change_template($template_path) { $action = Input::get('action'); $load_for = Input::get('load_for'); if ($this->is_course_page() && ($action !== 'droip' || $load_for === 'droip-iframe')) { $template_path = $this->generate_page_using_full_canvas_template($template_path); } if ($this->is_course_bundle_page() && ($action !== 'droip' || $load_for === 'droip-iframe')) { $template_path = $this->generate_page_using_full_canvas_template($template_path); } if ($this->is_course_list_page() && ($action !== 'droip' || $load_for === 'droip-iframe')) { $template_path = $this->generate_utility_page_content_with_fullcanvas_template_using_type('lms_course_list', $template_path); } // if ($this->is_cart_page() && ($action !== 'droip' || $load_for === 'droip-iframe')) { // $template_path = $this->generate_utility_page_content_with_fullcanvas_template_using_type('lms_cart', $template_path); // } // if ($this->is_checkout_page() && ($action !== 'droip' || $load_for === 'droip-iframe')) { // $template_path = $this->generate_utility_page_content_with_fullcanvas_template_using_type('lms_checkout', $template_path); // } if ($this->is_membership_page() && ($action !== 'droip' || $load_for === 'droip-iframe')) { $template_path = $this->generate_utility_page_content_with_fullcanvas_template_using_type('lms_membership_page', $template_path); } return $template_path; } private function generate_utility_page_content_with_fullcanvas_template_using_type($type, $template_path) { $utility_page = HelperFunctions::find_utility_page_for_this_context($type); if ($utility_page) { $html = apply_filters( 'droip_html_generator', '', $utility_page['id'] ); $custom_data = [ 'droip_template_content' => $html, 'droip_template_id' => $utility_page['id'], ]; set_query_var('droip_custom_data', $custom_data); $template_path = DROIP_FULL_CANVAS_TEMPLATE_PATH; } return $template_path; } /** * Generate course page * * @since 1.0.0 */ private function generate_page_using_full_canvas_template($template_path) { $template = apply_filters('droip_template_finder', 'post', get_post(get_the_ID())); if ($template) { $course_template = get_post($template['id']); if ($course_template->post_status === 'publish') { $html = apply_filters( 'droip_html_generator', '', $course_template->ID ); $custom_data = [ 'droip_template_content' => $html, // Example: Get the current post ID 'droip_template_id' => $template['id'], ]; // Set a global variable with custom data to make it available in the template set_query_var('droip_custom_data', $custom_data); $template_path = DROIP_FULL_CANVAS_TEMPLATE_PATH; } } return $template_path; } /** * Load assets for preview page */ public function load_assets() { wp_enqueue_script(TDE_APP_PREFIX . '-tutor-droip-preview', TDE_PLUGIN_ROOT_BASE . 'build/js/preview.min.js', ['wp-i18n'], TDE_APP_VERSION, true); wp_enqueue_style(TDE_APP_PREFIX . '-tutor-droip-preview', TDE_PLUGIN_ROOT_BASE . 'build/css/preview.min.css', null, TDE_APP_VERSION); wp_localize_script(TDE_APP_PREFIX . '-tutor-droip-preview', TDE_APP_PREFIX, [ 'isLoggedIn' => is_user_logged_in(), ]); } /** * Load droip assets * * @param bool $default_value default value. * @return bool */ public function load_droip_assets($default_value) { if ($this->is_course_page() || $this->is_course_bundle_page()) { return true; } return $default_value; } /** * Check if current page is course page * * @return bool */ private function is_course_page() { global $wp_query; $tutor = tutor(); if ($wp_query->is_single && ! empty($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] === $tutor->course_post_type) { return true; } return false; } private function is_course_bundle_page() { global $wp_query; $tutor = tutor(); if ($wp_query->is_single && ! empty($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] === $tutor->bundle_post_type) { return true; } return false; } private function is_course_list_page() { global $wp_query; if (is_array($wp_query->query_vars['post_type']) && in_array('courses', $wp_query->query_vars['post_type']) && ! $wp_query->is_single) { if (isset($wp_query->query_vars['course-category']) || isset($wp_query->query_vars['course-tag'])) { return false; } return true; } return false; } private function is_membership_page() { if (tutor()->has_pro && Subscription::is_enabled()) { $page_id = Settings::get_pricing_page_id(); global $wp_query; if ($wp_query->is_page && $wp_query->post->ID === $page_id) { return true; } } return false; } private function is_cart_page() { global $wp_query; if (isset($wp_query->query['pagename']) && $wp_query->query['pagename'] === 'cart') { return true; } if (isset($wp_query->query['droip_utility_page_type']) && $wp_query->query['droip_utility_page_type'] === 'lms_cart') { return true; } return false; } private function is_checkout_page() { global $wp_query; if (isset($wp_query->query['pagename']) && $wp_query->query['pagename'] === 'checkout') { return true; } if (isset($wp_query->query['droip_utility_page_type']) && $wp_query->query['droip_utility_page_type'] === 'lms_cart') { return true; } return false; } }