Upgarded to 4.17.4
This commit is contained in:
@ -67,14 +67,24 @@ class ET_Builder_Plugin_Compat_WP_Offload_S3 extends ET_Builder_Plugin_Compat_Ba
|
||||
global $as3cf;
|
||||
|
||||
$as3cf_s3_to_local = new AS3CF_S3_To_Local( $as3cf );
|
||||
$attachment_id = $attachment_id_pre;
|
||||
|
||||
$attachment_id = $as3cf_s3_to_local->get_attachment_id_from_url( $url );
|
||||
// In WP Offload Media 2.6 the get_attachment_id_from_url() method was renamed to get_item_source_from_url().
|
||||
// Now the method also returns bool or array. If it's an array we need to process it.
|
||||
if ( method_exists( $as3cf_s3_to_local, 'get_item_source_from_url' ) ) {
|
||||
$item_source = $as3cf_s3_to_local->get_item_source_from_url( $url );
|
||||
|
||||
if ( $attachment_id ) {
|
||||
return $attachment_id;
|
||||
if ( is_array( $item_source ) && array_key_exists( 'id', $item_source ) ) {
|
||||
$attachment_id = $item_source['id'];
|
||||
}
|
||||
}
|
||||
|
||||
return $attachment_id_pre;
|
||||
// Pre 2.6. get_attachment_id_from_url() will return the attachment ID.
|
||||
if ( method_exists( $as3cf_s3_to_local, 'get_attachment_id_from_url' ) ) {
|
||||
$attachment_id = $as3cf_s3_to_local->get_attachment_id_from_url( $url );
|
||||
}
|
||||
|
||||
return $attachment_id;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
/**
|
||||
* Compatibility for Popup Maker plugin.
|
||||
*
|
||||
* @since ??
|
||||
* @since 4.13.0
|
||||
*
|
||||
* @link https://wordpress.org/plugins/popup-maker/
|
||||
*/
|
||||
@ -22,7 +22,7 @@ class ET_Builder_Plugin_Compat_Popup_Maker extends ET_Builder_Plugin_Compat_Base
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @since ??
|
||||
* @since 4.13.0
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->plugin_id = 'popup-maker/popup-maker.php';
|
||||
@ -32,7 +32,7 @@ class ET_Builder_Plugin_Compat_Popup_Maker extends ET_Builder_Plugin_Compat_Base
|
||||
/**
|
||||
* Hook methods to WordPress.
|
||||
*
|
||||
* @since ??
|
||||
* @since 4.13.0
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
@ -52,12 +52,15 @@ class ET_Builder_Plugin_Compat_Popup_Maker extends ET_Builder_Plugin_Compat_Base
|
||||
|
||||
// Disable Cache in Feature Manager.
|
||||
add_filter( 'et_builder_post_feature_cache_enabled', array( $this, 'et_builder_disable_dynamic_features' ), 10, 4 );
|
||||
|
||||
// Override Waypoint context.
|
||||
add_filter( 'et_builder_waypoints_options', array( $this, 'maybe_override_waypoints_options' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Return false if Popup Maker is active to disable dynamic assets feature.
|
||||
*
|
||||
* @since ??
|
||||
* @since 4.13.0
|
||||
*
|
||||
* @param bool $current_state Current state of the feature.
|
||||
*
|
||||
@ -76,7 +79,7 @@ class ET_Builder_Plugin_Compat_Popup_Maker extends ET_Builder_Plugin_Compat_Base
|
||||
* Update Divi Builder selector for Popup Maker plugin.
|
||||
* The purpose of this update is to make sure custom module styles applied to the content inside Popup Maker which placed outside the main page content and `#page-container` container
|
||||
*
|
||||
* @since ??
|
||||
* @since 4.13.0
|
||||
*
|
||||
* @param string $selector Selector to modify.
|
||||
*
|
||||
@ -102,7 +105,7 @@ class ET_Builder_Plugin_Compat_Popup_Maker extends ET_Builder_Plugin_Compat_Base
|
||||
* Update Divi Builder selector for Popup Maker plugin.
|
||||
* The purpose of this update is to make sure custom module styles applied to the content inside Popup Maker which placed outside the main page content and `#et-boc` container
|
||||
*
|
||||
* @since ??
|
||||
* @since 4.13.0
|
||||
*
|
||||
* @param string $selector Selector to modify.
|
||||
*
|
||||
@ -129,7 +132,7 @@ class ET_Builder_Plugin_Compat_Popup_Maker extends ET_Builder_Plugin_Compat_Base
|
||||
* The purpose of this update is to make sure Divi main style is loaded along with the CPT style
|
||||
* Otherwise Content inside Popup Maker plugin loses styles because it's placed outside the main page content and `#et-boc` container
|
||||
*
|
||||
* @since ??
|
||||
* @since 4.13.0
|
||||
*
|
||||
* @param string $handle Handle to modify.
|
||||
*
|
||||
@ -144,6 +147,29 @@ class ET_Builder_Plugin_Compat_Popup_Maker extends ET_Builder_Plugin_Compat_Base
|
||||
// Add suffix to make sure not prefixed divi-style won't be dequeued.
|
||||
return $handle . '-pum';
|
||||
}
|
||||
|
||||
/**
|
||||
* Override Waypoints context for modules inside Popup Maker overlay.
|
||||
*
|
||||
* @since 4.15.0
|
||||
*
|
||||
* @param array $options Waypoints options.
|
||||
*
|
||||
* @return array Filtered Waypoints options.
|
||||
*/
|
||||
public function maybe_override_waypoints_options( $options ) {
|
||||
// Check whether `context` property exists or not.
|
||||
if ( ! isset( $options['context'] ) ) {
|
||||
$options['context'] = array();
|
||||
}
|
||||
|
||||
// Make sure the existing `context` is already on array format. Then add Popup Maker
|
||||
// overlay selector to the list.
|
||||
$options['context'] = (array) $options['context'];
|
||||
$options['context'][] = '.pum-overlay';
|
||||
|
||||
return $options;
|
||||
}
|
||||
}
|
||||
|
||||
new ET_Builder_Plugin_Compat_Popup_Maker();
|
||||
|
@ -20,19 +20,17 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
*/
|
||||
class ET_Builder_Plugin_Compat_SiteGround_Optimizer extends ET_Builder_Plugin_Compat_Base {
|
||||
/**
|
||||
* Stylesheet handle.
|
||||
* Excluded stylesheets.
|
||||
*
|
||||
* @var null
|
||||
*/
|
||||
private $_stylesheet_handle = null;
|
||||
private $_excluded = [];
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->plugin_id = 'sg-cachepress/sg-cachepress.php';
|
||||
$this->_stylesheet_handle = ET_Dynamic_Assets::init()->get_style_css_handle();
|
||||
|
||||
$this->plugin_id = 'sg-cachepress/sg-cachepress.php';
|
||||
$this->init_hooks();
|
||||
}
|
||||
|
||||
@ -42,42 +40,80 @@ class ET_Builder_Plugin_Compat_SiteGround_Optimizer extends ET_Builder_Plugin_Co
|
||||
* @return void
|
||||
*/
|
||||
public function init_hooks() {
|
||||
|
||||
if ( ! is_plugin_active( $this->plugin_id ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
add_filter( 'sgo_css_combine_exclude', array( $this, 'exclude_inline_styles_from_siteground_cache' ) );
|
||||
// Do nothing if it's not on frontend.
|
||||
if ( ! et_builder_is_frontend() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Do nothing if Dynamic CSS and Critical CSS are disabled.
|
||||
if ( ! ( et_use_dynamic_css() || et_builder_is_critical_enabled() ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
add_filter( 'et_core_page_resource_tag', [ $this, 'get_page_resource_handles' ], 10, 3 );
|
||||
add_filter( 'sgo_css_combine_exclude', [ $this, 'exclude_inline_styles_from_siteground_cache' ], 11 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get PageResource handles.
|
||||
*
|
||||
* @param string $tag HTML tag.
|
||||
* @param string $handle Resource handle.
|
||||
* @param string $src Resource src.
|
||||
*
|
||||
* @since 4.14.3
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_page_resource_handles( $tag, $handle, $src ) {
|
||||
if ( empty( $src ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Some styles we enqueue too late for wp_enqueue_style so the markup is printed directly.
|
||||
// However, SG Optimizer can only exclude registered styles, hence we do it now.
|
||||
if ( ! wp_style_is( $handle, 'registered' ) ) {
|
||||
$handle .= '-cachepress';
|
||||
wp_register_style( $handle, $src, [], ET_BUILDER_VERSION );
|
||||
}
|
||||
|
||||
$this->_excluded[] = $handle;
|
||||
|
||||
return $tag;
|
||||
}
|
||||
|
||||
/**
|
||||
* Exclude styles from being combined in SiteGround cache.
|
||||
*
|
||||
* @param array $excluded_stylesheets Excluded styles from being combined.
|
||||
* @param array $excluded Excluded styles from being combined.
|
||||
*/
|
||||
public function exclude_inline_styles_from_siteground_cache( $excluded_stylesheets ) {
|
||||
global $shortname;
|
||||
public function exclude_inline_styles_from_siteground_cache( $excluded ) {
|
||||
global $wp_styles, $shortname;
|
||||
|
||||
$is_critical_enabled = apply_filters( 'et_builder_critical_css_enabled', false );
|
||||
|
||||
// If Critical CSS is enabled, we don't need to process further.
|
||||
if ( $is_critical_enabled ) {
|
||||
return $excluded_stylesheets;
|
||||
}
|
||||
|
||||
$style_prefix = 'divi-builder';
|
||||
$prefix = 'divi-builder';
|
||||
|
||||
if ( 'divi' === $shortname ) {
|
||||
$style_prefix = 'divi';
|
||||
$prefix = 'divi';
|
||||
} elseif ( 'extra' === $shortname ) {
|
||||
$style_prefix = 'extra';
|
||||
$prefix = 'extra';
|
||||
}
|
||||
|
||||
$style_prefix = $style_prefix . '-dynamic';
|
||||
$registered = array_keys( $wp_styles->registered );
|
||||
|
||||
foreach ( $registered as $handle ) {
|
||||
// Exclude all our styles.
|
||||
if ( false !== strpos( $handle, $prefix ) ) {
|
||||
$excluded[] = $handle;
|
||||
}
|
||||
}
|
||||
|
||||
return array_merge(
|
||||
$excluded_stylesheets,
|
||||
array( $this->_stylesheet_handle, $style_prefix )
|
||||
$this->_excluded,
|
||||
$excluded
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -310,9 +310,9 @@ class ET_Builder_Plugin_Compat_WPML_Multilingual_CMS extends ET_Builder_Plugin_C
|
||||
$translation_language_args = array(
|
||||
'element_id' => $translation_layout_id,
|
||||
'element_type' => $element_type,
|
||||
'trid' => $original_language_info->trid,
|
||||
'trid' => ! empty( $original_language_info->trid ) ? $original_language_info->trid : null,
|
||||
'language_code' => $translation_lang_id,
|
||||
'source_language_code' => $original_language_info->language_code,
|
||||
'source_language_code' => ! empty( $original_language_info->language_code ) ? $original_language_info->language_code : null,
|
||||
);
|
||||
|
||||
// 2. Set the new layout as translation of the original layout.
|
||||
|
62
includes/builder/plugin-compat/wp-rocket.php
Normal file
62
includes/builder/plugin-compat/wp-rocket.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php // phpcs:ignore WordPress.Files.FileName -- We don't follow WP filename format.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
// Exit if accessed directly.
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* ET_Builder_Plugin_Compat_WP_Rocket class file.
|
||||
*
|
||||
* @class ET_Builder_Plugin_Compat_WP_Rocket
|
||||
* @package Divi
|
||||
* @subpackage Builder
|
||||
* @since 4.14.5
|
||||
* @link https://wp-rocket.me/
|
||||
*/
|
||||
class ET_Builder_Plugin_Compat_WP_Rocket extends ET_Builder_Plugin_Compat_Base {
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @since 4.14.5
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->plugin_id = 'wp-rocket/wp-rocket.php';
|
||||
$this->init_hooks();
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook methods to WordPress.
|
||||
*
|
||||
* @since 4.14.5
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function init_hooks() {
|
||||
// Bail if there's no version found.
|
||||
if ( ! $this->get_plugin_version() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
add_filter( 'rocket_rucss_safelist', array( $this, 'et_rocket_css_safelist' ), 10, 1 );
|
||||
}
|
||||
|
||||
/**
|
||||
* CSS safelist to exclude from WP Rocket's 'Unused CSS' option.
|
||||
* The array may contain CSS filenames, IDs or classes.
|
||||
*
|
||||
* @since 4.14.5
|
||||
*
|
||||
* @param array[] $css_safelist list of CSS filenames, IDs or classes.
|
||||
*
|
||||
* @return array[]
|
||||
*/
|
||||
public function et_rocket_css_safelist( $css_safelist ) {
|
||||
$et_css_safelist = array(
|
||||
'.et_pb_blog_grid',
|
||||
);
|
||||
|
||||
return array_merge( $css_safelist, $et_css_safelist );
|
||||
}
|
||||
}
|
||||
|
||||
new ET_Builder_Plugin_Compat_WP_Rocket();
|
Reference in New Issue
Block a user