Server IP : 209.38.156.173 / Your IP : 216.73.216.122 [ Web Server : Apache/2.4.52 (Ubuntu) System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.1.2-1ubuntu2.22 Disable Function : NONE Domains : 2 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/1534260/cwd/plugins/elementor-pro/modules/theme-builder/classes/ |
Upload File : |
<?php namespace ElementorPro\Modules\ThemeBuilder\Classes; use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document; use ElementorPro\Modules\ThemeBuilder\Module; use ElementorPro\Plugin; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Preview_Manager { public function __construct() { add_filter( 'elementor/query/get_query_args/current_query', [ $this, 'filter_query_control_args' ] ); add_filter( 'elementor/theme/posts_archive/query_posts/query_vars', [ $this, 'filter_query_control_args' ] ); add_filter( 'elementor_pro/dynamic_tags/post_terms/taxonomy_args', [ $this, 'filter_post_terms_taxonomy_arg' ] ); add_action( 'elementor/template-library/before_get_source_data', [ $this, 'switch_to_preview_query' ] ); add_action( 'elementor/template-library/after_get_source_data', [ $this, 'restore_current_query' ] ); add_action( 'elementor/dynamic_tags/before_render', [ $this, 'switch_to_preview_query' ] ); add_action( 'elementor/dynamic_tags/after_render', [ $this, 'restore_current_query' ] ); } public function filter_post_terms_taxonomy_arg( $taxonomy_args ) { $current_post_id = get_the_ID(); $document = Module::instance()->get_document( $current_post_id ); if ( $document ) { // Show all taxonomies unset( $taxonomy_args['object_type'] ); } return $taxonomy_args; } /** * @access public * * @param $query_vars array * * @return array */ public function filter_query_control_args( $query_vars ) { $document = Plugin::elementor()->documents->get_doc_or_auto_save( get_the_ID() ); if ( $document && $document instanceof Theme_Document ) { $query_vars = $document->get_preview_as_query_args(); } return $query_vars; } /** * @access public */ public function switch_to_preview_query() { $current_post_id = get_the_ID(); $document = Plugin::elementor()->documents->get_doc_or_auto_save( $current_post_id ); if ( ! $document || ! $document instanceof Theme_Document ) { return; } $new_query_vars = $document->get_preview_as_query_args(); Plugin::elementor()->db->switch_to_query( $new_query_vars, true ); $document->after_preview_switch_to_query(); } /** * @access public */ public function restore_current_query() { Plugin::elementor()->db->restore_current_query(); } }