site_oueb_2/wp-content/plugins/ocean-extra/includes/panel/scripts.php

1475 lines
51 KiB
PHP
Raw Permalink Normal View History

2022-11-22 20:23:31 +01:00
<?php
/**
* Scripts Panel
*
* @package Ocean_Extra
* @category Core
* @author OceanWP
*/
use Leafo\ScssPhp\Compiler;
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Start Class
class Ocean_Extra_Scripts_Panel {
protected $disable_panel;
/**
* Start things up
*/
public function __construct() {
$theme = wp_get_theme();
$this->disable_panel = version_compare( $theme->get( 'Version' ), '3.0.0', '>=' );
if( $this->disable_panel ) {
$oe_scripts_settings_status = get_option( 'oe_scripts_settings_status', 'need_updated' );
if( $oe_scripts_settings_status == 'need_updated' ) {
self::activate_scripts();
self::generate_js();
self::generate_css();
}
} else {
delete_option( 'oe_scripts_settings_status' );
}
if ( is_admin() ) {
// Add panel menu
add_action( 'admin_menu', array( $this, 'add_page' ), 10 );
// Add custom scripts
add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
// Register panel settings
add_action( 'admin_init', array( $this, 'register_settings' ) );
} else {
// Enqueue scripts
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 999 );
// Add body classes
add_filter( 'body_class', array( $this, 'body_classes' ) );
}
}
private static function activate_scripts() {
$scripts = self::get_scripts();
$option = 'oe_scripts_settings';
$settings = [];
foreach ( $scripts as $key => $val ) {
$settings[ $key ] = true;
}
update_option( $option, $settings );
update_option( 'oe_scripts_settings_status', 'updated' );
}
/**
* Return scripts
*
* @since 1.2.1
*/
private static function get_scripts() {
$scripts = array(
'oe_customSelect_script' => array(
'label' => esc_html__( 'Custom Select', 'ocean-extra' ),
'desc' => esc_html__( 'This script uses the native select box and add overlays a stylable <span> element in order to acheive the desired look.', 'ocean-extra' ),
'type' => 'js',
),
'oe_dropDownSearch_script' => array(
'label' => esc_html__( 'Drop Down Search', 'ocean-extra' ),
'desc' => esc_html__( 'This script is for the drop down search style in your navigation.', 'ocean-extra' ),
'type' => 'js',
),
'oe_headerReplaceSearch_script' => array(
'label' => esc_html__( 'Header Replace Search', 'ocean-extra' ),
'desc' => esc_html__( 'This script is for the header replace search style in your navigation.', 'ocean-extra' ),
'type' => 'js',
),
'oe_overlaySearch_script' => array(
'label' => esc_html__( 'Overlay Search', 'ocean-extra' ),
'desc' => esc_html__( 'This script is for the overlay search style in your navigation.', 'ocean-extra' ),
'type' => 'js',
),
'oe_fitVids_script' => array(
'label' => esc_html__( 'FitVids', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to achieve fluid width videos in your responsive web design, your videos looks good on all devices.', 'ocean-extra' ),
'type' => 'js',
),
'oe_fixedFooter_script' => array(
'label' => esc_html__( 'Fixed Footer', 'ocean-extra' ),
'desc' => esc_html__( 'This script adds a height to your content to keep your footer at the bottom of your page, the Fixed Footer option need to be activated in the customizer&rsquo;s Footer Widgets section.', 'ocean-extra' ),
'type' => 'js',
),
'oe_parallax_footer_script' => array(
'label' => esc_html__( 'Parallax Footer', 'ocean-extra' ),
'desc' => esc_html__( 'This script is used for the parallax footer effect.', 'ocean-extra' ),
'type' => 'js',
),
'oe_fullScreenMenu_script' => array(
'label' => esc_html__( 'Full Screen Menu', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to open your menu in overlay for the full screen header style, you can disable this function if you do not use this header style.', 'ocean-extra' ),
'type' => 'js',
),
'oe_headerSearchForm_script' => array(
'label' => esc_html__( 'Header Search Form', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to add a class to the search form to make the label disappear when text is inserted, used on some header style like medium or full screen and the full screen mobile menu style.', 'ocean-extra' ),
'type' => 'js',
),
'oe_infiniteScroll_script' => array(
'label' => esc_html__( 'Infinite Scroll', 'ocean-extra' ),
'desc' => esc_html__( 'This script create an infinite scrolling effect, used for the blog archives page if Infinite Scroll is selected as pagination style.', 'ocean-extra' ),
'type' => 'js',
),
'oe_isotope_script' => array(
'label' => esc_html__( 'Isotope', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to filter & sort layouts, used for the masonry grid style of your blog and will be used in some extensions.', 'ocean-extra' ),
'type' => 'js',
),
'oe_lightbox_script' => array(
'label' => esc_html__( 'Lightbox', 'ocean-extra' ),
'desc' => esc_html__( 'This script enables you to overlay your images on the current page, used for the gallerie, single product and content images.', 'ocean-extra' ),
'type' => 'js',
),
'oe_matchHeight_script' => array(
'label' => esc_html__( 'Match Height', 'ocean-extra' ),
'desc' => esc_html__( 'This script is a responsive equal heights script makes the height of all selected elements exactly equal, used for the grid blog style.', 'ocean-extra' ),
'type' => 'js',
),
'oe_megaMenu_script' => array(
'label' => esc_html__( 'Mega Menu', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to create the mega menus, so if you don&rsquo;t use mega menus at all on your website, you can disable this script.', 'ocean-extra' ),
'type' => 'js',
),
'oe_navNoClick_script' => array(
'label' => esc_html__( 'Nav No Click', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to prevent clicking on your links, used for the "Disable link" field of your menu items.', 'ocean-extra' ),
'type' => 'js',
),
'oe_scrollEffect_script' => array(
'label' => esc_html__( 'Scroll Effect', 'ocean-extra' ),
'desc' => esc_html__( 'This script create an animation to your anchor links, mainly used for a one page site but also for some links like the comment link on your single posts.', 'ocean-extra' ),
'type' => 'js',
),
'oe_scrollTop_script' => array(
'label' => esc_html__( 'Scroll Top', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to displays the scroll up button and brings you back to the top of your page when you click on it.', 'ocean-extra' ),
'type' => 'js',
),
'oe_sidr_script' => array(
'label' => esc_html__( 'Sidr', 'ocean-extra' ),
'desc' => esc_html__( 'This script is for easily creating responsive side menus, used for the Sidebar mobile menu style.', 'ocean-extra' ),
'type' => 'js',
),
'oe_dropdown_mobile_script' => array(
'label' => esc_html__( 'Drop Down Mobile', 'ocean-extra' ),
'desc' => esc_html__( 'This script is used for the Drop Down mobile menu style.', 'ocean-extra' ),
'type' => 'js',
),
'oe_fullscreen_mobile_script' => array(
'label' => esc_html__( 'Full Screen Mobile', 'ocean-extra' ),
'desc' => esc_html__( 'This script is used for the Full Screen mobile menu style.', 'ocean-extra' ),
'type' => 'js',
),
'oe_slick_script' => array(
'label' => esc_html__( 'Slick', 'ocean-extra' ),
'desc' => esc_html__( 'This script is used for all the carousel of your site, gallerie images, WooCommerce single product images and thumbnails.', 'ocean-extra' ),
'type' => 'js',
),
'oe_smoothScroll_script' => array(
'label' => esc_html__( 'SmoothScroll', 'ocean-extra' ),
'desc' => esc_html__( 'This script adds a smooth scrolling to the browser.', 'ocean-extra' ),
'type' => 'js',
),
'oe_superfish_script' => array(
'label' => esc_html__( 'Superfish', 'ocean-extra' ),
'desc' => esc_html__( 'This script adds usability enhancements to existing multi-level drop-down menus.', 'ocean-extra' ),
'type' => 'js',
),
'oe_wooAccountLinks_script' => array(
'label' => esc_html__( 'WooCommerce Account Links', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to switch between login/register in your account page.', 'ocean-extra' ),
'type' => 'js',
'condition' => class_exists( 'WooCommerce' ),
),
'oe_wooGridList_script' => array(
'label' => esc_html__( 'WooCommerce Grid/List Buttons', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to switch between grid and list view on your WooCommerce catalog products.', 'ocean-extra' ),
'type' => 'js',
'condition' => class_exists( 'WooCommerce' ),
),
'oe_wooQuantityButtons_script' => array(
'label' => esc_html__( 'WooCommerce Quantity Buttons', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to add a up and down button for the quantity input number on your WooCommerce single products and cart pages.', 'ocean-extra' ),
'type' => 'js',
'condition' => class_exists( 'WooCommerce' ),
),
'oe_wooReviewsScroll_script' => array(
'label' => esc_html__( 'WooCommerce Reviews Scroll', 'ocean-extra' ),
'desc' => esc_html__( 'This script is to show and scroll down to your review tab to your WooCommerce single products when you click on the review link.', 'ocean-extra' ),
'type' => 'js',
'condition' => class_exists( 'WooCommerce' ),
),
// type css
'oe_fontAwesome_style' => array(
'label' => esc_html__( 'Font Awesome Icons', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the font awesome icons.', 'ocean-extra' ),
'type' => 'css',
),
'oe_simpleLineIcons_style' => array(
'label' => esc_html__( 'Simple Line Icons', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the simple line icons.', 'ocean-extra' ),
'type' => 'css',
),
'oe_topBar_style' => array(
'label' => esc_html__( 'Top Bar', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the top bar.', 'ocean-extra' ),
'type' => 'css',
),
'oe_header_style' => array(
'label' => esc_html__( 'Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the header.', 'ocean-extra' ),
'type' => 'css',
),
'oe_transparentHeader_style' => array(
'label' => esc_html__( 'Transparent Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the transparent header style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_topHeader_style' => array(
'label' => esc_html__( 'Top Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the top header style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_fullScreenHeader_style' => array(
'label' => esc_html__( 'Full Screen Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the full screen header style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_centerHeader_style' => array(
'label' => esc_html__( 'Center Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the center header style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_mediumHeader_style' => array(
'label' => esc_html__( 'Medium Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the medium header style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_verticalHeader_style' => array(
'label' => esc_html__( 'Vertical Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the vertical header style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_customHeader_style' => array(
'label' => esc_html__( 'Custom Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the custom header style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_navigation_style' => array(
'label' => esc_html__( 'Navigation', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the navigation of the principal menu.', 'ocean-extra' ),
'type' => 'css',
),
'oe_menu_links_effect_style' => array(
'label' => esc_html__( 'Links Effect', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the links effect of the principal menu.', 'ocean-extra' ),
'type' => 'css',
),
'oe_socialMenu_style' => array(
'label' => esc_html__( 'Social Icons Menu', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the social icons in the navigation of the header.', 'ocean-extra' ),
'type' => 'css',
),
'oe_pageHeader_style' => array(
'label' => esc_html__( 'Page Header', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the page header (title).', 'ocean-extra' ),
'type' => 'css',
),
'oe_blog_style' => array(
'label' => esc_html__( 'Blog', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the blog and post formats.', 'ocean-extra' ),
'type' => 'css',
),
'oe_blogLarge_style' => array(
'label' => esc_html__( 'Blog Large Style', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the blog large style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_blogGrid_style' => array(
'label' => esc_html__( 'Blog Grid Style', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the blog grid style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_blogThumbnail_style' => array(
'label' => esc_html__( 'Blog Thumbnail Style', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the blog thumbnail style.', 'ocean-extra' ),
'type' => 'css',
),
'oe_singlePostPrevNext_style' => array(
'label' => esc_html__( 'Single Post Next/Prev Pagination', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the next/previous pagination on single post.', 'ocean-extra' ),
'type' => 'css',
),
'oe_singlePostAuthorBio_style' => array(
'label' => esc_html__( 'Single Post Author Box', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the author box on single post.', 'ocean-extra' ),
'type' => 'css',
),
'oe_singlePostRelatedPosts_style' => array(
'label' => esc_html__( 'Single Post Related Posts', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the related posts on single post.', 'ocean-extra' ),
'type' => 'css',
),
'oe_sidebar_style' => array(
'label' => esc_html__( 'Sidebar', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the sidebar.', 'ocean-extra' ),
'type' => 'css',
),
'oe_comment_style' => array(
'label' => esc_html__( 'Comment', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the comments.', 'ocean-extra' ),
'type' => 'css',
),
'oe_pagination_style' => array(
'label' => esc_html__( 'Pagination', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the pagination.', 'ocean-extra' ),
'type' => 'css',
),
'oe_footerWidgets_style' => array(
'label' => esc_html__( 'Footer Widgets', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the footer widgets area.', 'ocean-extra' ),
'type' => 'css',
),
'oe_footerBottom_style' => array(
'label' => esc_html__( 'Footer Bottom', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the footer bottom area.', 'ocean-extra' ),
'type' => 'css',
),
'oe_searchResults_style' => array(
'label' => esc_html__( 'Search Results', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the search results page.', 'ocean-extra' ),
'type' => 'css',
),
'oe_scrollTop_style' => array(
'label' => esc_html__( 'Scroll Top Button', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the scroll top button.', 'ocean-extra' ),
'type' => 'css',
),
'oe_errorPage_style' => array(
'label' => esc_html__( '404 Page', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the 404 error page.', 'ocean-extra' ),
'type' => 'css',
),
'oe_responsive_style' => array(
'label' => esc_html__( 'Responsive', 'ocean-extra' ),
'desc' => esc_html__( 'This style is all the css for the responsive view.', 'ocean-extra' ),
'type' => 'css',
),
'oe_wooMenuCart_style' => array(
'label' => esc_html__( 'WooCommerce Menu Cart', 'ocean-extra' ),
'desc' => esc_html__( 'This style is to display and hide your WooCommerce cart drop down in the navigation.', 'ocean-extra' ),
'type' => 'css',
'condition' => class_exists( 'WooCommerce' ),
),
'oe_wooNav_style' => array(
'label' => esc_html__( 'WooCommerce Navigation', 'ocean-extra' ),
'desc' => esc_html__( 'This style is for the single product navigation.', 'ocean-extra' ),
'type' => 'css',
'condition' => class_exists( 'WooCommerce' ),
),
'oe_wooOffCanvas_style' => array(
'label' => esc_html__( 'WooCommerce Off Canvas Filter', 'ocean-extra' ),
'desc' => esc_html__( 'This style is for the off canvas filter.', 'ocean-extra' ),
'type' => 'css',
'condition' => class_exists( 'WooCommerce' ),
),
'oe_wooMobileCart_style' => array(
'label' => esc_html__( 'WooCommerce Mobile Cart Sidebar', 'ocean-extra' ),
'desc' => esc_html__( 'This style is for the mini cart sidebar on mobile.', 'ocean-extra' ),
'type' => 'css',
'condition' => class_exists( 'WooCommerce' ),
),
'oe_wooCategoriesWidget_style' => array(
'label' => esc_html__( 'WooCommerce Categories Widget', 'ocean-extra' ),
'desc' => esc_html__( 'This style is for the WooCommerce categories widget.', 'ocean-extra' ),
'type' => 'css',
'condition' => class_exists( 'WooCommerce' ),
),
);
// Apply filters and return
return apply_filters( 'oe_theme_scripts', $scripts );
}
/**
* Add sub menu page
*
* @since 1.2.1
*/
public function add_page() {
$submenu_page_slug = $this->disable_panel ? null : 'oceanwp-panel';
add_submenu_page(
$submenu_page_slug,
esc_html__( 'Scripts & Styles', 'ocean-extra' ),
esc_html__( 'Scripts & Styles', 'ocean-extra' ),
'manage_options',
'oceanwp-panel-scripts',
array( $this, 'create_admin_page' )
);
}
/**
* Register a setting and its sanitization callback.
*
* @since 1.2.1
*/
public static function register_settings() {
register_setting( 'oe_scripts_settings', 'oe_scripts_settings', array( 'Ocean_Extra_Scripts_Panel', 'validate_settings' ) );
}
/**
* Main Sanitization callback
*
* @since 1.2.1
*/
public static function validate_settings( $settings ) {
// Get scripts array
$scripts = self::get_scripts();
if ( current_user_can( 'manage_options' ) && isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'], 'oe_scripts_settings-options' ) ) {
foreach ( $scripts as $key => $val ) {
$settings[ $key ] = ! empty( $settings[ $key ] ) ? true : false;
}
}
// Return the validated/sanitized settings
return $settings;
}
/**
* Get settings.
*
* @since 1.2.1
*/
public static function get_setting( $option = '' ) {
$defaults = self::get_default_settings();
$settings = wp_parse_args( get_option( 'oe_scripts_settings', $defaults ), $defaults );
return isset( $settings[ $option ] ) ? $settings[ $option ] : false;
}
/**
* Get default settings value.
*
* @since 1.2.1
*/
public static function get_default_settings() {
// Get scripts array
$scripts = self::get_scripts();
// Add array
$default = array();
foreach ( $scripts as $key => $val ) {
$default[ $key ] = 1;
}
// Return
return apply_filters( 'oe_default_scripts', $default );
}
/**
* Settings page output
*
* @since 1.2.1
*/
public static function create_admin_page() {
// If settings updated
if ( isset( $_GET['settings-updated'] ) && 'true' == $_GET['settings-updated'] ) {
self::generate_js();
self::generate_css();
}
// Get scripts array
$scripts = self::get_scripts();
?>
<div class="wrap oceanwp-scripts-panel oceanwp-clr">
<h1><?php esc_attr_e( 'Scripts & Styles Panel', 'ocean-extra' ); ?></h1>
<div class="oceanwp-desc notice notice-warning">
<p><?php esc_html_e( "With OceanWP 3+, please leave all scripts enabled so it doesn't conflict with the new JavaScript, This feature will be deprecated and fully automatized.", 'ocean-extra' ); ?></p>
<p><?php esc_html_e( 'Please check: Customize > General Options > Performance for scripts you can disable.', 'ocean-extra' ); ?></p>
</div>
<form id="oceanwp-scripts-panel-form" method="post" action="options.php">
<?php settings_fields( 'oe_scripts_settings' ); ?>
<div class="oceanwp-modules">
<div class="modules-top clr">
<?php submit_button(); ?>
<div class="owp-all-wrap">
<p><?php esc_attr_e( 'Switch to check or un-check every scripts:', 'ocean-extra' ); ?></p>
<div id="owp-switch">
<input type="checkbox" name="oe_scripts_settings[switch-all]" value="true" id="owp-switch-all" <?php checked( true ); ?>>
<label for="owp-switch-all"></label>
</div>
</div>
<ul class="btn-switcher clr">
<li class="active"><a href="#all"><?php esc_html_e( 'All', 'ocean-extra' ); ?></a></li>
<li><a href="#js"><?php esc_html_e( 'JS', 'ocean-extra' ); ?></a></li>
<li><a href="#css"><?php esc_html_e( 'CSS', 'ocean-extra' ); ?></a></li>
</ul>
</div>
<div class="modules-inner clr">
<?php
// Loop through scripts
foreach ( $scripts as $key => $val ) :
// Display setting?
$display = true;
if ( isset( $val['condition'] ) ) {
$display = $val['condition'];
}
// Var
$label = isset( $val['label'] ) ? $val['label'] : '';
$desc = isset( $val['desc'] ) ? $val['desc'] : '';
$type = isset( $val['type'] ) ? $val['type'] : '';
// Classes
$classes = 'column-wrap';
$classes .= ! $display ? ' hidden' : '';
// Get settings
$settings = self::get_setting( $key );
?>
<div class="<?php echo esc_attr( $classes ); ?>" data-type="<?php echo esc_attr( $type ); ?>">
<?php if ( $type ) { ?>
<div class="type <?php echo esc_attr( $type ); ?>"><?php echo esc_attr( $type ); ?></div>
<?php } ?>
<div class="column-inner clr">
<h3 class="info"><?php echo esc_attr( $label ); ?></h3>
<?php if ( $desc ) { ?>
<p class="desc"><?php echo esc_attr( $desc ); ?></p>
<?php } ?>
<div class="bottom-column">
<label for="oceanwp-[<?php echo esc_attr( $key ); ?>]" class="title"><?php esc_attr_e( 'Enable or Disable', 'ocean-extra' ); ?></label>
<div id="owp-switch">
<input type="checkbox" name="oe_scripts_settings[<?php echo esc_attr( $key ); ?>]" value="true" class="owp-checkbox" id="oceanwp-[<?php echo esc_attr( $key ); ?>]" <?php checked( $settings ); ?>>
<label for="oceanwp-[<?php echo esc_attr( $key ); ?>]"></label>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div><!-- .modules-inner -->
<?php submit_button(); ?>
</div><!-- .oceanwp-modules -->
</form>
</div>
<?php
}
/**
* Admin Scripts
*
* @since 1.2.1
*/
public static function admin_scripts( $hook ) {
// Only load scripts when needed
if ( OE_ADMIN_PANEL_HOOK_PREFIX . '-scripts' != $hook && strpos( $hook, 'page_oceanwp-panel-scripts' ) === false ) {
return;
}
// CSS
wp_enqueue_style( 'oceanwp-scripts-panel', plugins_url( '/assets/css/scripts.min.css', __FILE__ ) );
// JS
wp_enqueue_script( 'oceanwp-scripts-panel', plugins_url( '/assets/js/scripts.min.js', __FILE__ ), false, true );
}
/**
* Returns all JS needed
*
* @since 1.2.1
*/
public static function generate_js() {
// Return if is not OceanWP or not writable
if ( ! class_exists( 'OCEANWP_Theme_Class' ) || ! self::is_writable( 'js' ) ) {
return;
}
// Scripts
$customSelect = self::get_setting( 'oe_customSelect_script' );
$dropDownSearch = self::get_setting( 'oe_dropDownSearch_script' );
$headerReplaceSearch = self::get_setting( 'oe_headerReplaceSearch_script' );
$overlaySearch = self::get_setting( 'oe_overlaySearch_script' );
$fitVids = self::get_setting( 'oe_fitVids_script' );
$fixedFooter = self::get_setting( 'oe_fixedFooter_script' );
$parallax_footer = self::get_setting( 'oe_parallax_footer_script' );
$fullScreenMenu = self::get_setting( 'oe_fullScreenMenu_script' );
$verticalHeader = self::get_setting( 'oe_verticalHeader_style' );
$headerSearchForm = self::get_setting( 'oe_headerSearchForm_script' );
$infiniteScroll = self::get_setting( 'oe_infiniteScroll_script' );
$isotope = self::get_setting( 'oe_isotope_script' );
$lightbox = self::get_setting( 'oe_lightbox_script' );
$matchHeight = self::get_setting( 'oe_matchHeight_script' );
$megaMenu = self::get_setting( 'oe_megaMenu_script' );
$navNoClick = self::get_setting( 'oe_navNoClick_script' );
$scrollEffect = self::get_setting( 'oe_scrollEffect_script' );
$scrollTop = self::get_setting( 'oe_scrollTop_script' );
$sidr = self::get_setting( 'oe_sidr_script' );
$dropdown_mobile = self::get_setting( 'oe_dropdown_mobile_script' );
$fullscreen_mobile = self::get_setting( 'oe_fullscreen_mobile_script' );
$slick = self::get_setting( 'oe_slick_script' );
$smoothScroll = self::get_setting( 'oe_smoothScroll_script' );
$superfish = self::get_setting( 'oe_superfish_script' );
$wooAccountLinks = self::get_setting( 'oe_wooAccountLinks_script' );
$wooGridList = self::get_setting( 'oe_wooGridList_script' );
$wooQuantityButtons = self::get_setting( 'oe_wooQuantityButtons_script' );
$wooReviewsScroll = self::get_setting( 'oe_wooReviewsScroll_script' );
// Get js directory uri
$tDir = get_template_directory() . '/assets/js/';
// If a script is disabled
if ( ! $customSelect || ! $dropDownSearch || ! $headerReplaceSearch || ! $overlaySearch || ! $fitVids || ! $fixedFooter || ! $parallax_footer || ! $fullScreenMenu || ! $verticalHeader || ! $headerSearchForm || ! $infiniteScroll || ! $isotope || ! $lightbox || ! $matchHeight || ! $megaMenu || ! $navNoClick || ! $scrollEffect || ! $scrollTop || ! $sidr || ! $dropdown_mobile || ! $fullscreen_mobile || ! $slick || ! $smoothScroll || ! $superfish || ! $wooAccountLinks || ! $wooGridList || ! $wooQuantityButtons || ! $wooReviewsScroll ) {
// Array
$aFiles = array();
// Load customSelect js
if ( $customSelect ) {
$aFiles[] = $tDir . 'devs/customselect.js';
$aFiles[] = $tDir . 'core/customSelect.js';
}
// Load dropDownSearch js
if ( $dropDownSearch ) {
$aFiles[] = $tDir . 'core/dropDownSearch.js';
}
// Load headerReplaceSearch js
if ( $headerReplaceSearch ) {
$aFiles[] = $tDir . 'core/headerReplaceSearch.js';
}
// Load overlaySearch js
if ( $overlaySearch ) {
$aFiles[] = $tDir . 'core/overlaySearch.js';
}
// Load fitVids js
if ( $fitVids ) {
$aFiles[] = $tDir . 'devs/fitvids.js';
$aFiles[] = $tDir . 'core/fitvids.js';
}
// Load fixedFooter js
if ( $fixedFooter ) {
$aFiles[] = $tDir . 'core/fixedFooter.js';
}
// Load parallax footer js
if ( $parallax_footer ) {
$aFiles[] = $tDir . 'core/parallaxFooter.js';
}
// Load fullScreenMenu js
if ( $fullScreenMenu ) {
$aFiles[] = $tDir . 'core/fullScreenMenu.js';
}
// Load verticalHeader js
if ( $verticalHeader ) {
$aFiles[] = $tDir . 'core/verticalHeader.js';
}
// Load headerSearchForm js
if ( $headerSearchForm ) {
$aFiles[] = $tDir . 'core/headerSearchForm.js';
}
// Load infiniteScroll js
if ( $infiniteScroll ) {
$aFiles[] = $tDir . 'third/infinitescroll.js';
$aFiles[] = $tDir . 'core/infiniteScroll.js';
}
// Load isotope js
if ( $isotope ) {
$aFiles[] = $tDir . 'devs/isotope.js';
$aFiles[] = $tDir . 'core/isotope.js';
}
// Load matchHeight js
if ( $matchHeight ) {
$aFiles[] = $tDir . 'devs/matchHeight.js';
$aFiles[] = $tDir . 'core/matchHeight.js';
}
// Load megaMenu js
if ( $megaMenu ) {
$aFiles[] = $tDir . 'core/megaMenu.js';
}
// Load navnoclick js
if ( $navNoClick ) {
$aFiles[] = $tDir . 'core/navNoClick.js';
}
// Load scrollEffect js
if ( $scrollEffect ) {
$aFiles[] = $tDir . 'core/scrollEffect.js';
}
// Load scrollTop js
if ( $scrollTop ) {
$aFiles[] = $tDir . 'core/scrollTop.js';
}
// Load sidr js
if ( $sidr ) {
$aFiles[] = $tDir . 'devs/sidr.js';
$aFiles[] = $tDir . 'core/sidr.js';
}
// Load dropdown_mobile js
if ( $dropdown_mobile ) {
$aFiles[] = $tDir . 'core/dropDownMobile.js';
}
// Load fullscreen_mobile js
if ( $fullscreen_mobile ) {
$aFiles[] = $tDir . 'core/fullScreenMobile.js';
}
// Load slick js
if ( $slick ) {
$aFiles[] = $tDir . 'devs/slick.js';
$aFiles[] = $tDir . 'core/slick.js';
}
// Load smoothScroll js
if ( $smoothScroll ) {
$aFiles[] = $tDir . 'devs/smoothscroll.js';
}
// Load superfish js
if ( $superfish ) {
$aFiles[] = $tDir . 'devs/superfish.js';
$aFiles[] = $tDir . 'core/superfish.js';
}
// If WooCommerce exist
if ( OCEANWP_WOOCOMMERCE_ACTIVE ) {
// Remove brackets from categories and filter widgets
$aFiles[] = $tDir . 'third/woo/devs/wooWidgets.js';
// Load wooAccountLinks js
if ( $wooAccountLinks ) {
$aFiles[] = $tDir . 'third/woo/devs/wooAccountLinks.js';
}
// Load wooGridList js
if ( $wooGridList ) {
$aFiles[] = $tDir . 'devs/cookie.js';
$aFiles[] = $tDir . 'third/woo/devs/wooGridList.js';
}
// Load wooQuantityButtons js
if ( $wooQuantityButtons ) {
$aFiles[] = $tDir . 'third/woo/devs/wooQuantityButtons.js';
}
// Load wooReviewsScroll js
if ( $wooReviewsScroll ) {
$aFiles[] = $tDir . 'third/woo/devs/wooReviewsScroll.js';
}
}
// Check WP_Filesystem
global $wp_filesystem;
self::init_filesystem();
// Get JS files content
$strJS = '';
foreach ( $aFiles as $file ) :
$strJS .= $wp_filesystem->get_contents( $file );
endforeach;
// Minifying JS files
$jsMignifier = Ocean_Extra_JSMin::minify( $strJS );
// Putting all the scripts into one JS file
$wp_filesystem->put_contents( self::get_file( 'js', 'path' ), $jsMignifier );
} else {
if ( file_exists( self::get_file( 'js', 'path' ) ) ) {
unlink( self::get_file( 'js', 'path' ) );
}
}
}
/**
* Returns all CSS needed
*
* @since 1.2.1
*/
public static function generate_css() {
// Sass Compiler (vendor)
require_once OE_PATH . '/includes/panel/scssphp/scss.inc.php';
// Return if is not OceanWP or not writable
if ( ! class_exists( 'OCEANWP_Theme_Class' ) || ! self::is_writable( 'css' ) ) {
return;
}
// Styles & scripts
$customSelect = self::get_setting( 'oe_customSelect_script' );
$dropDownSearch = self::get_setting( 'oe_dropDownSearch_script' );
$headerReplaceSearch = self::get_setting( 'oe_headerReplaceSearch_script' );
$overlaySearch = self::get_setting( 'oe_overlaySearch_script' );
$megaMenu = self::get_setting( 'oe_megaMenu_script' );
$sidr = self::get_setting( 'oe_sidr_script' );
$dropdown_mobile = self::get_setting( 'oe_dropdown_mobile_script' );
$fullscreen_mobile = self::get_setting( 'oe_fullscreen_mobile_script' );
$slick = self::get_setting( 'oe_slick_script' );
$fontAwesome = self::get_setting( 'oe_fontAwesome_style' );
$simpleLineIcons = self::get_setting( 'oe_simpleLineIcons_style' );
$wooMenuCart = self::get_setting( 'oe_wooMenuCart_style' );
$wooNav = self::get_setting( 'oe_wooNav_style' );
$wooOffCanvas = self::get_setting( 'oe_wooOffCanvas_style' );
$wooMobileCart = self::get_setting( 'oe_wooMobileCart_style' );
$wooCategoriesWidget = self::get_setting( 'oe_wooCategoriesWidget_style' );
$wooQuantityButtons = self::get_setting( 'oe_wooQuantityButtons_script' );
$topBar = self::get_setting( 'oe_topBar_style' );
$header = self::get_setting( 'oe_header_style' );
$transparentHeader = self::get_setting( 'oe_transparentHeader_style' );
$topHeader = self::get_setting( 'oe_topHeader_style' );
$fullScreenHeader = self::get_setting( 'oe_fullScreenHeader_style' );
$centerHeader = self::get_setting( 'oe_centerHeader_style' );
$mediumHeader = self::get_setting( 'oe_mediumHeader_style' );
$verticalHeader = self::get_setting( 'oe_verticalHeader_style' );
$customHeader = self::get_setting( 'oe_customHeader_style' );
$navigation = self::get_setting( 'oe_navigation_style' );
$links_effect = self::get_setting( 'oe_menu_links_effect_style' );
$socialMenu = self::get_setting( 'oe_socialMenu_style' );
$pageHeader = self::get_setting( 'oe_pageHeader_style' );
$blog = self::get_setting( 'oe_blog_style' );
$blogLarge = self::get_setting( 'oe_blogLarge_style' );
$blogGrid = self::get_setting( 'oe_blogGrid_style' );
$blogThumbnail = self::get_setting( 'oe_blogThumbnail_style' );
$singlePostPrevNext = self::get_setting( 'oe_singlePostPrevNext_style' );
$singlePostAuthorBio = self::get_setting( 'oe_singlePostAuthorBio_style' );
$singlePostRelatedPosts = self::get_setting( 'oe_singlePostRelatedPosts_style' );
$sidebar = self::get_setting( 'oe_sidebar_style' );
$comment = self::get_setting( 'oe_comment_style' );
$pagination = self::get_setting( 'oe_pagination_style' );
$footerWidgets = self::get_setting( 'oe_footerWidgets_style' );
$footerBottom = self::get_setting( 'oe_footerBottom_style' );
$searchResults = self::get_setting( 'oe_searchResults_style' );
$scrollTop = self::get_setting( 'oe_scrollTop_style' );
$errorPage = self::get_setting( 'oe_errorPage_style' );
$responsive = self::get_setting( 'oe_responsive_style' );
// Get css directory uri
$tSass = get_template_directory() . '/sass/';
$tDir = $tSass . 'components/';
$cssDir = get_template_directory() . '/assets/css/';
// If a style is disabled
if ( ! $customSelect || ! $dropDownSearch || ! $headerReplaceSearch || ! $overlaySearch || ! $megaMenu || ! $sidr || ! $dropdown_mobile || ! $fullscreen_mobile || ! $slick || ! $fontAwesome || ! $simpleLineIcons || ! $wooMenuCart || ! $wooNav || ! $wooOffCanvas || ! $wooMobileCart || ! $wooCategoriesWidget || ! $wooQuantityButtons || ! $topBar || ! $header || ! $transparentHeader || ! $topHeader || ! $fullScreenHeader || ! $centerHeader || ! $mediumHeader || ! $verticalHeader || ! $customHeader || ! $navigation || ! $links_effect || ! $socialMenu || ! $pageHeader || ! $blog || ! $blogLarge || ! $blogGrid || ! $blogThumbnail || ! $singlePostPrevNext || ! $singlePostAuthorBio || ! $singlePostRelatedPosts || ! $sidebar || ! $comment || ! $pagination || ! $footerWidgets || ! $footerBottom || ! $searchResults || ! $scrollTop || ! $errorPage || ! $responsive ) {
// Array
$aFiles = array();
$aFiles[] = $tSass . '_config.scss';
$aFiles[] = $tSass . '_mixins.scss';
$aFiles[] = $tSass . 'base/_main.scss';
$aFiles[] = $tSass . 'base/_normalize.scss';
$aFiles[] = $tSass . '_layout.scss';
$aFiles[] = $tSass . 'base/_shared.scss';
$aFiles[] = $tSass . 'base/_typography.scss';
$aFiles[] = $tSass . 'base/_form.scss';
$aFiles[] = $tDir . 'plugins/_general.scss';
// Load customSelect
if ( $customSelect ) {
$aFiles[] = $tDir . '_custom-selects.scss';
}
// Load dropDownSearch
if ( $dropDownSearch ) {
$aFiles[] = $tDir . 'header/_search-dropdown.scss';
}
// Load headerReplaceSearch
if ( $headerReplaceSearch ) {
$aFiles[] = $tDir . 'header/_search-replace.scss';
}
// Load overlaySearch
if ( $overlaySearch ) {
$aFiles[] = $tDir . 'header/_search-overlay.scss';
}
// Load megaMenu
if ( $megaMenu ) {
$aFiles[] = $tDir . 'header/_megamenu.scss';
}
// Load sidr
if ( $sidr ) {
$aFiles[] = $tDir . 'plugins/_sidr.scss';
}
// Load dropdown_mobile
if ( $dropdown_mobile ) {
$aFiles[] = $tDir . 'mobile/_dropdown-mobile.scss';
}
// Load fullscreen_mobile
if ( $fullscreen_mobile ) {
$aFiles[] = $tDir . 'mobile/_fullscreen-mobile.scss';
}
// Load slick
if ( $slick ) {
$aFiles[] = $tDir . 'plugins/_slick.scss';
}
// Load topBar
if ( $topBar ) {
$aFiles[] = $tDir . 'topbar/_topbar.scss';
$aFiles[] = $tDir . 'topbar/_topbar-content.scss';
$aFiles[] = $tDir . 'topbar/_topbar-menu.scss';
$aFiles[] = $tDir . 'topbar/_topbar-social.scss';
}
// Load header
if ( $header ) {
$aFiles[] = $tDir . 'header/_header.scss';
}
// Load transparentHeader
if ( $transparentHeader ) {
$aFiles[] = $tDir . 'header/_header-transparent.scss';
}
// Load topHeader
if ( $topHeader ) {
$aFiles[] = $tDir . 'header/_header-top.scss';
}
// Load fullScreenHeader
if ( $fullScreenHeader ) {
$aFiles[] = $tDir . 'header/_header-fullscreen.scss';
}
// Load centerHeader
if ( $centerHeader ) {
$aFiles[] = $tDir . 'header/_header-center.scss';
}
// Load mediumHeader
if ( $mediumHeader ) {
$aFiles[] = $tDir . 'header/_header-medium.scss';
}
// Load verticalHeader
if ( $verticalHeader ) {
$aFiles[] = $tDir . 'header/_header-vertical.scss';
}
// Load customHeader
if ( $customHeader ) {
$aFiles[] = $tDir . 'header/_header-custom.scss';
}
// Load navigation
if ( $navigation ) {
$aFiles[] = $tDir . 'header/_navigation.scss';
}
// Load menu links effect
if ( $links_effect ) {
$aFiles[] = $tDir . 'header/_links_effect.scss';
}
// Load socialMenu
if ( $socialMenu ) {
$aFiles[] = $tDir . 'header/_socialmenu.scss';
}
// Load pageHeader
if ( $pageHeader ) {
$aFiles[] = $tDir . '_page-header.scss';
}
// Load blog
if ( $blog ) {
$aFiles[] = $tDir . 'blog/_blog-entries.scss';
$aFiles[] = $tDir . 'blog/_blog-meta.scss';
$aFiles[] = $tDir . 'blog/_gallery-format.scss';
$aFiles[] = $tDir . 'blog/_link-format.scss';
$aFiles[] = $tDir . 'blog/_quote-format.scss';
$aFiles[] = $tDir . 'blog/_video-audio-formats.scss';
$aFiles[] = $tDir . 'blog/_single-content.scss';
$aFiles[] = $tDir . 'blog/_single-post.scss';
$aFiles[] = $tDir . 'blog/_single-tags.scss';
}
// Load blogLarge
if ( $blogLarge ) {
$aFiles[] = $tDir . 'blog/_blog-large.scss';
}
// Load blogGrid
if ( $blogGrid ) {
$aFiles[] = $tDir . 'blog/_blog-grid.scss';
}
// Load blogThumbnail
if ( $blogThumbnail ) {
$aFiles[] = $tDir . 'blog/_blog-thumbnail.scss';
}
// Load singlePostPrevNext
if ( $singlePostPrevNext ) {
$aFiles[] = $tDir . 'blog/_single-next-prev.scss';
}
// Load singlePostAuthorBio
if ( $singlePostAuthorBio ) {
$aFiles[] = $tDir . 'blog/_single-author-bio.scss';
}
// Load singlePostRelatedPosts
if ( $singlePostRelatedPosts ) {
$aFiles[] = $tDir . 'blog/_single-related-posts.scss';
}
// Load sidebar
if ( $sidebar ) {
$aFiles[] = $tDir . 'sidebar/_sidebar.scss';
}
// Load comment
if ( $comment ) {
$aFiles[] = $tDir . '_comments.scss';
}
// Load pagination
if ( $pagination ) {
$aFiles[] = $tDir . '_pagination.scss';
}
// Load footerWidgets
if ( $footerWidgets ) {
$aFiles[] = $tDir . 'footer/_footer-widgets.scss';
}
// Load footerBottom
if ( $footerBottom ) {
$aFiles[] = $tDir . 'footer/_footer-bottom.scss';
}
// Load searchResults
if ( $searchResults ) {
$aFiles[] = $tDir . '_search.scss';
}
// Load scrollTop
if ( $scrollTop ) {
$aFiles[] = $tDir . 'footer/_scroll-top.scss';
}
// Load errorPage
if ( $errorPage ) {
$aFiles[] = $tDir . '_404.scss';
}
// Load responsive
if ( $responsive ) {
$aFiles[] = $tDir . '_responsive.scss';
}
// If WooCommerce exist
if ( OCEANWP_WOOCOMMERCE_ACTIVE ) {
// Load wooCommerce
$aFiles[] = $tSass . 'woo/_woocommerce.scss';
$aFiles[] = $tSass . 'woo/_woo-responsive.scss';
// Load wooMenuCart
if ( $wooMenuCart ) {
$aFiles[] = $tSass . 'woo-mini-cart.scss';
}
// Load wooNav
if ( $wooNav ) {
$aFiles[] = $tSass . 'woo/_woo-nav.scss';
}
// Load wooOffCanvas
if ( $wooOffCanvas ) {
$aFiles[] = $tSass . 'woo/_woo-off-canvas.scss';
}
// Load wooMobileCart
if ( $wooMobileCart ) {
$aFiles[] = $tSass . 'woo/_woo-mobile-cart.scss';
}
// Load wooCategoriesWidget
if ( $wooCategoriesWidget ) {
$aFiles[] = $tSass . 'woo/_woo-cat-widget.scss';
}
// Load wooQuantityButtons
if ( $wooQuantityButtons ) {
$aFiles[] = $tSass . 'woo/_woo-quantity.scss';
}
}
// Check WP_Filesystem
global $wp_filesystem;
self::init_filesystem();
$scss = new Compiler();
$scss->setFormatter( 'Leafo\ScssPhp\Formatter\Compressed' );
// Get files content
$strCSS = '';
foreach ( $aFiles as $file ) :
$strCSS .= $wp_filesystem->get_contents( $file );
endforeach;
// Compile the SCSS code
$strCSS = $scss->compile( $strCSS );
// Putting all the styles into one CSS file
$wp_filesystem->put_contents( self::get_file( 'css', 'path' ), $strCSS );
} else {
if ( file_exists( self::get_file( 'css', 'path' ) ) ) {
unlink( self::get_file( 'css', 'path' ) );
}
}
}
/**
* Enqueue scripts
*
* @since 1.2.1
*/
public static function enqueue_scripts() {
// Add filter to altering via child theme
$enqueue_scripts = apply_filters( 'ocean_enqueue_generated_files', true );
// Return if enqueue_scripts is set to false through the filter
if ( ! $enqueue_scripts ) {
return;
}
// Get current theme version
$theme_version = wp_get_theme()->get( 'Version' );
// If script exist
if ( file_exists( self::get_file( 'js', 'path' ) ) ) {
// Unregister default scripts
wp_dequeue_script( 'oceanwp-main' );
wp_deregister_script( 'oceanwp-main' );
wp_dequeue_script( 'infinitescroll' );
wp_deregister_script( 'infinitescroll' );
if ( OCEANWP_WOOCOMMERCE_ACTIVE ) {
wp_dequeue_script( 'oceanwp-woocommerce' );
wp_deregister_script( 'oceanwp-woocommerce' );
}
// If the lightbox script is disabled
if ( ! self::get_setting( 'oe_lightbox_script' ) ) {
wp_dequeue_script( 'magnific-popup' );
wp_deregister_script( 'magnific-popup' );
wp_dequeue_script( 'oceanwp-lightbox' );
wp_deregister_script( 'oceanwp-lightbox' );
}
// Enqueue the JS
wp_enqueue_script( 'oceanwp-main', self::get_file( 'js', 'uri' ), array( 'jquery' ), $theme_version, true );
// Localize array
if ( class_exists( 'OCEANWP_Theme_Class' ) ) {
wp_localize_script( 'oceanwp-main', 'oceanwpLocalize', OCEANWP_Theme_Class::localize_array() );
}
}
// If style exist
if ( file_exists( self::get_file( 'css', 'path' ) ) ) {
// Unregister default styles
wp_dequeue_style( 'oceanwp-style' );
wp_deregister_style( 'oceanwp-style' );
if ( ! self::get_setting( 'oe_fontAwesome_style' ) ) {
wp_dequeue_style( 'font-awesome' );
wp_deregister_style( 'font-awesome' );
}
if ( ! self::get_setting( 'oe_simpleLineIcons_style' ) ) {
wp_dequeue_style( 'simple-line-icons' );
wp_deregister_style( 'simple-line-icons' );
}
if ( ! self::get_setting( 'oe_slick_style' ) ) {
wp_dequeue_style( 'slick' );
wp_deregister_style( 'slick' );
}
if ( ! self::get_setting( 'oe_lightbox_script' ) ) {
wp_dequeue_style( 'magnific-popup' );
wp_deregister_style( 'magnific-popup' );
}
if ( OCEANWP_WOOCOMMERCE_ACTIVE ) {
wp_dequeue_style( 'oceanwp-woocommerce' );
wp_deregister_style( 'oceanwp-woocommerce' );
}
// Enqueue the CSS
wp_enqueue_style( 'oceanwp-style', self::get_file( 'css', 'uri' ), false, $theme_version );
}
}
/**
* Add body classes
*
* @since 1.2.1
*/
public static function body_classes( $classes ) {
// If the isotope script is disabled
if ( ! self::get_setting( 'oe_isotope_script' ) ) {
$classes[] = 'no-isotope';
}
// If the lightbox script is disabled
if ( ! self::get_setting( 'oe_lightbox_script' ) ) {
$classes[] = 'no-lightbox';
}
// If the fitvids script is disabled
if ( ! self::get_setting( 'oe_fitVids_script' ) ) {
$classes[] = 'no-fitvids';
}
// If the scroll up script is disabled
if ( ! self::get_setting( 'oe_scrollTop_style' ) ) {
$classes[] = 'no-scroll-top';
}
// If the sidr script is disabled
if ( ! self::get_setting( 'oe_sidr_script' ) ) {
$classes[] = 'no-sidr';
}
// If the carousel script is disabled
if ( ! self::get_setting( 'oe_slick_script' ) ) {
$classes[] = 'no-carousel';
}
// If the match height script is disabled
if ( ! self::get_setting( 'oe_matchHeight_script' ) ) {
$classes[] = 'no-matchheight';
}
// Return classes
return $classes;
}
/**
* Instantiates the WordPress filesystem
*
* @since 1.2.1
*/
public static function init_filesystem() {
// The WordPress filesystem.
global $wp_filesystem;
if ( empty( $wp_filesystem ) ) {
require_once ABSPATH . '/wp-admin/includes/file.php';
WP_Filesystem();
}
return $wp_filesystem;
}
/**
* Gets file path or url
*
* @since 1.2.1
* @link http://aristath.github.io/blog/avoid-dynamic-css-in-head
*/
private static function get_file( $return = 'js', $target = 'path' ) {
// Get the upload directory
$upload_dir = wp_upload_dir();
$js_file = 'main-scripts.js';
$css_file = 'main-style.css';
$folder_path = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'oceanwp';
// The complete path to the files
$js_path = $folder_path . DIRECTORY_SEPARATOR . $js_file;
$css_path = $folder_path . DIRECTORY_SEPARATOR . $css_file;
// Get the URL directory
$uri_folder = $upload_dir['baseurl'];
// Build the URL of the files
$js_uri = trailingslashit( $uri_folder ) . 'oceanwp/' . $js_file;
$css_uri = trailingslashit( $uri_folder ) . 'oceanwp/' . $css_file;
// Return the JS path
if ( 'js' == $return && 'path' == $target ) {
return $js_path;
}
// Return the CSS path
elseif ( 'css' == $return && 'path' == $target ) {
return $css_path;
}
// Return the JS URL
elseif ( 'js' == $return && 'uri' == $target ) {
return $js_uri;
}
// Return the CSS URL
elseif ( 'css' == $return && 'uri' == $target ) {
return $css_uri;
}
}
/**
* Check if the file is writable
*
* @since 1.2.1
* @link http://aristath.github.io/blog/avoid-dynamic-css-in-head
*/
public static function is_writable( $return = 'js' ) {
// Get the upload directory
$upload_dir = wp_upload_dir();
$js_file = '/main-scripts.js';
$css_file = '/main-style.css';
$folder_path = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'oceanwp';
// Check if the folder exist
if ( file_exists( $folder_path ) ) {
// If JS file
if ( 'js' == $return ) {
// Check if the folder is writable
if ( ! is_writable( $folder_path ) ) {
// If the folder is not writable, check if the file is
if ( ! file_exists( $folder_path . $js_file ) ) {
return false;
} else {
// Check if the file writable
if ( ! is_writable( $folder_path . $js_file ) ) {
return false;
}
}
} else {
// If the folder is writable, check if the file is
if ( file_exists( $folder_path . $js_file ) ) {
// Check if the file writable
if ( ! is_writable( $folder_path . $js_file ) ) {
return false;
}
}
}
}
// If CSS file
elseif ( 'css' == $return ) {
// Check if the folder is writable
if ( ! is_writable( $folder_path ) ) {
// If the folder is not writable, check if the file is
if ( ! file_exists( $folder_path . $css_file ) ) {
return false;
} else {
// Check if the file writable
if ( ! is_writable( $folder_path . $css_file ) ) {
return false;
}
}
} else {
// If the folder is writable, check if the file is
if ( file_exists( $folder_path . $css_file ) ) {
// Check if the file writable
if ( ! is_writable( $folder_path . $css_file ) ) {
return false;
}
}
}
}
} else {
// Returns true or false
return wp_mkdir_p( $folder_path );
}
// If we passed all of the above tests, the file is writable.
return true;
}
}
new Ocean_Extra_Scripts_Panel();