403Webshell
Server IP : 27.254.86.99  /  Your IP : 216.73.216.234
Web Server : LiteSpeed
System : Linux wp1.hostneverdie.com 4.18.0-553.46.1.lve.el8.x86_64 #1 SMP Wed Apr 2 11:16:45 UTC 2025 x86_64
User : qtccargo ( 1078)
PHP Version : 8.2.29
Disable Function : apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd,exec, fp, fput, highlight_file, ini_alter, ini_restore, inject_code, passthru,phpAds_remoteInfo, phpAds_XmlRpc,phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid,posix_setuid, posix_setuid, posix_uname,proc_open,proc_close, proc_get_status, proc_nice, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode, show_source,pcntl_exec,virtual,suexec,dbmopen,dl,disk_free_space,diskfreespace,leak
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/qtccargo/domains/iamumbrella.com/public_html/wp-content/themes/engage/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/qtccargo/domains/iamumbrella.com/public_html/wp-content/themes/engage/functions.php
<?php

//
// Engage Theme
//
// Author: Veented
// URL: http://themeforest.net/user/Veented/
//

load_theme_textdomain( 'engage', get_template_directory() . '/lang' );

if ( ! class_exists( 'Engage_Theme' ) ) {

	class Engage_Theme {

		function __construct() {

			// Load theme framework

			$this->load_framework();

			// Theme activation

			add_action( 'after_switch_theme', array( $this, 'after_switch_theme' ) );

			// Localization

			add_action( 'after_setup_theme', array( $this, 'after_setup_theme' ), 10 );

      // Theme Options - Redux Framework

      add_action( 'after_setup_theme', array( $this, 'redux_init' ), 20 );

			// Theme scripts and styles

			$this->load_scripts_styles();

			// Navigation

			add_action( 'init', array( $this, 'init_nav' ) );
			add_filter( 'walker_nav_menu_start_el', array( $this, 'filter_walk_nav_menu_items' ), 10, 4);

			// Image Sizes

			add_action( 'after_setup_theme', array( $this, 'init_theme_images' ) );
			add_filter( 'image_size_names_choose', array( $this, 'filter_image_size_names' ) );

			// Theme Support

			add_theme_support( 'post-formats', array( 'gallery', 'video', 'audio', 'quote', 'link' ) );
			add_theme_support( 'automatic-feed-links' );
			add_theme_support( 'woocommerce' );
			add_theme_support( 'title-tag' );

			// WooCommerce

			add_theme_support( 'wc-product-gallery-zoom' );
			add_theme_support( 'wc-product-gallery-lightbox' );
			add_theme_support( 'wc-product-gallery-slider' );

			// Filters

			add_filter( 'template_redirect', array( $this, 'filter_template_redirect' ) );
			add_filter( 'widget_tag_cloud_args', array( $this, 'tag_cloud' ), 90 );

			// Comments

			add_action( 'wp_enqueue_scripts', array( $this, 'theme_comments' ) );

			// Sidebars

			add_action( 'widgets_init', array( $this, 'register_sidebars' ) );

			// Gutenberg styling
			add_action( 'enqueue_block_editor_assets', array( $this, 'gutenberg_styles' ) );

			// Admin related

			$this->init_admin();
		}

		/**
		 * load_framework - Load all framework related files.
		 *
		 * @since       1.0
		 */

		function load_framework() {

			require_once( get_template_directory() . '/framework/plugins/plugins-config.php' ); 	 // Plugins Manager
			require_once( get_template_directory() . '/framework/functions/general-functions.php' ); // General functions
			require_once( get_template_directory() . '/framework/blog/blog-functions.php' ); // Blog related functions
			require_once( get_template_directory() . '/framework/header/header-functions.php' ); // Header related functions
			require_once( get_template_directory() . '/framework/functions/footer-functions.php' ); 	// Footer related functions
			require_once( get_template_directory() . '/framework/helpers/image-resize.php' );
			require_once( get_template_directory() . '/framework/translate/translate.php' ); // Easy translation

			// Wizard

			require_once( get_template_directory() . '/framework/setup-wizard/envato_setup.php' );

			// Theme Dashboard

			require_once( get_template_directory() . '/framework/admin/theme-dashboard.php' );

			// Automatic Theme Updates

			require_once( get_template_directory() . '/framework/admin/theme-updates/theme-updates.php' );

			// Add Options

			add_option( 'engage_misc', '', '', 'yes' );

		}

		/**
		 * redux_init - Load the Redux Framework config.
		 *
		 * @since       1.0
		 */

		function redux_init() {

			if ( class_exists( 'ReduxFramework' ) && file_exists( get_template_directory() . '/framework/theme-panel/engage/engage-config.php' ) ) {
			   require_once( get_template_directory() . '/framework/theme-panel/engage/engage-config.php' );
			}

		}

		/**
		 * after_switch_theme - Actions taken after the theme switch.
		 *
		 * @since       1.0
		 */

		function after_switch_theme() {

        global $pagenow;
        if ( "themes.php" == $pagenow && is_admin() && isset( $_GET['activated'] ) ) {
            wp_redirect( admin_url( 'admin.php?page=engage-dashboard' ) );
        }

		}

		/**
		 * after_setup_theme - Actions taken after the theme setup.
		 *
		 * @since       1.0
		 */

		function after_setup_theme() {

			load_theme_textdomain( 'engage', get_template_directory() . '/lang' );
			add_editor_style( array( '/css/editor.css' ) );

			global $wp_version;

			if ( version_compare( $wp_version, '3.4', '>=' ) ) {
			    add_theme_support( "custom-header" );
			    add_theme_support( "custom-background" );
			}

			// Remove old Team Members

      remove_action( 'init', 'engage_team_register' );

		}

		/**
		 * load_scripts_styles - Register and enqueue scripts and styles.
		 *
		 * @since       1.0
		 */

		function load_scripts_styles() {
			add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts_styles' ) );

			// Dynamic CSS related
			add_action( 'wp_ajax_engage_dynamic_css', array( $this, 'dynamic_css' ) );
			add_action( 'wp_ajax_nopriv_engage_dynamic_css', array( $this, 'dynamic_css' ) );

			// Dynamic admin CSS
			add_action( 'wp_ajax_vntd_gutenberg_dynamic_css', array( $this, 'engage_dynamic_gutenberg_css' ) );
			add_action( 'wp_ajax_nopriv_vntd_gutenberg_dynamic_css', array( $this, 'engage_dynamic_gutenberg_css' ) );
		}

		/**
		 * add_action_after_switch_theme - Actions taken after the theme switch.
		 *
		 * @since       1.0
		 */

		function enqueue_scripts_styles() {
			if ( !is_admin() ) {

				// Load JS scripts

				wp_register_script( 'superfish', get_template_directory_uri() . '/js/plugins/superfish/superfish.min.js', array( 'jquery' ), '', true );
				wp_enqueue_script( 'engage-navigation', get_template_directory_uri() . '/js/engage.navigation.js', array( 'jquery', 'superfish' ), '1.0.14', true);
				wp_enqueue_script( 'engage-main', get_template_directory_uri() . '/js/engage.main.js', array( 'jquery', 'appear' ), '1.0.8', true );

				wp_register_script( 'engage-masonry', get_template_directory_uri() . '/js/engage.masonry.js', array( 'jquery' ), '1.0.4', true);
				wp_register_script( 'engage-grid', get_template_directory_uri() . '/js/engage.grid.js', array( 'jquery', 'cube-portfolio' ), '1.0.11' );
				wp_register_script( 'engage-carousels', get_template_directory_uri() . '/js/engage.carousels.js', array( 'jquery', 'owl-carousel' ) );
				wp_register_script( 'engage-sliders', get_template_directory_uri() . '/js/engage.sliders.js', array( 'jquery', 'swiper' ), '1.0.13', true );
				wp_register_script( 'engage-videos', get_template_directory_uri() . '/js/engage.videos.js', array( 'jquery', 'video-js' ), '1.0.4', true );
				wp_register_script( 'engage-appear', get_template_directory_uri() . '/js/engage.appear.js', array( 'jquery', 'appear' ) );
				wp_register_script( 'engage-ajax-pagination', get_template_directory_uri() . '/js/engage.ajax-pagination.js', array( 'jquery' ), '1.0.48', true );

				wp_register_script( 'jribbble', get_template_directory_uri() . '/js/plugins/jribbble.min.js', array('jquery') );
				wp_register_script( 'appear', get_template_directory_uri() . '/js/plugins/appear/jquery.appear.js', array( 'jquery' ), '1.0.1' );
				wp_register_script( 'skrollr', get_template_directory_uri() . '/js/plugins/skrollr/skrollr.min.js', array('jquery'), '1.0.1' );
				wp_register_script( 'swiper', get_template_directory_uri() . '/js/plugins/swiper.jquery.min.js', array('jquery') );
				wp_register_script( 'video-js', get_template_directory_uri() . '/js/plugins/video.js', array('jquery') );
				wp_register_script( 'owl-carousel', get_template_directory_uri() . '/js/plugins/owl-carousel/owl.carousel.min.js', array('jquery') );
				wp_register_script( 'vide', get_template_directory_uri() . '/js/plugins/vide/jquery.vide.min.js', array('jquery') );
				wp_register_script( 'YTPlayer', get_template_directory_uri() . '/js/plugins/YTPlayer/jquery.mb.YTPlayer.min.js', array('jquery'), '1.0.1' );
				wp_register_script( 'magnific-popup', get_template_directory_uri() . '/js/plugins/magnific-popup/jquery.magnific-popup.min.js', array('jquery') );
				wp_register_script( 'cube-portfolio', get_template_directory_uri() . '/js/plugins/cubeportfolio/jquery.cubeportfolio.min.js', array( 'jquery' ), '4.2.0', true );

				// Google Maps

				$api_key = '';

				if ( engage_option( 'google_maps_api' ) ) {
					$api_key = esc_attr( engage_option( 'google_maps_api' ) );
					wp_register_script( 'google-map-sensor', '//maps.google.com/maps/api/js?key=' . esc_attr( $api_key ) , array( 'jquery' ) );
					wp_register_script( 'google-map-label', get_template_directory_uri() . '/js/plugins/map/markerwithlabel.js', array( 'google-map-sensor' ) );
				}

				// Load stylesheets

				wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/css/bootstrap.min.css' );

				wp_enqueue_style( 'engage-icons', get_template_directory_uri() . '/css/engage-icons/css/style.css' );
				wp_enqueue_style( 'animate', get_template_directory_uri() . '/css/scripts/animate.min.css' );
				wp_dequeue_style( 'font-awesome' ); // Dequeue plugin version
				wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/css/font-awesome/css/font-awesome.min.css', false, '5.7.1' );

				wp_enqueue_style( 'engage-ui', get_template_directory_uri() . '/css/ui.css', '', '1.0.3' );
				wp_enqueue_style( 'engage-styles', get_template_directory_uri() . '/style.css', array( 'bootstrap', 'font-awesome', 'animate' ), '1.0.63' ); // MAIN STYLESHEET

				// RTL

				wp_style_add_data( 'engage-styles', 'rtl', 'replace' );

				// Responsive

				wp_enqueue_style( 'engage-responsive', get_template_directory_uri() . '/css/responsive.css', array(), '1.0.5' );	// Load responsive stylesheet

				wp_register_style( 'swiper', get_template_directory_uri() . '/css/plugins/swiper.min.css' );
				wp_register_style( 'video-js', get_template_directory_uri() . '/css/plugins/video-js.min.css' );
				wp_register_style( 'YTPlayer', get_template_directory_uri() . '/css/plugins/mb.YTPlayer.min.css' );
				wp_register_style( 'magnific-popup', get_template_directory_uri() . '/css/plugins/magnific-popup.css' );
				wp_register_style( 'cube-portfolio', get_template_directory_uri() . '/css/plugins/cubeportfolio.min.css', false, '1.0.1' );
				wp_register_style( 'owl-carousel', get_template_directory_uri() . '/css/plugins/owl.carousel.css' );

				if ( engage_option( 'theme_skin' ) == 'dark' ) {
					wp_enqueue_style( 'engage-dark', get_template_directory_uri() . '/css/theme-skins/dark.css', array( 'engage-styles' ), '1.0.39' );
				}

				// Dynamic CSS
				wp_enqueue_style( 'engage-dynamic-css', admin_url( 'admin-ajax.php' ) . '?action=engage_dynamic_css' );

			}

		}

		/**
		 * dynamic_css - Dynamic theme stylesheet.
		 *
		 * @since       1.0
		 */

		function dynamic_css() {
			require( get_template_directory() . '/css/dynamic.css.php' );
			exit;
		}

		// Dynamic Gutenberg Styling

		function engage_dynamic_gutenberg_css() {
			require( get_template_directory() . '/css/admin/gutenberg.css.php' );
			exit;
		}

		// Gutenberg Styling

		public function gutenberg_styles() {
			 wp_enqueue_style( 'vntd-gutenberg', get_theme_file_uri( '/css/gutenberg.css' ), false, '', 'all' );
			 if ( ! has_filter( 'engage-remove-gutenberg-dynamic-css' ) ) {
		     wp_enqueue_style( 'vntd-gutenberg-dynamic', admin_url( 'admin-ajax.php' ) . '?action=vntd_gutenberg_dynamic_css', array( 'vntd-gutenberg' ) );
		   }
		}

		/**
		 * register_sidebars - Register sidebars.
		 *
		 * @since       1.0
		 */

		function register_sidebars() {

			register_sidebar( array(
		        'name' => esc_html__('Default Sidebar','engage'),
		        'id' => 'default_sidebar',
		        'description'   => esc_html__('Default theme sidebar.','engage'),
		        'before_widget' => '<div id="%1$s" class="widget %2$s">',
		        'after_widget' => '</div>',
		        'before_title' => '<h5 class="widget-title">',
		        'after_title' => '</h5>',
		    ));
		    register_sidebar(array(
		        'name' => esc_html__('Secondary Sidebar','engage'),
		        'id' => 'sidebar_secondary',
		        'description'   => esc_html__( 'Secondary theme sidebar. Used by default in two sidebar page layouts.', 'engage' ),
		        'before_widget' => '<div id="%1$s" class="widget %2$s">',
		        'after_widget' => '</div>',
		        'before_title' => '<h5 class="widget-title">',
		        'after_title' => '</h5>',
		    ));
			register_sidebar(array(
		        'name' => esc_html__('Archives/Search Sidebar','engage'),
		        'id' => 'archives',
		        'description'   => esc_html__('Sidebar for posts archive and search results.','engage'),
		        'before_widget' => '<div id="%1$s" class="widget %2$s">',
		        'after_widget' => '</div>',
		        'before_title' => '<h5 class="widget-title">',
		        'after_title' => '</h5>',
		    ));

		    register_sidebar(array(
		        'name' => esc_html__('Footer Column 1','engage'),
		        'id' => 'footer1',
		        'description'   => esc_html__('Widgets for the first footer column.','engage'),
		        'before_widget' => '<div class="widget footer-widget footer-widget-col-1 %2$s">',
		        'after_widget' => '</div>',
		        'before_title' => '<h4 class="widget-title">',
		        'after_title' => '</h4>',
		    ));
		    register_sidebar(array(
		        'name' => esc_html__('Footer Column 2','engage'),
		        'id' => 'footer2',
		        'description'   => esc_html__('Widgets for the second footer column.','engage'),
		        'before_widget' => '<div class="widget footer-widget footer-widget-col-2 %2$s">',
		        'after_widget' => '</div>',
		        'before_title' => '<h4 class="widget-title">',
		        'after_title' => '</h4>',
		    ));
		    register_sidebar(array(
		        'name' => esc_html__('Footer Column 3','engage'),
		        'id' => 'footer3',
		        'description'   => esc_html__('Widgets for the third footer column.','engage'),
		        'before_widget' => '<div class="widget footer-widget footer-widget-col-3 %2$s">',
		        'after_widget' => '</div>',
		        'before_title' => '<h4 class="widget-title">',
		        'after_title' => '</h4>',
		    ));
		    register_sidebar(array(
		        'name' => esc_html__('Footer Column 4','engage'),
		        'id' => 'footer4',
		        'description'   => esc_html__('Widgets for the fourth footer column.','engage'),
		        'before_widget' => '<div class="widget footer-widget footer-widget-col-4 %2$s">',
		        'after_widget' => '</div>',
		        'before_title' => '<h4 class="widget-title">',
		        'after_title' => '</h4>',
		    ));
		    register_sidebar(array(
		        'name' => esc_html__('Footer Column 5','engage'),
		        'id' => 'footer5',
		        'description'   => esc_html__('Widgets for the fifth footer column. Make sure to enable a specific footer layout in Theme Options / Footer to display this column.','engage'),
		        'before_widget' => '<div class="widget footer-widget footer-widget-col-5 %2$s">',
		        'after_widget' => '</div>',
		        'before_title' => '<h4 class="widget-title">',
		        'after_title' => '</h4>',
		    ));
		    if ( class_exists( 'Woocommerce' ) ) { // If WooCommerce is enabled, activate related sidebars

		    	register_sidebar( array(
		    	    'name' => esc_html__('WooCommerce Shop Page', 'engage' ),
		    	    'id'	=> 'woocommerce_shop',
		    	    'description'   => esc_html__('WooCommerce shop page sidebar.','engage'),
		    	    'before_widget' => '<div id="%1$s" class="widget %2$s">',
		    	    'after_widget' => '</div>',
		    	    'before_title' => '<h5 class="widget-title">',
		    	    'after_title' => '</h5>',
		    	));

		    }

		}

		/**
		 * init_nav - Register nav menus.
		 *
		 * @since       1.0
		 */

		function init_nav() {

			register_nav_menu( 'primary', esc_html__( 'Primary Navigation', 'engage' ) );
			register_nav_menu( 'topbar', esc_html__( 'Top Bar Left Navigation', 'engage' ) );
            register_nav_menu( 'topbar_right', esc_html__( 'Top Bar Right Navigation', 'engage' ) );

		}

		/**
		 * filter_walk_nav_menu_items - Replace shortcode in nav elements href attribute.
		 *
		 * @since       1.0
		 */

		function filter_walk_nav_menu_items( $output, $item, $depth, $args ) {

			global $post;
			$front_id = get_option( 'page_on_front' );



			if( is_object( $post ) ) {
				if ( strpos( $output, 'http://frontpage_url/') !== false ) {
				    $output = str_replace( 'http://frontpage_url/', get_permalink( $front_id ), $output );
				    $output = str_replace( get_permalink( $post->ID ) . '#', '#', $output );
				} elseif ( strpos( $output, 'https://frontpage_url/') !== false ) {
					$output = str_replace( 'https://frontpage_url/', get_permalink( $front_id ), $output );
					$output = str_replace( get_permalink( $post->ID ) . '#', '#', $output );
				} elseif ( strpos( $output, 'http://current_page_url/') !== false ) {
					$output = str_replace( 'http://current_page_url/', get_permalink( $post->ID ), $output );
					$output = str_replace( get_permalink( $post->ID ) . '#', '#', $output );
				}
			}

		    return $output;
		}

		 function get_image_sizes() {
		 	global $_wp_additional_image_sizes;

		 	$sizes = array();

		 	foreach ( get_intermediate_image_sizes() as $_size ) {
		 		if ( in_array( $_size, array('thumbnail', 'medium', 'medium_large', 'large') ) ) {
		 			$sizes[ $_size ]['width']  = get_option( "{$_size}_size_w" );
		 			$sizes[ $_size ]['height'] = get_option( "{$_size}_size_h" );
		 			$sizes[ $_size ]['crop']   = (bool) get_option( "{$_size}_crop" );
		 		} elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
		 			$sizes[ $_size ] = array(
		 				'width'  => $_wp_additional_image_sizes[ $_size ]['width'],
		 				'height' => $_wp_additional_image_sizes[ $_size ]['height'],
		 				'crop'   => $_wp_additional_image_sizes[ $_size ]['crop'],
		 			);
		 		}
		 	}

		 	return $sizes;
		 }

		 /**
		  * image_sizes - Declaration of theme specific image sizes
		  *
		  * @since       1.0
		  */

		 public static function image_sizes() {
		 	$img_sizes = array(
		 		'engage-sidebar-wide' => array(
		 			'name' => esc_html__( 'Engage Sidebar Wide', 'engage' ),
		 			'width' => 900,
		 			'height' => 470,
		 			'crop' => true
		 		),
		 		'engage-masonry-square' => array(
		 			'name' => esc_html__( 'Engage Grid Square', 'engage' ),
		 			'width' => 600,
		 			'height' => 600,
		 			'crop' => true
		 		),
		 		'engage-masonry-regular' => array(
		 			'name' => esc_html__( 'Engage Grid', 'engage' ),
		 			'width' => 600,
		 			'height' => 420,
		 			'crop' => true
		 		),
		 		'engage-masonry-auto' => array(
		 			'name' => esc_html__( 'Engage Masonry', 'engage' ),
		 			'width' => 600,
		 			'height' => 0,
		 			'crop' => false
		 		),
		 	);
		 	return $img_sizes;
		}

		/**
		 * all_image_sizes - Array of all image sizes: base ones that are applied with add_image_size and other ones used across the theme for dynamic cropping.
		 *
		 * @since       1.0
		 */

		public static function all_image_sizes() {

			$base_sizes = Engage_Theme::image_sizes();

			$other_img_sizes = array(
				'engage-sidebar-auto' => array(
					'width' => 900,
					'height' => null,
					'crop' => false
				),
				'engage-fullwidth-crop' => array(
					'width' => 1210,
					'height' => 600,
					'crop' => true
				),
				'engage-fullwidth-auto' => array(
					'width' => 1210,
					'height' => null,
					'crop' => false
				)
			);

			return array_merge( $base_sizes, $other_img_sizes );

		}

		/**
		 * init_theme_images - Add image sizes
		 *
		 * @since       1.0
		 */

		function init_theme_images() {

				// Image Sizes

				add_theme_support( 'post-thumbnails' );
				set_post_thumbnail_size( 150, 150, true );

				$img_sizes = Engage_Theme::image_sizes();

				// Register theme image sizes, only the most used ones

				foreach ( $img_sizes as $img_size_id => $img ) {
					add_image_size( $img_size_id, $img[ 'width' ], $img[ 'height' ], $img[ 'crop' ] );
				}


		}

		/**
		 * image_size_names_choose - Localize image size names.
		 *
		 * @since       1.0
		 */

		function filter_image_size_names( $sizes ) {

			$custom_sizes = array();

			foreach( Engage_Theme::image_sizes() as $img_size_id => $img_size ) {
				$custom_sizes[ $img_size_id ] = $img_size[ 'name' ];
			}

		    return array_merge( $sizes, $custom_sizes );

		}

		/**
		 * init_admin - All admin dashboard related actions and functions.
		 *
		 * @since       1.0
		 */

		function init_admin() {
			add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts_styles' ) );
		}

		/**
		 * admin_scripts_styles - Admin related scripts and styles.
		 *
		 * @since       1.0
		 */

		function admin_scripts_styles() {

			// Scripts
			wp_enqueue_media();
			wp_register_script( 'dashboard-jquery', get_template_directory_uri() . '/js/admin/engage.admin.js', array(), '1.1' );
			wp_register_script( 'media-uploader', get_template_directory_uri() . '/js/admin/media-uploader.js', array( 'jquery' ), true );
			wp_enqueue_script( 'dashboard-jquery', '', '', '', true );
			wp_enqueue_script( 'thickbox', '', '', '', true );

			$updates_url = admin_url( 'themes.php?page=install-required-plugins' );

			wp_localize_script( 'dashboard-jquery', 'VNTDWP',
				array(
					'themeurl' => get_template_directory_uri(),
					'updateInfo' => esc_html__( 'Theme: To get instant access to an update, please visit our', 'engage' ) . ' <a href="https://plugins.veented.com/" target="_blank">Veented Plugins</a> ' . esc_html__( 'service.', 'engage' ),
					'updateInfoAvailable' => sprintf( esc_html__( 'Theme: There seem to be plugin updates available for you in', 'engage' ) . ' <a href="%s">' . esc_html__( 'Appearance / Install Plugins', 'engage' ) . '</a> ' . esc_html__( 'menu. If this particular plugin update is not available there, please visit', 'engage' ) . ' <a href="https://plugins.veented.com/" target="_blank">Veented Plugins</a> ' . esc_html__( 'service.', 'engage' ), $updates_url ),
					'updateLayerSlider' => esc_html__( 'Note: If you have issues updating the Layer Slider plugin, please deactivate the plugin first and then try again. You may also try removing the plugin completely and installing it all over again (none of your settings/sliders will be gone).', 'engage' ),
					'classicEditorInfo' => esc_html__( 'Classic Editor enables the previous Classic Editor (Pre-Gutenberg) and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc.', 'engage' ),
					't_addTemplate' => esc_html__( 'Add Template', 'engage' ),
					't_jumpTo' => esc_html__( 'Jump to', 'engage' ),
				)
			);

			// Styles
			wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/css/font-awesome/css/font-awesome.min.css' );
			wp_enqueue_style( 'engage-admin', get_template_directory_uri() . '/css/admin/admin.css', array(), '1.0.5' );
			wp_enqueue_style( 'engage-icons', get_template_directory_uri() . '/css/engage-icons/css/style.css' );

			if ( is_rtl() ) {
				wp_enqueue_style( 'engage-admin-rtl', get_template_directory_uri() . '/css/admin/admin-rtl.css', array( 'engage-admin' ), '1.0.0' );
			}

		}

		/**
		 * tag_cloud - tag cloud widget configuration.
		 *
		 * @since       1.0
		 */

		function tag_cloud( $args = array() ) {
		   $args[ 'smallest' ] = 14;
		   $args[ 'largest' ] = 14;
		   $args[ 'unit' ] = 'px';
		   return $args;
		}

		/**
		 * theme_comments - comments section related.
		 *
		 * @since       1.0
		 */

		function theme_comments() {
			if( is_singular() || is_page() ) {
				wp_enqueue_script( 'comment-reply', '', '', '', true);
			}
		}

		/**
		 * filter_template_redirect - set a default content width.
		 *
		 * @since       1.0
		 */

		function filter_template_redirect( $embed_size ) {
			global $content_width;
			$content_width = 1170;
		}

		/**
		 * color_array - returns a default theme color array.
		 *
		 * @since       1.0
		 */

		public static function color_array( $custom = false ) {

			$color_array = array(
				'white' => esc_html__( 'White', 'engage' ),
				'accent' => esc_html__( 'Accent', 'engage' ),
				'dark' => esc_html__( 'Dark', 'engage' ),
			);

			if( $custom == true ) {
				$color_array[ 'custom' ] = esc_html__( 'Custom', 'engage' );
			}

			return $color_array;

		}

		/**
		 * hover_color_array - returns a default theme hover color array.
		 *
		 * @since       1.0
		 */

		public static function hover_color_array() {

			$color_array = array(
				'white' => esc_html__( 'White', 'engage' ),
				'dark' => esc_html__( 'Dark', 'engage' ),
				'accent' => esc_html__( 'Accent', 'engage' )
			);

			return $color_array;

		}

		public static $default_address = 'Canal St, New York, NY 10013, USA';
		public static $default_address_ll = '40.7179907,-74.0001119';

	}

	// Create a new object of the main theme class
	$engage_theme = new Engage_Theme();

}

//
// Get Theme Options Value
//

if ( !function_exists( 'engage_option' ) ) {
	function engage_option( $option_name, $option_name_value = null ) {

		global $engage_options;

		if ( $engage_options == null ) {
			$engage_options = get_option( 'engage_options' );
		}

		if ( is_array( $engage_options ) ) {

			if ( $option_name_value == null) {

				if ( array_key_exists( $option_name, $engage_options ) ) {
					return $engage_options[ $option_name ];
				} else {
					return null;
				}

			} else {

				if ( array_key_exists( $option_name, $engage_options ) && is_array( $engage_options[ $option_name ] ) ) {

					if ( array_key_exists( $option_name_value, $engage_options[ $option_name ] ) ) {
						return $engage_options[ $option_name ][ $option_name_value ];
					}

				} else {
					return null;
				}

			}

		}

		return '';

	}
}

if ( !function_exists( 'engage_option_true' ) ) {
	function engage_option_true( $option_name = null, $post_id = null ) {

		if ( ! $option_name ) return false;
		if ( ! $post_id ) $post_id = get_the_ID();

        if ( get_post_meta( $post_id, $option_name, true ) == 'default' || !get_post_meta( $post_id, $option_name, true ) ) {
            if ( engage_option( 'g_' . $option_name ) === false ) {
                return false;
            } else {
                return true;
            }
        }

		if ( get_post_meta( $post_id, $option_name, true ) == 'yes' || get_post_meta( $post_id, $option_name, true ) != 'no' && engage_option( 'g_' . $option_name ) == true ) {
			return true;
		}

		return false;
	}
}

//
// Visual Composer related
//

if ( class_exists( 'Vc_Manager' ) ) {

	function engage_extend_composer() {
		require_once get_template_directory() . '/wpbakery/vc-extend.php';
	}

	$list = array(
	    'page',
	    'post',
	    'portfolio'
	);

	vc_set_default_editor_post_types( $list );

	add_action( 'init', 'engage_extend_composer', 20 );

    add_action( 'vc_before_init', 'engage_vcSetAsTheme' );

    function engage_vcSetAsTheme() {
        vc_set_as_theme();
    }
}



//
// Custom Menus
//

class engage_Custom_Menu_Class extends Walker_Nav_Menu {

	function start_lvl(&$output, $depth = 0, $args = array()) {
		$indent = str_repeat("\t", $depth);
		$output .= "\n$indent<ul class=\"dropdown-menu\">\n";
	}

	function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {

		global $wp_query;

		$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';

		$class_names = $value = '';

		$classes = empty( $item->classes ) ? array() : (array) $item->classes;

		$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
		$mega_menu_class = '';
		if( $depth == 0 && get_post_meta( $item->ID, '_menu_item_vntd_mega_menu', true ) == 'checked' && strpos( $class_names, 'mega_menu' ) === false ) {
			$mega_menu_class = 'mega-menu ';
		}
		$class_names = ' class="' . $mega_menu_class . esc_attr( $class_names ) . '"';

		$id_prefix = '';

		if ( is_object( $args ) && property_exists( $args, 'emobile' ) && $args->emobile == true ) {
			$id_prefix = 'mobile-';
		}

		$output .= $indent . '<li id="' . $id_prefix . 'menu-item-'. $item->ID . '"' . $value . $class_names .'>';

		$attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : '';
		$attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : '';
		$attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : '';
		$attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';

		$item_output = $args->before;
		$item_output .= '<a'. $attributes .'><span>';
		$item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;

		if( $item->description && engage_header_style() == 'classic-subtitles' ) {

			$item_output .= '<span class="sub">' . $item->description . '</span>';

		}

		$item_output .= '</span></a>';
		$item_output .= $args->after;

		$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
	}
}

// Remove custom post type parent element

function engage_remove_parent_classes( $class )
{
	return ($class == 'current_page_item' || $class == 'current_page_parent' || $class == 'current_page_ancestor'  || $class == 'current-menu-item') ? FALSE : TRUE;
}

function engage_add_class_to_wp_nav_menu( $classes )
{

	$classes = array_filter($classes, "engage_remove_parent_classes");

	return $classes;
}

//
// Woocommerce
//

if ( class_exists( 'Woocommerce' ) && ! has_filter( 'engage_disable_woocommerce_config' ) ) {
	require_once( get_template_directory() . '/woocommerce/config.php' );
}

if ( !function_exists('engage_sim_styles') ) {

	function engage_sim_styles() {
		wp_enqueue_style('cubePortfolio');
		wp_enqueue_style('magnific-popup');
		wp_enqueue_style('owl-carousel');
	}
	add_action('wp_enqueue_scripts', 'engage_sim_styles');
}

//
// Media View Settings
//

if ( !function_exists( 'engage_media_view_settings' ) ) {
	function engage_media_view_settings( $settings, $post ) {
	    if (!is_object($post)) return $settings;
	    $shortcode = '[gallery ';
	    $ids = get_post_meta($post->ID, 'gallery_images', TRUE);
	    $ids = explode(",", $ids);

	    if ( is_array( $ids ) )
	        $shortcode .= 'ids = "' . implode(',',$ids) . '"]';
	    else
	        $shortcode .= "id = \"{$post->ID}\"]";
	    $settings['shibaMlib'] = array('shortcode' => $shortcode);
	    return $settings;

	}
	add_filter( 'media_view_settings', 'engage_media_view_settings', 10, 2 );
}

/**
 * WordPress allows UTF8 characters such as copyright symbol in filenames but these break in Safari
 *
 * @see https://wordpress.org/support/topic/uploaded-image-with-accents-in-name-image-dont-show-in-safari-6 for original function
 * @see https://core.trac.wordpress.org/ticket/22363 for progress on fixing this bug
 *
 * #wordpress
 */
function sanitize_filename_on_upload($filename) {
  $ext = end(explode('.',$filename));
  $sanitized = preg_replace('/[^a-zA-Z0-9-_.]/','', substr($filename, 0, -(strlen($ext)+1)));
  $sanitized = str_replace('.','-', $sanitized);
  return strtolower($sanitized.'.'.$ext);
}
add_filter('sanitize_file_name', 'sanitize_filename_on_upload', 10);

Youez - 2016 - github.com/yon3zu
LinuXploit