add_action( 'init', 'init', 7 );
$this->add_action( 'admin_init', 'save_plugins' );
$this->add_action( 'admin_enqueue_scripts', 'enqueue', 99 );
$this->add_action( 'admin_menu', 'fix_parent_menu', 999 );
$this->add_action( 'admin_footer', 'site_settings_url', 999 );
add_filter( 'big_image_size_threshold', '__return_false' );
// Disable WooCommerce Setup Wizard
add_filter( 'woocommerce_prevent_automatic_wizard_redirect', '__return_true' );
// Hide WooCommerce outdated templates notice
if ( class_exists( 'WooCommerce' ) ) {
WC_Admin_Notices::remove_notice( 'template_files' );
}
// Disable Elementor Onboarding
if ( false === get_option( 'elementor_onboarded' ) ){
update_option( 'elementor_onboarded', true );
}
// Add liquid-template menu
add_action( 'admin_menu', function() {
add_menu_page( 'Liquid Templates', 'Liquid Templates', 'manage_options', 'liquid-templates-library', function(){}, 'dashicons-category', 3 );
} );
add_filter( 'admin_notices', [ $this, 'admin_print_tabs' ] );
// Page Optimize Checker
add_action( 'admin_init', [ $this, 'check_page_optimizer' ] );
// Purge cache manually
add_action( 'admin_init', [ $this, 'purge_liquid_cache' ] );
}
/**
* [init description]
* @method init
* @return [type] [description]
*/
public function init() {
liquid()->load_theme_part( 'liquid-register-plugins' );
include_once get_template_directory() . '/liquid/admin/liquid-admin-page.php';
include_once get_template_directory() . '/liquid/admin/liquid-admin-about.php';
include_once get_template_directory() . '/liquid/admin/liquid-admin-dashboard.php';
include_once get_template_directory() . '/liquid/admin/liquid-admin-elementor.php';
include_once get_template_directory() . '/liquid/admin/liquid-admin-reset.php';
// Merlin
require_once get_template_directory() . '/liquid/libs/merlin/vendor/autoload.php';
require_once get_template_directory() . '/liquid/libs/merlin/class-merlin.php';
require_once get_template_directory() . '/liquid/libs/merlin/merlin-config.php';
require_once get_template_directory() . '/liquid/libs/merlin/merlin-filters.php';
// OpenAI
include_once get_template_directory() . '/liquid/libs/open-ai/src/Url.php';
include_once get_template_directory() . '/liquid/libs/open-ai/src/OpenAi.php';
}
/**
* [enqueue description]
* @method enqueue
* @return [type] [description]
*/
public function enqueue() {
global $pagenow;
//imagepicker
wp_enqueue_style( 'jquery-confirm-css', liquid()->load_assets( 'css/jquery-confirm.min.css' ) );
if( 'nav-menus.php' == $pagenow || 'widgets.php' == $pagenow ) {
wp_enqueue_media();
}
if (isset($_GET['page']) && ($_GET['page'] == 'liquid-about' || $_GET['page'] == 'liquid-reset')) {
wp_enqueue_style( 'merlin', get_template_directory_uri() . '/liquid/libs/merlin/assets/css/merlin.css' );
}
// Menu color picker
if ( $pagenow == 'nav-menus.php' && defined( 'LQD_CORE_PLUGIN_URL' ) ) {
wp_enqueue_style( 'easylogic-colorpicker', LQD_CORE_PLUGIN_URL . 'elementor/controls/color/EasyLogicColorPicker.css' );
wp_enqueue_style( 'easylogic-colorpicker-style', LQD_CORE_PLUGIN_URL . 'elementor/controls/color/color-wp-menus.css' );
wp_enqueue_script( 'easylogic-colorpicker', LQD_CORE_PLUGIN_URL . 'elementor/controls/color/EasyLogicColorPicker.js', [], false, true );
wp_enqueue_script( 'easylogic-colorpicker-init', LQD_CORE_PLUGIN_URL . 'elementor/controls/color/color-wp-menus.js', ['easylogic-colorpicker'], false, true );
}
wp_enqueue_style( 'lqd-dashboard', liquid()->load_assets( 'css/liquid-dashboard.min.css' ) );
wp_enqueue_script( 'jquery-confirm', liquid()->load_assets( 'js/jquery-confirm.min.js' ), array( 'jquery' ), false, true );
wp_enqueue_script( 'liquid-admin', liquid()->load_assets( 'js/liquid-admin.min.js' ), array( 'jquery', 'underscore' ), false, true );
wp_localize_script( 'liquid-admin', 'liquid_admin_messages', array(
'reset_title' => wp_kses( __( ' Reset', 'aihub' ), 'span' ),
'reset_message' => esc_html__( 'Remove posts, pages, media and any other content on your current site, We strongly recommend to reset before importing ( even if this is a fresh site ) to avoid any overlap or conflict with your current content.
Note: Don\'t use the reset option if you are trying to import some parts only ( For example if you are going to import theme options only then you may continue without reset )', 'aihub' ),
'reset_confirm' => esc_html__( 'Reset Then Import', 'aihub' ),
'reset_continue' => esc_html__( 'Keep Importing Without Resetting', 'aihub' ),
'reset_final_confirm' => esc_html__( 'I understand', 'aihub' ),
'reset_final_title' => wp_kses( __( ' Warning', 'aihub' ), 'span' ),
'reset_final_message' => esc_html__( 'Since you selected to reset before importing please be aware this action cannot be reversed ( Any removed content cannot be restored )', 'aihub' )
) );
// Icons
$uri = get_template_directory_uri() . '/assets/vendors/' ;
}
public function admin_redirects() {
global $pagenow;
if ( is_admin() && 'themes.php' == $pagenow && isset( $_GET['activated'] ) ) {
wp_redirect( admin_url( 'admin.php?page=liquid' ) );
exit;
}
}
// Register Helpers ----------------------------------------------------------
public function script( $handle, $src, $deps = null, $in_footer = true, $ver = null ) {
wp_register_script( $handle, $src, $deps, $ver, $in_footer);
}
public function style( $handle, $src, $deps = null, $ver = null, $media = 'all' ) {
wp_register_style( $handle, $src, $deps, $ver, $media );
}
// Uri Helpers ---------------------------------------------------------------
public function get_theme_uri($file = '') {
return get_template_directory_uri() . '/' . $file;
}
public function get_child_uri($file = '') {
return get_stylesheet_directory_uri() . '/' . $file;
}
public function get_css_uri($file = '') {
return $this->get_theme_uri('assets/css/'.$file.'.css');
}
public function get_widgets_uri( $file = '' ) {
return $this->get_theme_uri('assets/css/components/' . $file . '.css' );
}
public function get_js_uri($file = '') {
return $this->get_theme_uri('assets/js/'.$file.'.js');
}
public function get_vendor_uri($file = '') {
return $this->get_theme_uri('assets/vendors/'.$file);
}
/**
* [fix_parent_menu description]
* @method fix_parent_menu
* @return [type] [description]
*/
public function fix_parent_menu() {
if ( !current_user_can( 'edit_theme_options' ) ) {
return;
}
global $submenu;
$submenu['liquid'][0][0] = esc_html__( 'Activation', 'aihub' );
remove_submenu_page( 'themes.php', 'tgmpa-install-plugins' );
}
/**
* [site_settings_url description]
* @method site_settings_url
* @return [type] [description]
*/
public function site_settings_url() {
if ( !defined( 'ELEMENTOR_VERSION' ) && !is_callable( 'Elementor\Plugin::instance' ) ){
return;
}
$url = '#';
if ( $set_home = get_option('page_on_front') ){
if ( \Elementor\Plugin::$instance->documents->get( $set_home )->is_built_with_elementor() ) {
$url = \Elementor\Plugin::$instance->documents->get( $set_home )->get_edit_url() . '&active-document=' . get_option('elementor_active_kit');
} else {
if ( $kit_id = get_option('elementor_active_kit') ){
$url = \Elementor\Plugin::$instance->documents->get( $kit_id )->get_edit_url();
} else {
//printf( '
Cannot found Elementor Kit. Please create or import kit.
' ); } } } else { if ( $kit_id = get_option('elementor_active_kit') ){ $url = \Elementor\Plugin::$instance->documents->get( $kit_id )->get_edit_url(); } else { //printf( 'Cannot found Elementor Kit. Please create or import kit.
' ); } } ?> plugins; foreach( $plugins as $plugin ) { if ( $plugin['slug'] == $_GET['plugin'] ) { deactivate_plugins( $plugin['file_path'] ); wp_redirect( admin_url( 'admin.php?page=' . $_GET['page'] ) ); exit; } } } // Activate plugin if ( isset( $_GET['liquid-activate'] ) && 'activate-plugin' == $_GET['liquid-activate'] ) { check_admin_referer( 'liquid-activate', 'liquid-activate-nonce' ); $plugins = TGM_Plugin_Activation::$instance->plugins; foreach( $plugins as $plugin ) { if ( $plugin['slug'] == $_GET['plugin'] ) { activate_plugin( $plugin['file_path'] ); wp_redirect( admin_url( 'admin.php?page=' . $_GET['page'] ) ); exit; } } } } public function admin_print_tabs() { global $current_screen; if ( isset( $current_screen ) && $current_screen->parent_base === 'liquid-templates-library' ){ $cpts = [ 'liquid-header' => esc_html( 'Header', 'aihub' ), 'liquid-footer' => esc_html( 'Footer', 'aihub' ), 'liquid-mega-menu' => esc_html( 'Mega Menu', 'aihub' ), 'liquid-title-wrapper' => esc_html( 'Title Wrapper', 'aihub' ), 'ld-product-layout' => esc_html( 'Product Layout', 'aihub' ), 'ld-product-sizeguide' => esc_html( 'Product Size Guide', 'aihub' ), 'liquid-sticky-atc' => esc_html( 'Product Sticky Add to Cart', 'aihub' ), 'liquid-archives' => esc_html( 'Archives', 'aihub' ), ]; if ( !class_exists( 'WooCommerce' ) ) { unset($cpts['ld-product-layout']); unset($cpts['ld-product-sizeguide']); unset($cpts['liquid-sticky-atc']); } ?> purge_all_cache(); } } } } new Liquid_Admin;