Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.144.235.195
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/misswavenigeria.com/wp-content/themes/popularfx/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/misswavenigeria.com/wp-content/themes/popularfx//functions.php
<?php
/**
 * PopularFX functions and definitions
 *
 * @link https://popularfx.com/docs/
 *
 * @package PopularFX
 */

if ( ! defined( 'POPULARFX_VERSION' ) ) {
	// Replace the version number of the theme on each release.
	define( 'POPULARFX_VERSION', '1.2.6' );
}

if ( ! defined( 'POPULARFX_PAGELAYER_API' ) ) {
	define( 'POPULARFX_PAGELAYER_API', 'https://api.pagelayer.com/' );
}

if ( ! defined( 'POPULARFX_WWW_URL' ) ) {
	define( 'POPULARFX_WWW_URL', 'https://popularfx.com' );
}

if ( ! defined( 'POPULARFX_PRO_URL' ) ) {
	define( 'POPULARFX_PRO_URL', 'https://popularfx.com/pricing?from=pfx-theme' );
}

if ( ! defined( 'POPULARFX_URL' ) ) {
	define( 'POPULARFX_URL', get_template_directory_uri() );
}

if(!defined('PAGELAYER_VERSION')){
	define('POPULARFX_PAGELAYER_PRO_URL', 'https://pagelayer.com/pricing?from=pfx-theme');
}

if ( ! function_exists( 'popularfx_setup' ) ){
	/**
	 * Sets up theme defaults and registers support for various WordPress features.
	 *
	 * Note that this function is hooked into the after_setup_theme hook, which
	 * runs before the init hook. The init hook is too late for some features, such
	 * as indicating support for post thumbnails.
	 */
	function popularfx_setup() {
		/*
		 * Make theme available for translation.
		 * Translations can be filed in the /languages/ directory.
		 * If you're building a theme based on PopularFX, use a find and replace
		 * to change 'popularfx' to the name of your theme in all the template files.
		 */
		load_theme_textdomain( 'popularfx', get_stylesheet_directory() . '/languages' );

		// Add default posts and comments RSS feed links to head.
		add_theme_support( 'automatic-feed-links' );

		/*
		 * Let WordPress manage the document title.
		 * By adding theme support, we declare that this theme does not use a
		 * hard-coded <title> tag in the document head, and expect WordPress to
		 * provide it for us.
		 */
		add_theme_support( 'title-tag' );

		/*
		 * Enable support for Post Thumbnails on posts and pages.
		 *
		 * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
		 */
		add_theme_support( 'post-thumbnails' );

		// This theme uses wp_nav_menu() in two locations.
		register_nav_menus(
			array(
				'primary' => __( 'Primary Menu', 'popularfx' ),
			)
		);

		/*
		 * Switch default core markup for search form, comment form, and comments
		 * to output valid HTML5.
		 */
		add_theme_support(
			'html5',
			array(
				'search-form',
				'comment-form',
				'comment-list',
				'gallery',
				'caption',
				'style',
				'script',
			)
		);

		// Add theme support for selective refresh for widgets.
		add_theme_support( 'customize-selective-refresh-widgets' );

		/**
		 * Add support for core custom logo.
		 *
		 * @link https://codex.wordpress.org/Theme_Logo
		 */
		add_theme_support(
			'custom-logo',
			array(
				'height'      => 250,
				'width'       => 250,
				'flex-width'  => true,
				'flex-height' => true,
			)
		);
		
		global $pagelayer, $popularfx;
		if(!empty($pagelayer->settings)){
			$pagelayer->template_call_sidebar = 1;
		}
		
		// Show promos
		popularfx_promos();
		
		$template = popularfx_get_template_name();
		if(empty($template)){
		
			// Set up the WordPress core custom background feature.
			add_theme_support('custom-background',
				apply_filters(
					'popularfx_custom_background_args',
					array(
						'default-color' => 'ffffff',
						'default-image' => '',
					)
				)
			);
			
			add_theme_support( 'custom-header',
				apply_filters(
					'popularfx_custom_header_args',
					array(
						'default-image'      => '',
						'default-text-color' => '000000',
						'width'              => 1200,
						'height'             => 250,
						'flex-height'        => true,
						'wp-head-callback'   => 'popularfx_header_style',
					)
				)
			);
			
			add_theme_support(
				'custom-logo',
				array(
					'height'      => 250,
					'width'       => 250,
					'flex-width'  => true,
					'flex-height' => true,
				)
			);
		
		}
		
		// Add woocommerce support
		add_theme_support( 'woocommerce', array(
			'product_grid' => array(
				'min_columns'=> 1,
				'max_columns' => 6,
			),
		) );
		add_theme_support( 'wc-product-gallery-lightbox' );
		add_theme_support( 'wc-product-gallery-slider' );
	}
}
add_action( 'after_setup_theme', 'popularfx_setup' );

/**
 * Set the content width in pixels, based on the theme's design and stylesheet.
 *
 * Priority 0 to make it available to lower priority callbacks.
 *
 * @global int $content_width
 */
function popularfx_content_width() {
	// This variable is intended to be overruled from themes.
	// Open WPCS issue: {@link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1043}.
	// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
	$GLOBALS['content_width'] = apply_filters( 'popularfx_content_width', 640 );
}

// To get activated template for parent and child theme
function popularfx_get_template_name(){
	$tmp = get_option('theme_mods_popularfx');
	$mods = !empty($tmp['popularfx_template']) ? $tmp['popularfx_template'] : '';
	return $mods;
}

// Backward compat
function popularfx_copyright(){
	return popularfx_theme_credits();
}

// Show credit of our theme
function popularfx_theme_credits(){
	return '<a href="'.esc_url(POPULARFX_WWW_URL).'">'.__('PopularFX Theme', 'popularfx').'</a>';
}

// Shows the promos
function popularfx_promos(){
	
	if(is_admin() && current_user_can('install_themes')){
		
		//remove_theme_mod('popularfx_getting_started');
		//remove_theme_mod('popularfx_templates_promo');
		//remove_theme_mod('popularfx_show_promo');
		
		// Show the getting started video option
		$seen = get_theme_mod('popularfx_getting_started');
		if(empty($seen)){
			add_action('admin_notices', 'popularfx_getting_started_notice');
		}
	
		// Show the promo
		popularfx_maybe_promo([
			'after' => 1,// In days
			'interval' => 30,// In days
			'pro_url' => POPULARFX_PRO_URL,
			'rating' => 'https://wordpress.org/themes/popularfx/#reviews',
			'twitter' => 'https://twitter.com/PopularFXthemes?status='.rawurlencode('I love #PopularFX Theme by @pagelayer team for my #WordPress site - '.esc_url(home_url())),
			'facebook' => 'https://facebook.com/popularfx',
			'website' => POPULARFX_WWW_URL,
			'image' => POPULARFX_URL.'/images/popularfx-logo.png',
			'name' => 'popularfx_show_promo'
		]);
		
		$template = popularfx_get_template_name();
		if(empty($template)){
		
			// Show the image promo
			popularfx_maybe_promo([
				'after' => 0,// In days
				'interval' => 30,// In days
				'pro_url' => POPULARFX_PRO_URL,
				'rating' => 'https://wordpress.org/themes/popularfx/#reviews',
				'twitter' => 'https://twitter.com/PopularFXthemes?status='.rawurlencode('I love #PopularFX Theme by @pagelayer team for my #WordPress site - '.esc_url(home_url())),
				'facebook' => 'https://facebook.com/popularfx',
				'website' => POPULARFX_WWW_URL,
				'image' => POPULARFX_URL.'/images/popularfx-logo.png',
				'name' => 'popularfx_templates_promo'
			]);
		
		}
		//delete_option('popularfx_templates_promo');
	
	}
	
}
add_action( 'after_switch_theme', 'popularfx_promos', 10 );

/**
 * Register widget area.
 *
 * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
 */
function popularfx_widgets_init() {
	register_sidebar(
		array(
			'name'          => esc_html__( 'Sidebar', 'popularfx' ),
			'id'            => 'sidebar-1',
			'description'   => esc_html__( 'Add widgets here.', 'popularfx' ),
			'before_widget' => '<section id="%1$s" class="widget %2$s">',
			'after_widget'  => '</section>',
			'before_title'  => '<h2 class="widget-title">',
			'after_title'   => '</h2>',
		)
	);
}
add_action( 'widgets_init', 'popularfx_widgets_init' );

// URL of the PFX templates uploads dir
function popularfx_templates_dir_url(){
	
	$template = popularfx_get_template_name();
	$style = get_template_directory().'/templates/'.$template.'/style.css';
	
	if(file_exists($style)){
		return get_stylesheet_directory_uri().'/templates';
	}
	
	$dir = wp_upload_dir(NULL, false);
	return $dir['baseurl'].'/popularfx-templates';
	
}

// URL of the PFX templates uploads dir
function popularfx_templates_dir($suffix = true){
	
	$template = popularfx_get_template_name();
	$style = get_template_directory().'/templates/'.$template.'/style.css';
	
	if(file_exists($style)){
		return get_template_directory().'/templates'.($suffix ? '/'.$template : '');
	}
	
	$dir = wp_upload_dir(NULL, false);
	return $dir['basedir'].'/popularfx-templates'.($suffix ? '/'.$template : '');
	
}

/**
 * Enqueue scripts and styles.
 */
function popularfx_scripts() {
	
	$template = popularfx_get_template_name();
	if(!empty($template) && defined('PAGELAYER_VERSION')){
		wp_enqueue_style( 'popularfx-style', popularfx_templates_dir_url().'/'.$template.'/style.css', array(), POPULARFX_VERSION );
	}else{
		wp_enqueue_style( 'popularfx-style', get_template_directory_uri().'/style.css', array(), POPULARFX_VERSION );
		wp_style_add_data( 'popularfx-style', 'rtl', 'replace' );
	}
	
	// Enqueue sidebar.css
	wp_enqueue_style( 'popularfx-sidebar', get_template_directory_uri().'/sidebar.css', array(), POPULARFX_VERSION );
	
	// Dashicons needed for WooCommerce and Scroll to Top
	if(class_exists( 'WooCommerce' ) || get_theme_mod('pfx_enable_scrolltop')){
		wp_enqueue_style('dashicons');
	}
	
	// Enqueue WooCommerce CSS
	if(class_exists( 'WooCommerce' )){
		wp_enqueue_style( 'popularfx-woocommerce', get_template_directory_uri().'/woocommerce.css', array(), POPULARFX_VERSION );
		wp_style_add_data( 'popularfx-woocommerce', 'rtl', 'replace' );
	}
	
	wp_enqueue_script( 'popularfx-navigation', get_template_directory_uri().'/js/navigation.js', array('jquery'), POPULARFX_VERSION, true );
	
	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
		wp_enqueue_script( 'comment-reply' );
	}
}
add_action( 'wp_enqueue_scripts', 'popularfx_scripts' );

function popularfx_the_title($before = '', $after = '', $echo = true){
	if(is_page()){
		return;
	}
	
	the_title($before, $after, $echo);
}

// Show the templates promo
function popularfx_templates_promo(){
	
	global $popularfx_promo_opts, $popularfx;
	
	if(!empty($GLOBALS['pfx_notices_shown'])){
		return;
	}
	
	$GLOBALS['pfx_notices_shown'] = 1;
	
	$opts = $popularfx_promo_opts['popularfx_templates_promo'];
	
	echo '<style>
#popularfx_templates_promo{
border-left: 1px solid #ccd0d4;
}

.popularfx-templates-promo{
background: #fff;
padding: 5px;
}

.popularfx_promo_button {
background-color: #4CAF50; /* Green */
border: none;
color: white;
padding: 6px 10px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 13px;
margin: 4px 2px;
-webkit-transition-duration: 0.4s; /* Safari */
transition-duration: 0.4s;
cursor: pointer;
}
.popularfx_promo_button:focus,
.popularfx_promo_button:hover{
border: none;
color: white;
box-shadow: 0 6px 8px 0 rgba(0,0,0,0.24), 0 9px 25px 0 rgba(0,0,0,0.19);
color: white;
}
.popularfx_promo_buy {
color: white;
padding: 8px 12px;
font-size: 14px;
}
.popularfx_promo_button1 {
color: white;
background-color: #4CAF50;
border:3px solid #4CAF50;
}
.popularfx_promo_button1:hover {
border:3px solid #4CAF50;
}
.popularfx_promo_button2 {
color: white;
background-color: #0085ba;
}
.popularfx_promo_button3 {
color: white;
background-color: #365899;
}
.popularfx_promo_button4 {
color: white;
background-color: rgb(66, 184, 221);
}
.popularfx_promo-close{
float:right;
text-decoration:none;
margin: 5px 10px 0px 0px;
}
.popularfx_promo-close:hover{
color: red;
}

.popularfx_promo-left{
display: inline-block; max-width: 34%; vertical-align: top;
text-align: center;
}

.popularfx_promo-right{
display: inline-block; max-width: 65%; width: 65%; vertical-align: middle;
}

@media all and (max-width:599px){
.popularfx_promo-left, .popularfx_promo-right{
max-width: 100%;
}
}

</style>
<script type="application/javascript">
	jQuery(document).ready(function(){
		jQuery("#popularfx_templates_promo .popularfx_promo-close").click(function(){
			var data;
			jQuery("#popularfx_templates_promo").hide();
			// Save this preference
			jQuery.post("'.esc_url(admin_url('?'.$opts['name'].'=0')).'", data, function(response) {
				//alert(response);
			});
		});
	});
</script>

	<div class="'.(empty($opts['class']) ? 'notice notice-success' : 'popularfx-templates-promo').'" id="popularfx_templates_promo" style="min-height:90px">
		<div class="popularfx_promo-left">
			<img src="'.esc_url(POPULARFX_URL.'/images/templates.png').'" width="85%" />
		</div>
		<div class="popularfx_promo-right">
			<p align="center">
		<a class="popularfx_promo-close" href="javascript:" aria-label="Dismiss this Notice">
			<span class="dashicons dashicons-dismiss"></span> Dismiss
		</a>
				<a href="'.esc_url(POPULARFX_WWW_URL.'/templates').'" style="text-decoration: none; font-size: 15px;">
					'.__('Did you know PopularFX comes with 500+ Templates to design your website. <br>Click to choose your template !', 'popularfx').'<br>
				</a>
				<br>
				'.(empty($opts['pro_url']) || !empty($popularfx['license']) ? '' : '<a class="button button-primary" target="_blank" href="'.esc_url($opts['pro_url']).'">'.__('Buy PopularFX Pro', 'popularfx').'</a>').'
				'.(empty($opts['rating']) ? '' : '<a class="button button-primary" target="_blank" href="'.esc_url($opts['rating']).'">'.__('Rate it 5★\'s', 'popularfx').'</a>').'
				'.(empty($opts['facebook']) ? '' : '<a class="button button-secondary" target="_blank" href="'.esc_url($opts['facebook']).'"><span class="dashicons dashicons-thumbs-up" style="vertical-align: middle;"></span> '.__('Facebook', 'popularfx').'</a>').'
				'.(empty($opts['twitter']) ? '' : '<a class="button button-secondary" target="_blank" href="'.esc_url($opts['twitter']).'"><span class="dashicons dashicons-twitter" style="vertical-align: middle;"></span> '.__('Tweet', 'popularfx').'</a>').'
				'.(empty($opts['website']) ? '' : '<a class="button button-secondary" target="_blank" href="'.esc_url($opts['website']).'">'.__('Visit our website', 'popularfx').'</a>').'
			</p>
		</div>
	</div>';
	
}

function popularfx_getting_started_notice(){
	
	if(!empty($GLOBALS['pfx_notices_shown'])){
		return;
	}
	
	$GLOBALS['pfx_notices_shown'] = 1;
	
	// Are we to disable the promo
	if(isset($_GET['popularfx-getting-started']) && (int)$_GET['popularfx-getting-started'] == 0){
		check_ajax_referer('popularfx_getting_started_nonce', 'popularfx_nonce');
		set_theme_mod('popularfx_getting_started', time());
		die('DONE');
	}
	
	echo '
<script type="application/javascript">
jQuery(document).ready(function(){
	jQuery("#popularfx-getting-started-notice").click(function(e){
		
		if(jQuery(e.target).hasClass("notice-dismiss")){
			var data;
			jQuery("#popularfx-getting-started-notice").hide();
			// Save this preference
			jQuery.post("'.admin_url('?popularfx-getting-started=0&popularfx_nonce='.wp_create_nonce("popularfx_getting_started_nonce")).'", data, function(response) {
				//alert(response);
			});
			return false;
		}
		
	});
});
</script>

	<div id="popularfx-getting-started-notice" class="notice notice-success is-dismissible">
		<p style="font-size: 14px; font-weight: 600">
			<a href="'.esc_url(POPULARFX_WWW_URL).'"><img src="'.esc_url(POPULARFX_URL).'/images/popularfx-logo.png" style="vertical-align: middle; margin:0px 10px" width="24" /></a>'.__('Thanks for choosing PopularFX. We recommend that you see the <a href="https://www.youtube.com/watch?v=DCisrbrmjgI" target="_blank">PopularFX Theme Guide Video</a> to know the basics of PopularFX.', 'popularfx').'
		</p>
	</div>';
	
}

// Show promo notice on dashboard
function popularfx_show_promo($opts = []){
	
	global $popularfx_promo_opts, $popularfx;
	
	if(!empty($GLOBALS['pfx_notices_shown'])){
		return;
	}
	
	$GLOBALS['pfx_notices_shown'] = 1;

	$opts = $popularfx_promo_opts['popularfx_show_promo'];
	
	echo '<style>
#popularfx_promo{
border-left: 1px solid #ccd0d4;
}

.popularfx_promo_button {
background-color: #4CAF50; /* Green */
border: none;
color: white;
padding: 6px 10px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 13px;
margin: 4px 2px;
-webkit-transition-duration: 0.4s; /* Safari */
transition-duration: 0.4s;
cursor: pointer;
}
.popularfx_promo_button:focus,
.popularfx_promo_button:hover{
border: none;
color: white;
box-shadow: 0 6px 8px 0 rgba(0,0,0,0.24), 0 9px 25px 0 rgba(0,0,0,0.19);
color: white;
}
.popularfx_promo_buy {
color: white;
padding: 8px 12px;
font-size: 14px;
}
.popularfx_promo_button1 {
color: white;
background-color: #4CAF50;
border:3px solid #4CAF50;
}
.popularfx_promo_button1:hover {
border:3px solid #4CAF50;
}
.popularfx_promo_button2 {
color: white;
background-color: #0085ba;
}
.popularfx_promo_button3 {
color: white;
background-color: #365899;
}
.popularfx_promo_button4 {
color: white;
background-color: rgb(66, 184, 221);
}
.popularfx_promo-close{
float:right;
text-decoration:none;
margin: 5px 10px 0px 0px;
}
.popularfx_promo-close:hover{
color: red;
}

.popularfx_promo-left-1{
display: inline-block; width: 65%; vertical-align: top;
}

.popularfx_promo-right-1{
display: inline-block; width: 35%; vertical-align: top
}

@media all and (max-width:599px){
.popularfx_promo-left, .popularfx_promo-right{
width: 100%;
}
}

</style>
<script type="application/javascript">
	jQuery(document).ready(function(){
		jQuery("#popularfx_promo .popularfx_promo-close").click(function(){
			var data;
			jQuery("#popularfx_promo").hide();
			// Save this preference
			jQuery.post("'.esc_url(admin_url('?'.$opts['name'].'=0')).'", data, function(response) {
				//alert(response);
			});
		});
	});
</script>

	<div class="notice notice-success" id="popularfx_promo" style="min-height:90px">
		<div class="popularfx_promo-left-1">';
	
	if(!empty($opts['image'])){
		echo '<a href="'.esc_url($opts['website']).'"><img src="'.esc_url($opts['image']).'" style="float:left; margin:25px 20px 10px 10px" width="67" /></a>';
	}
	
	echo '
		<p style="font-size:14px; line-height: 1.6">'.sprintf( __('We are glad you are using %1$s to build your website. We really appreciate it ! <br>We would like to request you to give us a 5 Star rating on %2$s. <br>It will greatly boost our motivation !', 'popularfx'), '<a href="'.$opts['website'].'"><b>PopularFX</b></a>', '<a href="'.$opts['rating'].'" target="_blank">WordPress.org</a>').'</p>
		<p>
			'.(empty($opts['pro_url']) || !empty($popularfx['license']) ? '' : '<a class="button button-primary" target="_blank" href="'.esc_url($opts['pro_url']).'">'.__('Buy PopularFX Pro', 'popularfx').'</a>').'
			'.(empty($opts['rating']) ? '' : '<a class="button button-primary" target="_blank" href="'.esc_url($opts['rating']).'">'.__('Rate it 5★\'s', 'popularfx').'</a>').'
			'.(empty($opts['facebook']) ? '' : '<a class="button button-secondary" target="_blank" href="'.esc_url($opts['facebook']).'"><span class="dashicons dashicons-thumbs-up" style="vertical-align: middle;"></span> '.__('Facebook', 'popularfx').'</a>').'
			'.(empty($opts['twitter']) ? '' : '<a class="button button-secondary" target="_blank" href="'.esc_url($opts['twitter']).'"><span class="dashicons dashicons-twitter" style="vertical-align: middle;"></span> '.__('Tweet', 'popularfx').'</a>').'
			'.(empty($opts['website']) ? '' : '<a class="button button-secondary" target="_blank" href="'.esc_url($opts['website']).'">'.__('Visit our website', 'popularfx').'</a>').'
		</p>
		'.(empty($opts['pro_url']) || !empty($popularfx['license']) ? '' : '<p style="font-size:13px">'.sprintf( __('%1$s has many more features like 500+ Website %2$s Templates%3$s, 90+ widgets, 500+ sections, Theme Builder, WooCommerce Builder, Theme Creator and Exporter, Form Builder, Popup Builder, etc. You get a Pagelayer Pro license with the PopularFX Pro version.', 'popularfx'), '<a href="'.esc_url($opts['pro_url']).'"><b>PopularFX Pro</b></a>', '<a href="'.esc_url($opts['website'].'/templates').'">', '</a>').'
		</p>').'
		</div>';
	

	
	echo '<div class="popularfx_promo-right-1">
			<a class="popularfx_promo-close" href="javascript:" aria-label="'.__('Dismiss this Notice', 'popularfx').'">
				<span class="dashicons dashicons-dismiss"></span> '.__('Dismiss', 'popularfx').'
			</a>
			<br>
			<center style="margin:10px;">
				<a href="'.esc_url(POPULARFX_WWW_URL.'/templates').'" style="text-decoration: none; font-size: 15px;"><img src="'.esc_url(POPULARFX_URL.'/images/templates.png').'" width="100%" /><br><br>'.__('Install from 500+ Website Templates', 'popularfx').'</a>
			</center>
		</div>
	</div>';

}

// Are we to show a promo ?
function popularfx_maybe_promo($opts){
	
	global $popularfx_promo_opts;
	
	// There must be an interval
	if(empty($opts['interval'])){
		return false;
	}
	
	// Are we to show a promo	
	$opt_name = empty($opts['name']) ? 'popularfx_show_promo' : $opts['name'];
	$func = empty($opts['name']) ? $opt_name : $opts['name'];
	$promo_time = get_theme_mod($opt_name);
	//echo $opt_name.' - '.$func.' - '.$promo_time.' - '.date('Ymd', $promo_time).'<br>';die();
	
	// First time access
	if(empty($promo_time)){
		set_theme_mod($opt_name, time() + (!empty($opts['after']) ? $opts['after'] * 86400 : 0));
		$promo_time = get_theme_mod($opt_name);
	}
	
	// Is there interval elapsed
	if(time() >= $promo_time){
		$popularfx_promo_opts[$opt_name] = $opts;
		add_action('admin_notices', $func);
	}
	
	// Are we to disable the promo
	if(isset($_GET[$opt_name]) && (int)$_GET[$opt_name] == 0){
		set_theme_mod($opt_name, time() + ($opts['interval'] * 86400));
		die('DONE');
	}
	
}

// Is the sidebar enabled
function popularfx_sidebar(){	

	// If no widgets in sidebar
	if ( ! is_active_sidebar( 'sidebar-1' ) ) {
		return;
	}

	$enabled = NULL;

	// For page
	if(is_page()){
		$enabled = get_theme_mod('popularfx_sidebar_page', 'default');
	}
	
	$is_product = class_exists('WooCommerce') && is_product() ? true : false;

	// For products none !
	if(is_single() && $is_product){
		$enabled = '0';
	
	// For posts
	}elseif(is_single()){
		$enabled = get_theme_mod('popularfx_sidebar_post', 'right');
	}

	// For Archives
	if(is_archive() || is_home()){
		$enabled = get_theme_mod('popularfx_sidebar_archives', 'right');
	}
	
	// For Woocommerce
	if(class_exists( 'WooCommerce' ) && is_shop()){
		$enabled = get_theme_mod('popularfx_sidebar_woocommerce', 0);
	}
	
	// Load the default
	if($enabled == 'default' || is_front_page()){
		$enabled = get_theme_mod('popularfx_sidebar_default', 0);
	}

	// If its disabled
	if(empty($enabled)){
		return;
	}

	// In live mode of templates dont show this for header and footer
	if(function_exists('pagelayer_is_live') && pagelayer_is_live()){
		$pl_post_type = get_post_meta($GLOBALS['post']->ID, 'pagelayer_template_type', true);
		if(in_array($pl_post_type, ['header', 'footer'])){
			return;
		}
	}
	
	return $enabled;
}

add_action('wp_enqueue_scripts', 'popularfx_sidebar_css', 1000);
function popularfx_sidebar_css(){

	// Sidebar CSS
	$enabled = popularfx_sidebar();

	if(empty($enabled)){
		return;
	}

	$width = (int) get_theme_mod('popularfx_sidebar_width', 20);
	
	$custom_css = '
aside {
width: '.esc_attr($width).'%;
float: '.esc_attr($enabled).';
}

main, .pagelayer-content{
width: '.round(99 - esc_attr($width)).'% !important;
display: inline-block;
float: '.esc_attr($enabled == 'left' ? 'right' : 'left').';
}'.PHP_EOL;

	wp_add_inline_style('popularfx-style', $custom_css);
	
}

if ( ! function_exists( 'popularfx_header_style' ) ) :
	/**
	 * Styles the header image and text displayed on the blog.
	 *
	 * @see popularfx_custom_header_setup().
	 */
	function popularfx_header_style() {
		$header_text_color = get_header_textcolor();

		/*
		 * If no custom options for text are set, let's bail.
		 * get_header_textcolor() options: Any hex value, 'blank' to hide text. Default: add_theme_support( 'custom-header' ).
		 */
		if ( get_theme_support( 'custom-header', 'default-text-color' ) === $header_text_color ) {
			return;
		}

		// If we get this far, we have custom styles. Let's do this.
		?>
		<style type="text/css">
		<?php
		// Has the text been hidden?
		if ( ! display_header_text() ) :
			?>
			.site-title,
			.site-description {
				position: absolute;
				clip: rect(1px, 1px, 1px, 1px);
				}
			<?php
			// If the user has set a custom color for the text use that.
		else :
			?>
			.site-title a,
			.site-description {
				color: #<?php echo esc_attr( $header_text_color ); ?>;
			}
		<?php endif; ?>
		</style>
		<?php
	}
endif;

add_action( 'wp_footer', 'popularfx_footer_setup' );
if( ! function_exists( 'popularfx_footer_setup' )){	
	function popularfx_footer_setup(){
	
		$pfx_enable_scrolltop = get_theme_mod('pfx_enable_scrolltop');
		if(empty($pfx_enable_scrolltop)){
			return;
		}
		
		echo '<a id="pfx-scroll-top" class="pfx-scroll-top"><span class="dashicons dashicons-arrow-up-alt2"></span><span class="screen-reader-text">Scroll to Top</span></a>';	
	}
}

/**
 * Custom template tags for this theme.
 */
require dirname( __FILE__ ) . '/inc/template-tags.php';

/**
 * Functions which enhance the theme by hooking into WordPress.
 */
require dirname( __FILE__ ) . '/inc/template-functions.php';

/**
 * Customizer additions.
 */
require dirname( __FILE__ ) . '/inc/customizer.php';

/**
 * Load WooCommerce compatibility file.
 */
if ( class_exists( 'WooCommerce' ) ) {
	require dirname( __FILE__ ) . '/inc/woocommerce.php';
}

// Update the theme
require_once dirname( __FILE__ ) . '/inc/popularfx.php';

Youez - 2016 - github.com/yon3zu
LinuXploit