Linux puskom-ProLiant-DL385-Gen10 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64
/
home
/
puskom
/
mastur
/
hummingbird-performance
/
core
/
integration
/
//home/puskom/mastur/hummingbird-performance/core/integration/class-builders.php
<?php /** * Integration module for various page builders. * * @since 2.4.0 * @package Hummingbird\Core\Integration */ namespace Hummingbird\Core\Integration; use Hummingbird\WP_Hummingbird; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class Builders */ class Builders { /** * Builders constructor. */ public function __construct() { // Some page builders may fetch content with REST API requests. add_action( 'parse_request', array( $this, 'maybe_deactivate_minify_on_rest' ) ); // Clear cache after layout save. add_action( 'fl_builder_after_save_layout', array( $this, 'beaver_builder_clear_cache' ) ); /** * Cornerstone actions that require to deactivate minify module. * Taken from Cornerstone_Integration_Caching -> __construct(). */ add_action( 'cornerstone_load_builder', array( $this, 'deactivate_minify_module' ) ); add_action( 'cornerstone_before_boot_app', array( $this, 'deactivate_minify_module' ) ); add_action( 'cornerstone_before_custom_endpoint', array( $this, 'deactivate_minify_module' ) ); add_action( 'cornerstone_before_load_preview', array( $this, 'deactivate_minify_module' ) ); // Themeco Pro theme page builder. add_action( 'cornerstone_before_boot_app', array( $this, 'deactivate_minify_module' ) ); // ACF options pages compatibility. add_action( 'acf/save_post', array( $this, 'purge_page_cache' ) ); if ( $this->is_tag_div_editor() ) { $this->deactivate_minify_module(); } } /** * Maybe deactivate minify module on REST API requests. * * @since 2.6.2 */ public function maybe_deactivate_minify_on_rest() { $excluded_requests = array( 'cs_preview_state', // Cornerstone builder request key. 'elementor-preview', // Elementor's request key. 'ct_builder', // Oxygen builder. ); $exclude = ! empty( array_intersect( $excluded_requests, array_keys( $_REQUEST ) ) ); if ( $exclude ) { $this->deactivate_minify_module(); } } /** * Deactivate minify module. * * @since 2.6.2 * * @uses add_filter() Calls wp_hummingbird_is_active_module_minify hook. */ public function deactivate_minify_module() { add_filter( 'wp_hummingbird_is_active_module_minify', '__return_false', 500 ); } /** * Clear cache on beaver builder save layout action. * * @since 2.4.0 */ public function beaver_builder_clear_cache() { if ( ! isset( $_POST['fl_builder_data']['post_id'] ) ) { return; } WP_Hummingbird::flush_cache( false, false ); } /** * Check if tagDiv Composer is active on site. * * @since 2.6.0 * * @return bool */ private function is_tag_div_editor() { if ( false !== strpos( $_SERVER['SCRIPT_FILENAME'], 'includes/wpeditor.php' ) && isset( $_GET['wp_path'] ) ) { return true; } return false; } /** * Purge page cache when ACF options are saved. * * @since 2.7.1 * * @param int|string $post_id The ID of the post being edited. */ public function purge_page_cache( $post_id ) { if ( defined( 'WPHB_PREVENT_CACHE_CLEAR_ACF' ) && WPHB_PREVENT_CACHE_CLEAR_ACF ) { return; } if ( 'options' !== $post_id ) { return; } do_action( 'wphb_clear_page_cache' ); } }