
|
Server : Apache System : Linux 182.49.167.72.host.secureserver.net 4.18.0-553.92.1.el8_10.x86_64 #1 SMP Wed Jan 14 06:31:58 EST 2026 x86_64 User : kikai ( 1014) PHP Version : 8.3.30 Disable Function : NONE Directory : /home/kikai/www/wp-content/plugins/hummingbird-performance/core/integration/ |
Upload File : |
<?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' );
}
}