HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/confeduphaar/www/wp-content/plugins/wp-rocket/inc/ThirdParty/Themes/Flatsome.php
<?php
declare(strict_types=1);

namespace WP_Rocket\ThirdParty\Themes;

use WP_Rocket\Event_Management\Subscriber_Interface;

class Flatsome implements Subscriber_Interface {
	/**
	 * Return an array of events that this subscriber wants to listen to.
	 *
	 * @return array
	 */
	public static function get_subscribed_events() {
		if ( ! self::is_flatsome() ) {
			return [];
		}

		return [ 'rocket_rucss_inline_content_exclusions' => 'preserve_patterns' ];
	}

	/**
	 * Preserves the CSS patterns when adding the used CSS to the page
	 *
	 * @since 3.11
	 *
	 * @param array $patterns Array of patterns to preserve.
	 *
	 * @return array
	 */
	public function preserve_patterns( $patterns ): array {

		$preserve = [
			'#section_',
			'#text-box-',
			'#banner-',
			'#slider-',
			'#gap-',
			'#image_',
			'#row-',
			'#text-',
			'#banner-grid-',
			'#cats-',
			'#col-',
			'#gallery-',
			'#instagram-',
			'#map-',
			'#page-header-',
			'#pages-',
			'#panel-',
			'#portfolio-',
			'#product-flip-',
			'#product-grid-',
			'#stack-',
			'#timer-',
			'#title-',
		];

		return array_merge( $patterns, $preserve );
	}

	/**
	 * Checks if the current theme (or parent) is Flatsome
	 *
	 * @since 3.11
	 *
	 * @param WP_Theme $theme Instance of the theme.
	 */
	private static function is_flatsome( $theme = null ) {
		$theme = $theme instanceof \WP_Theme ? $theme : wp_get_theme();

		return 'flatsome' === strtolower( $theme->get( 'Name' ) ) || 'flatsome' === strtolower( $theme->get_template() );
	}
}