<?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';