File: /home/eblama1/mintawon.farm/wp-content/plugins/astra-sites/inc/classes/class-astra-sites-utils.php
<?php
/**
* Astra Sites Utlis
*
* @since 1.0.0
* @package Astra Sites
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'Astra_Sites_Utils' ) ) :
/**
* Astra_Sites_Utils
*/
class Astra_Sites_Utils {
/**
* Instance.
*
* @since 4.4.48
* @var null $instance
*/
private static $instance;
/**
* Initiator
*
* @since 4.4.48
* @return object initialized object of class.
*/
public static function get_instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor.
*
* @since 4.4.48
*/
private function __construct() {
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue' ) );
}
/**
* Enqueue admin scripts.
*
* @since 1.0.0
*
* @param string $hook Current hook name.
* @return void
*/
public function admin_enqueue( $hook = '' ) {
global $wp_version;
if ( version_compare( $wp_version, '6.3', '>' ) ) {
wp_enqueue_script( 'astra-sites-command-palette', ASTRA_SITES_URI . 'inc/assets/js/command-palette.js', array( 'wp-data', 'wp-element', 'wp-commands', 'wp-dom-ready' ), ASTRA_SITES_VER, true );
wp_localize_script(
'astra-sites-command-palette',
'stCommandsPalette',
array(
'imageDir' => INTELLIGENT_TEMPLATES_URI . 'assets/images/',
'onboardingUrl' => admin_url( '/themes.php' ) . '?page=starter-templates',
'customCommands' => $this->get_custom_commands(),
)
);
}
}
/**
* Get custom commands.
*
* @since 4.4.48
*
* @return array
*/
public function get_custom_commands() {
$common_search_labels = __( 'Starter, Starter Templates, Templates, Themes, Astra, Onboarding, Import, Export, AI builder', 'astra-sites' );
$commands = array(
array(
'name' => 'starter-templates',
'label' => __( 'Starter Templates', 'astra-sites' ),
'searchLabel' => $common_search_labels,
'url' => admin_url( '/themes.php' ) . '?page=starter-templates',
),
array(
'name' => 'starter-templates-page-builder',
'label' => __( 'Starter Templates: Choose Page Builder', 'astra-sites' ),
'searchLabel' => $common_search_labels . ', ' . __( 'Page Builder', 'astra-sites' ),
'url' => admin_url( '/themes.php' ) . '?page=starter-templates&ci=1',
),
array(
'name' => 'starter-templates-gutenberg',
'label' => __( 'Starter Templates: Gutenberg Templates', 'astra-sites' ),
'searchLabel' => $common_search_labels . ' ' . __( 'Block, Block Editor, Spectra, Gutenberg', 'astra-sites' ),
'url' => admin_url( '/themes.php' ) . '?page=starter-templates&builder=gutenberg',
),
);
if ( Astra_Sites::should_show_ai_builder() ) {
$commands[] = array(
'name' => 'starter-templates-ai-builder',
'label' => __( 'Starter Templates: AI Builder', 'astra-sites' ),
'searchLabel' => $common_search_labels . ', ' . __( 'AI Template', 'astra-sites' ),
'url' => admin_url( '/themes.php' ) . '?page=ai-builder',
);
}
$is_beaver_builder_disabled = get_option( 'st-beaver-builder-flag' ) || ! Intelligent_Starter_Templates_Loader::is_legacy_beaver_builder_enabled();
$is_elementor_disabled = get_option( 'st-elementor-builder-flag' );
if ( ! $is_beaver_builder_disabled ) {
$commands[] = array(
'name' => 'starter-templates-beaver-builder',
'label' => __( 'Starter Templates: Beaver Builder Templates', 'astra-sites' ),
'searchLabel' => $common_search_labels . ', ' . __( 'Beaver Builder', 'astra-sites' ),
'url' => admin_url( '/themes.php' ) . '?page=starter-templates&builder=beaver-builder',
);
}
if ( ! $is_elementor_disabled ) {
$commands[] = array(
'name' => 'starter-templates-elementor',
'label' => __( 'Starter Templates: Elementor Templates', 'astra-sites' ),
'searchLabel' => $common_search_labels . ', ' . __( 'Elementor', 'astra-sites' ),
'url' => admin_url( '/themes.php' ) . '?page=starter-templates&builder=elementor',
);
}
return $commands;
}
/**
* Third party cache plugin clear cache.
*
* @since 4.0.0
* @return void
*/
public static function third_party_cache_plugins_clear_cache() {
// Clear LiteSpeed cache.
if ( class_exists( '\LiteSpeed\Purge' ) ) {
\LiteSpeed\Purge::purge_all();
}
// Clear cloudways cache.
self::clear_cloudways_cache();
}
/**
* This function helps to purge all cache in clodways envirnoment.
* In presence of Breeze plugin (https://wordpress.org/plugins/breeze/)
*
* @since 4.0.0
* @return void
*/
public static function clear_cloudways_cache() {
if ( ! class_exists( 'Breeze_Configuration' ) || ! class_exists( 'Breeze_CloudFlare_Helper' ) || ! class_exists( 'Breeze_Admin' ) ) {
return;
}
// clear varnish cache.
$admin = new Breeze_Admin();
$admin->breeze_clear_varnish();
// clear static cache.
Breeze_Configuration::breeze_clean_cache();
Breeze_CloudFlare_Helper::reset_all_cache();
}
}
/**
* Kicking this off by calling 'get_instance()' method
*/
Astra_Sites_Utils::get_instance();
endif;