File "functions.php"
Full Path: /home/siazco/grocery.siazco.se/wp-content/themes/kapee222/assets/images/functions.php
File size: 31.96 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Kapee functions and definitions
*
* @author PressLayouts
* @package kapee
* @since 1.0.0
*/
/*-----------------------------------------------------------------------*/
/* Define Constants.
/*-----------------------------------------------------------------------*/
define( 'KAPEE_DIR', get_template_directory() ); // template directory
define( 'KAPEE_URI', get_template_directory_uri() ); // template directory uri
class Kapee_Theme_Class{
public function __construct() {
$this->constants();
$this->include_functions();
add_action( 'after_setup_theme', array( $this, 'theme_setup' ), 10 );
add_action( 'widgets_init', array( $this, 'register_sidebars' ) );
if ( is_admin() ) {
add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'admin_style' ) );
} else{
add_action( 'wp_enqueue_scripts', array( $this, 'theme_css' ), 10000 );
add_action( 'wp_enqueue_scripts', array( $this, 'theme_js' ) );
add_action( 'wp_head', array( $this, 'favicon' ), 5 );
add_action( 'wp_head', array( $this, 'pingback_header' ), 1 );
add_action( 'wp_head', array( $this, 'kapee_google_theme_color' ), 2 );
add_action( 'wp_head', array($this, 'javascript_detection'), 0 );
add_action( 'wp_head', array($this, 'kapee_custom_head_js'));
add_action( 'wp_footer', array($this, 'kapee_enqueue_inline_style'), 10 );
add_action( 'wp_footer', array($this, 'kapee_print_css'), 15 );
add_action( 'wp_footer', array($this, 'kapee_custom_footer_js'));
add_action( 'pre_get_posts', array( $this, 'search_posts_per_page' ) );
add_action( 'wp', array($this, 'kapee_post_view_count'), 999 );
add_filter( 'excerpt_more', array($this, 'kapee_excerpt_more') );
add_filter( 'the_content_more_link', array($this, 'kapee_read_more_tag' ) );
add_filter( 'excerpt_length', array($this, 'kapee_excerpt_length'), 999 );
add_action( 'wp_footer', array( $this, 'kapee_owl_param' ) );
if( KAPEE_WOOCOMMERCE_ACTIVE ){
add_filter( 'posts_search', array( $this, 'product_search_sku' ), 9 );
}
}
add_filter( 'upload_mimes', array( $this, 'kapee_upload_mimes' ) );
}
/**
* Define Constants
*
* @since 1.0.0
*/
public function constants() {
$theme = wp_get_theme( 'Kapee' );
// Theme version
define( 'KAPEE_THEME_NAME', 'Kapee' );
define( 'KAPEE_VERSION', $theme->get('Version') );
define( 'KAPEE_FRAMEWORK', KAPEE_DIR .'/inc/' );
define( 'KAPEE_FRAMEWORK_URI', KAPEE_URI .'/inc/' );
define( 'KAPEE_ADMIN_DIR_URI', KAPEE_FRAMEWORK_URI .'admin/' );
define( 'KAPEE_SCRIPTS', KAPEE_URI .'/assets/js/' );
define( 'KAPEE_STYLES', KAPEE_URI .'/assets/css/' );
define( 'KAPEE_IMAGES', KAPEE_URI . '/assets/images/' );
define( 'KAPEE_ADMIN_IMAGES', KAPEE_ADMIN_DIR_URI . 'assets/images/' );
// Check if plugins are active
if( !defined( 'KAPEE_WOOCOMMERCE_ACTIVE' ) ) {
define( 'KAPEE_WOOCOMMERCE_ACTIVE', class_exists( 'WooCommerce' ) );
}
if( !defined( 'KAPEE_DOKAN_ACTIVE' ) ) {
define( 'KAPEE_DOKAN_ACTIVE', class_exists( 'WeDevs_Dokan' ) );
}
if( !defined( 'KAPEE_WC_VENDORS_ACTIVE' ) ) {
define( 'KAPEE_WC_VENDORS_ACTIVE', class_exists( 'WC_Vendors' ) );
}
// Othere
if( ! defined( 'KAPEE_API' ) ) {
define('KAPEE_API', 'https://presslayouts.com/demo/api/');
}
if( ! defined( 'KAPEE_PREFIX' ) ) {
define('KAPEE_PREFIX', '_kp_');
}
}
/**
* Load all core theme function files
*
* @since 1.0.0
*/
public function include_functions(){
require_once KAPEE_FRAMEWORK.'kp-layout.php';
require_once KAPEE_FRAMEWORK.'font-config.php';
require_once KAPEE_FRAMEWORK.'kp-core-functions.php';
require_once KAPEE_FRAMEWORK.'kp-template-tags.php';
require_once KAPEE_FRAMEWORK.'kp-template-functions.php';
require_once KAPEE_FRAMEWORK.'kp-template-hooks.php';
require_once KAPEE_FRAMEWORK.'dynamic-css.php';
if( KAPEE_WOOCOMMERCE_ACTIVE ){
require_once KAPEE_FRAMEWORK.'integrations/woocommerce/wc-core-functions.php';
require_once KAPEE_FRAMEWORK.'integrations/woocommerce/wc-template-hooks.php';
require_once KAPEE_FRAMEWORK.'integrations/woocommerce/wc-template-functions.php';
require_once KAPEE_FRAMEWORK.'classes/class-swatches.php';
require_once KAPEE_FRAMEWORK.'classes/class-bought-together.php';
if( class_exists('WeDevs_Dokan') ){
require_once KAPEE_FRAMEWORK.'integrations/dokan/dokan-core-functions.php';
}
if( class_exists('WCMp') ){
require_once KAPEE_FRAMEWORK.'integrations/wcmp/wcmp-core-functions.php';
}
if( class_exists('WC_Vendors') ){
require_once KAPEE_FRAMEWORK.'integrations/wc-vendor/wc-vendors-core-functions.php';
}
if( class_exists('WCFMmp') ){
require_once KAPEE_FRAMEWORK.'integrations/wcfm/wcfm-core-functions.php';
}
if( function_exists( 'YITH_YWRAQ_Frontend' ) ){
require_once KAPEE_FRAMEWORK.'integrations/yith-add-to-quote/yith-add-to-quote-core-functions.php';
}
}
require_once KAPEE_FRAMEWORK.'classes/class-metabox.php';
require_once KAPEE_FRAMEWORK.'classes/class-walker-nav-menu.php';
require_once KAPEE_FRAMEWORK.'classes/class-breadcrumb.php';
require_once KAPEE_FRAMEWORK.'classes/class-sidebar-generator.php';
require_once KAPEE_FRAMEWORK.'classes/class-cookie-notice.php';
require_once KAPEE_FRAMEWORK.'thirdparty/tgm-plugin-activation/tgm-plugin-activation.php';
require_once KAPEE_FRAMEWORK.'admin/theme_options.php';
require_once KAPEE_FRAMEWORK.'admin/class-admin.php';
require_once KAPEE_FRAMEWORK.'admin/class-dashboard.php';
require_once KAPEE_FRAMEWORK.'admin/class-update-theme.php';
}
/**
* Theme Setup
*
* @since 1.0.0
*/
public function theme_setup() {
load_theme_textdomain( 'kapee', get_template_directory() . '/languages' );
load_theme_textdomain( 'kapee', get_stylesheet_directory() . '/languages' );
/* Theme support */
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
add_theme_support( 'post-formats', array( 'image', 'gallery', 'video', 'audio', 'quote', 'link' ) );
add_theme_support( 'html5', array( 'gallery', 'caption' ) );
add_theme_support( 'wp-block-styles' );
// Disable Widget block editor.
if( apply_filters('kapee_disable_widgets_block_editor', true) ) {
remove_theme_support( 'block-templates' );
remove_theme_support( 'widgets-block-editor' );
}
// Add support for responsive embedded content.
add_theme_support( 'responsive-embeds' );
// Set the default content width.
$GLOBALS['content_width'] = 1200;
register_nav_menus( array(
'primary' => esc_html__( 'Primary(Main) Menu', 'kapee' ),
'secondary' => esc_html__( 'Secondary Menu', 'kapee' ),
'categories-menu' => esc_html__( 'Categories(Vertical) Menu', 'kapee' ),
'topbar-menu' => esc_html__( 'Topbar Menu', 'kapee' ),
'mobile-menu' => esc_html__( 'Mobile Primary Menu', 'kapee' ),
'mobile-categories-menu' => esc_html__( 'Mobile Categories Menu', 'kapee' ),
'myaccount-menu' => esc_html__( 'MyAccount/Profile Menu', 'kapee' ),
) );
add_editor_style( array( 'assets/css/editor-style.css', $this->kapee_fonts_url() ) );
}
/*-----------------------------------------------------------------------*/
/* Register custom fonts.
/*-----------------------------------------------------------------------*/
public function kapee_fonts_url() {
$fonts_url = '';
$fonts = array();
$fonts[] = 'Lato:100,100i,300,300i,400,400i,700,700i,900,900i';
if ( $fonts ) {
$fonts_url = add_query_arg(
array(
'family' => urlencode( implode( '|', $fonts ) ),
'subset' => urlencode( 'latin,latin-ext' ),
),
'https://fonts.googleapis.com/css'
);
}
return esc_url_raw( $fonts_url );
}
/**
* Registers sidebars
*
* @since 1.0.0
*/
public function register_sidebars(){
register_sidebar( array(
'name' => esc_html__( 'Blog Sidebar', 'kapee' ),
'id' => 'sidebar-1',
'description' => esc_html__( 'Add widgets here to appear in your sidebar on blog posts and archive pages.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
register_sidebar( array(
'name' => esc_html__( 'Shop Page Sidebar', 'kapee' ),
'id' => 'shop-page-sidebar',
'description' => esc_html__( 'Add widgets here to appear in your shop page.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
register_sidebar( array(
'name' => esc_html__( 'Shop Filter Sidebar', 'kapee' ),
'id' => 'shop-filters-sidebar',
'description' => esc_html__( 'Add widgets here to appear in your shop page.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
register_sidebar( array(
'name' => esc_html__( 'Product Page Sidebar', 'kapee' ),
'id' => 'product-page-sidebar',
'description' => esc_html__( 'Add widgets here to appear in your single product page.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
register_sidebar( array(
'name' => esc_html__( 'Footer Area 1', 'kapee' ),
'id' => 'footer-area-1',
'description' => esc_html__( 'Add widgets here to appear in your footer first column.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
register_sidebar( array(
'name' => esc_html__( 'Footer Area 2', 'kapee' ),
'id' => 'footer-area-2',
'description' => esc_html__( 'Add widgets here to appear in your footer second column.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
register_sidebar( array(
'name' => esc_html__( 'Footer Area 3', 'kapee' ),
'id' => 'footer-area-3',
'description' => esc_html__( 'Add widgets here to appear in your footer third column.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
register_sidebar( array(
'name' => esc_html__( 'Footer Area 4', 'kapee' ),
'id' => 'footer-area-4',
'description' => esc_html__( 'Add widgets here to appear in your footer fourth column.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
register_sidebar( array(
'name' => esc_html__( 'Footer Area 5', 'kapee' ),
'id' => 'footer-area-5',
'description' => esc_html__( 'Add widgets here to appear in your footer fifth column.', 'kapee' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
/**
* Load scripts in the WP admin
*
* @since 1.0.0
*/
public function admin_style( $hook ) {
global $pagenow;
$theme_version = KAPEE_VERSION;
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_style( 'pls-fonts', KAPEE_STYLES.'pls-font.css', array(), '1.0' );
$dashboard_pages = array( 'toplevel_page_kapee-theme', 'kapee_page_kapee-system-status', 'kapee_page_kapee-theme-option', 'kapee_page_kapee-demo-import' );
if( in_array( $hook, $dashboard_pages ) ){
wp_enqueue_style( 'magnific-popup', KAPEE_STYLES . 'magnific-popup.css', array(), $theme_version );
}
if ( 'customize.php' != $pagenow ) {
wp_enqueue_style( 'kapee-style', KAPEE_FRAMEWORK_URI . 'admin/assets/css/admin.css', array(), $theme_version );
}
}
/**
* Load scripts in the WP admin
*
* @since 1.0.0
*/
public function admin_scripts( $hook ) {
global $pagenow;
wp_enqueue_media();
wp_enqueue_script( 'wp-color-picker' );
if ( 'toplevel_page_kapee-theme' == $hook ) {
wp_enqueue_script( 'kapee-activation-theme', KAPEE_FRAMEWORK_URI . 'admin/assets/js/kapee-activation.js');
}
if ( 'kapee_page_kapee-system-status' == $hook ) {
wp_enqueue_script( 'kapee-system-status', KAPEE_FRAMEWORK_URI . 'admin/assets/js/kapee-system-status.js');
}
if ( 'nav-menus.php' == $pagenow ) {
wp_enqueue_script( 'kapee-mega-menu', KAPEE_FRAMEWORK_URI . 'admin/assets/js/mega-menu.js');
}
$dashboard_pages = array( 'toplevel_page_kapee-theme', 'kapee_page_kapee-system-status', 'kapee_page_kapee-theme-option', 'kapee_page_kapee-demo-import' );
if( in_array( $hook, $dashboard_pages ) ){
wp_enqueue_script( 'magnific-popup', KAPEE_SCRIPTS . 'jquery.magnific-popup.min.js');
}
wp_enqueue_script( 'kapee-admin-js', KAPEE_FRAMEWORK_URI . 'admin/assets/js/admin.js' );
wp_localize_script( 'kapee-admin-js', 'kapee_admin_params', apply_filters( 'kapee_admin_js_params', array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'kapee_nonce' ),
'loading_text' => esc_html__( 'Loading...', 'kapee' ),
'bindmessage' => esc_html__( 'Are you sure you want to leave?', 'kapee' ),
'demo_success' => esc_html__( 'Demo imported successfully.', 'kapee' ),
'menu_icon_change_text' => esc_html__( 'Change Custom Icon', 'kapee' ),
'menu_icon_upload_text' => esc_html__( 'Upload Custom Icon', 'kapee' ),
'menu_delete_icon_msg' => esc_html__( 'Are you sure,You want to remove this icon?', 'kapee' ),
)));
}
/**
* Load front-end css
*
* @since 1.0.0
*/
public function theme_css() {
// Remove font awesome style from plugins
wp_deregister_style( 'fontawesome' );
wp_deregister_style( 'font-awesome' );
wp_deregister_style( 'yith-wcwl-font-awesome' );
wp_deregister_style( 'wplc-font-awesome' );
// Load our main stylesheet.
wp_enqueue_style( 'kapee-style', KAPEE_URI.'/style.css' , array(), KAPEE_VERSION );
// Load visual composer css
wp_enqueue_style( 'js_composer_front' );
wp_enqueue_style( 'js_composer_custom_css' );
$style = ( is_rtl() ) ? KAPEE_STYLES .'style-rtl.css' : KAPEE_STYLES.'style.css';
$woocommerce_style = ( is_rtl() ) ? KAPEE_STYLES.'woocommerce-rtl' : KAPEE_STYLES .'woocommerce' ;
wp_enqueue_style( 'kapee-default-fonts', $this->kapee_fonts_url(), array(), null );
wp_enqueue_style( 'bootstrap', KAPEE_STYLES.'bootstrap.min.css', array(), '4.0.0' );
wp_enqueue_style( 'kapee-woocommerce', $woocommerce_style.'.css', array(), '3.4.5' );
wp_enqueue_style( 'font-awesome', KAPEE_STYLES .'font-awesome.min.css', array(), '4.7.0' );
wp_enqueue_style( 'pls-fonts', KAPEE_STYLES.'pls-font.min.css', array(), '1.0' );
wp_enqueue_style( 'owl-carousel', KAPEE_STYLES.'owl.carousel.min.css', array(), '2.3.4' );
wp_enqueue_style( 'animate', KAPEE_STYLES.'animate.min.css', array(), '4.1.1' );
wp_enqueue_style( 'magnific-popup', KAPEE_STYLES.'magnific-popup.css', array(), '1.1.0' );
if( kapee_get_option( 'skeleton-effect', 0 ) ){
wp_enqueue_style( 'kapee-skeleton', KAPEE_STYLES.'skeleton.css', array(), KAPEE_VERSION );
}
// Theme basic stylesheet.
wp_enqueue_style( 'kapee-basic', $style, array( 'bootstrap', 'kapee-woocommerce' ), KAPEE_VERSION );
// Dynamic CSS
wp_add_inline_style( 'kapee-basic', kapee_theme_style() );
// load typekit fonts
$enable_typekit_font = kapee_get_option( 'typekit-font', 0 );
$typekit_id = kapee_get_option( 'typekit-kit-id', '' );
if ( $enable_typekit_font && ! empty( $typekit_id ) ) {
wp_enqueue_style( 'kapee-typekit', kapee_get_protocol().'//use.typekit.net/' . esc_attr ( $typekit_id ) . '.css', array(), $theme_version );
}
// REMOVE WP EMOJI
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles');
wp_register_style( 'kapee-custom-css', false );
}
/**
* Load front-end script
*
* @since 1.0.0
*/
public function theme_js() {
// Load visual composer Js
wp_register_script( 'waypoints', KAPEE_SCRIPTS.'waypoints.min.js', array( 'jquery' ), '2.0.2', true );
wp_enqueue_script( 'wpb_composer_front_js' );
wp_enqueue_script( 'popper', KAPEE_SCRIPTS.'popper.min.js', array( 'jquery' ), '4.0.0', true );
wp_enqueue_script( 'bootstrap', KAPEE_SCRIPTS.'bootstrap.min.js', array( 'jquery' ), '4.0.0', true );
wp_enqueue_script( 'owl-carousel', KAPEE_SCRIPTS.'owl.carousel.min.js', array( 'jquery' ), '2.3.4', true );
wp_register_script( 'isinviewport', KAPEE_SCRIPTS.'isInViewport.min.js', array( 'jquery' ), '1.8.0', true );
wp_enqueue_script( 'slick', KAPEE_SCRIPTS.'slick.min.js', array( 'jquery' ), '1.9.0', true );
wp_register_script( 'isotope', KAPEE_SCRIPTS.'isotope.pkgd.min.js', array( 'jquery' ), '3.0.6', true );
wp_register_script( 'cookie', KAPEE_SCRIPTS.'cookie.min.js', array( 'jquery' ), '', true );
wp_register_script( 'parallax', KAPEE_SCRIPTS.'jquery.parallax.js', array( 'jquery' ), '', true );
wp_register_script( 'threesixty', KAPEE_SCRIPTS .'threesixty.min.js', array( 'jquery' ), KAPEE_VERSION, true );
wp_enqueue_script( 'magnific-popup', KAPEE_SCRIPTS.'jquery.magnific-popup.min.js', array( 'jquery' ), '1.1.0', true );
wp_enqueue_script( 'nanoscroller', KAPEE_SCRIPTS.'jquery.nanoscroller.min.js', array( 'jquery' ), '0.8.7', true );
wp_register_script( 'countdown', KAPEE_SCRIPTS.'jquery.countdown.min.js', array( 'jquery' ), '2.2.0', true );
wp_register_script( 'counterup', KAPEE_SCRIPTS.'jquery.counterup.min.js', array( 'jquery' ), '1.0', true );
wp_register_script( 'sticky-kit', KAPEE_SCRIPTS.'sticky-kit.min.js', array( 'jquery' ), '1.10.0', true );
if( kapee_get_option( 'product-ajax-search', 1 ) == 1 ){
wp_enqueue_script( 'autocomplete', KAPEE_SCRIPTS.'jquery.autocomplete.min.js', array( 'jquery' ), '1.4.11', true );
}
if( kapee_get_option( 'lazy-load', 1 ) ){
wp_enqueue_script( 'lazyload', KAPEE_SCRIPTS.'jquery.lazy.min.js', array( 'jquery' ), '1.7.10', true );
}
if( kapee_get_option( 'widget-items-hide-max-limit', 1 ) ){
wp_enqueue_script( 'hideMaxListItem', KAPEE_SCRIPTS.'hideMaxListItem-min.js', array( 'jquery' ), '1.36', true );
}
if( kapee_get_option( 'product-quickview-button', 1 ) ){
wp_enqueue_script( 'wc-add-to-cart-variation' );
}
if( kapee_get_option( 'sticky-sidebar', 1 ) && ( 'full-width' != kapee_get_layout() ) ){
wp_enqueue_script( 'sticky-kit' );
}
if ( function_exists('is_product') && is_product() && ( kapee_get_option( 'sticky-product-image', 1 ) || kapee_get_option( 'sticky-product-summary', 1 ) ) ){
wp_enqueue_script( 'sticky-kit' );
}
//wp_enqueue_script( 'wc-password-strength-meter' );
$google_api_key = kapee_get_option( 'google-map-api', '' );
if( ! empty( $google_api_key ) ){
wp_enqueue_script( 'kapee-google-map-api', kapee_get_protocol().'//maps.google.com/maps/api/js?sensor=false&libraries=geometry&v=3.22&key=' . $google_api_key . '', array(), '', false );
}
wp_enqueue_script( 'kapee-script', KAPEE_SCRIPTS . 'functions.js', array( 'jquery' ), KAPEE_VERSION, true );
$is_rtl = is_rtl() ? true : false ;
$kapee_options = apply_filters( 'kapee_localize_script_data', array(
'rtl' => $is_rtl,
'ajax_url' => admin_url( 'admin-ajax.php' ), false,
'nonce' => wp_create_nonce( 'kapee_nonce' ),
'product_ajax_search' => kapee_get_option( 'product-ajax-search', 1 ) ? true : false,
'sticky_header' => kapee_get_option( 'sticky-header', 0 ) ? true : false,
'sticky_header_scroll_up' => kapee_get_option( 'sticky-header-scroll-up', 1 ) ? true : false,
'sticky_header_tablet' => kapee_get_option( 'sticky-header-tablet', 0 ) ? true : false,
'sticky_header_mobile' => kapee_get_option( 'sticky-header-mobile', 0 ) ? true : false,
'login_register_popup' => kapee_get_option( 'login-register-popup', 1 ) ? true : false,
'header_minicart_popup' => kapee_get_option( 'header-minicart-popup', 1 ) ? true : false,
'skeleton_effect' => kapee_get_option( 'skeleton-effect', 0 ) ? true : false,
'lazy_load' => kapee_get_option( 'lazy-load', 0 ) ? true : false,
'promo_bar' => kapee_get_option( 'promo-bar', 0 ) ? true : false,
'cookie_path' => COOKIEPATH,
'cookie_expire' => 3600 * 24 * 30,
'permalink' => ( get_option( 'permalink_structure' ) == '' ) ? 'plain' : '',
'newsletter_args' => apply_filters( 'kapee_js_newsletter_args', array(
'popup_enable' => kapee_get_option( 'newsletter-popup', 0 ) ? true : false,
'popup_display_on' => kapee_get_option( 'newsletter-when-appear', 'page_load' ),
'popup_delay' => kapee_get_option( 'newsletter-delay', 5 ),
'popup_x_scroll' => kapee_get_option( 'newsletter-x-scroll', 30 ),
'show_for_mobile' => kapee_get_option( 'newsletter-show-mobile', 1 ),
) ),
'js_translate_text' => apply_filters( 'kapee_js_text', array(
'days_text' => esc_html__( 'Days', 'kapee' ),
'hours_text' => esc_html__( 'Hrs', 'kapee' ),
'mins_text' => esc_html__( 'Mins', 'kapee' ),
'secs_text' => esc_html__( 'Secs', 'kapee' ),
'sdays_text' => esc_html__( 'd', 'kapee' ),
'shours_text' => esc_html__( 'h', 'kapee' ),
'smins_text' => esc_html__( 'm', 'kapee' ),
'ssecs_text' => esc_html__( 's', 'kapee' ),
'show_more' => esc_html__( '+ Show more', 'kapee' ),
'show_less' => esc_html__( '- Show less', 'kapee' ),
'loading_txt' => esc_html__( 'Loading...', 'kapee' ),
'variation_unavailable' => esc_html__( 'Sorry, this product is unavailable. Please choose a different combination.', 'kapee' ),
) ),
'product_tooltip' => kapee_get_option( 'product-hover-tooltip', 1 ) ? true : false,
'product_image_zoom' => kapee_get_option( 'product-gallery-zoom', 1 ) ? true : false,
'product_PhotoSwipe' => kapee_get_option( 'product-gallery-lightbox', 1 ) ? true : false,
'product_gallery_layout' => function_exists('kapee_get_product_gallery_layout') ? kapee_get_product_gallery_layout() : kapee_get_option( 'product-gallery-style', 'product-gallery-left' ),
'product_add_to_cart_ajax' => kapee_get_option( 'product_add_to_cart_ajax', 1 ) ? true : false,
'product_open_cart_mini' => kapee_get_option( 'product_open_cart_mini', 1 ) ? true : false,
'product_quickview_button' => kapee_get_option( 'product-quickview-button', 1 ) ? true : false,
'sticky_product_image' => kapee_get_option( 'sticky-product-image', 1 ) ? true : false,
'sticky_product_summary' => kapee_get_option( 'sticky-product-summary', 1 ) ? true : false,
'sticky_add_to_cart_btn' => kapee_get_option( 'sticky-add-to-cart-button', 1 ) ? true : false,
'sticky_sidebar' => kapee_get_option( 'sticky-sidebar', 1 ) ? true : false,
'widget_toggle' => kapee_get_option('widget-toggle', 0 ) ? true : false,
'widget_menu_toggle' => kapee_get_option('widget-menu-toggle', 0 ) ? true : false,
'widget_hide_max_limit_item' => kapee_get_option('widget-items-hide-max-limit', 0 ) ? true : false,
'sidebar_canvas_mobile' => kapee_get_option('sidebar-canvas-mobile', 0 ) ? true : false,
'number_of_show_widget_items' => kapee_get_option('number-of-show-widget-items', 8),
'bought_together_success' => esc_html__( 'Added all items to cart', 'kapee' ),
'bought_together_error' => esc_html__('Someting wrong', 'kapee' ),
'disable_variation_price_change'=> false,
'maintenance_mode' => kapee_get_option( 'maintenance-mode' , 0 ) ? true : false,
'dokan_active' => ( KAPEE_DOKAN_ACTIVE ) ? true : false
) );
if ( class_exists( 'WooCommerce' ) ) {
$kapee_options['price_format'] = get_woocommerce_price_format();
$kapee_options['price_decimals'] = wc_get_price_decimals();
$kapee_options['price_thousand_separator'] = wc_get_price_thousand_separator();
$kapee_options['price_decimal_separator'] = wc_get_price_decimal_separator();
$kapee_options['currency_symbol'] = get_woocommerce_currency_symbol();
$kapee_options['wc_tax_enabled'] = wc_tax_enabled();
$kapee_options['cart_url'] = wc_get_cart_url();
if ( wc_tax_enabled() ) {
$kapee_options['ex_tax_or_vat'] = WC()->countries->ex_tax_or_vat();
} else {
$kapee_options['ex_tax_or_vat'] = '';
}
}
wp_localize_script( 'kapee-script', 'kapee_options', $kapee_options );
wp_enqueue_script( 'html5', KAPEE_SCRIPTS .'html5.js' , array(), '3.7.3' );
wp_script_add_data( 'html5', 'conditional', 'lt IE 9' );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
/**
* Load custom js in footer
* @since 1.0.0
*/
function kapee_owl_param() {
global $kapee_owlparam;
wp_localize_script( 'kapee-script', 'kapeeOwlParam', ( array ) $kapee_owlparam );
}
/**
* Support to font mime
* @since 1.0.0
*/
function kapee_upload_mimes($existing_mimes) {
$existing_mimes['svg'] = 'image/svg+xml';
$existing_mimes['svgz'] = 'image/svg+xml';
$existing_mimes['woff'] = 'application/x-font-woff';
$existing_mimes['woff2'] = 'application/x-font-woff2';
$existing_mimes['ttf'] = 'application/x-font-ttf';
$existing_mimes['otf'] = 'application/x-font-otf';
$existing_mimes['eot'] = 'application/vnd.ms-fontobject';
return $existing_mimes;
}
/**
* Search product with sku
* @since 1.3.9
*/
public function product_search_sku( $where ) {
global $pagenow, $wpdb, $wp;
if ( ( is_admin() && 'edit.php' != $pagenow )
|| ! is_search()
|| ! isset( $wp->query_vars['s'] )
|| ( isset( $wp->query_vars['post_type'] ) && 'product' != $wp->query_vars['post_type'] )
|| ( isset( $wp->query_vars['post_type'] ) && is_array( $wp->query_vars['post_type'] ) && ! in_array( 'product', $wp->query_vars['post_type'] ) )
) {
return $where;
}
$search_ids = array();
$terms = explode( ',', $wp->query_vars['s'] );
foreach ( $terms as $term ) {
//Include the search by id if admin area.
if ( is_admin() && is_numeric( $term ) ) {
$search_ids[] = $term;
}
// search for variations with a matching sku.
$sku_to_parent_id = $wpdb->get_col( $wpdb->prepare( "SELECT p.post_parent as post_id FROM {$wpdb->posts} as p join {$wpdb->postmeta} pm on p.ID = pm.post_id and pm.meta_key='_sku' and pm.meta_value LIKE '%%%s%%' where p.post_parent <> 0 group by p.post_parent", wc_clean( $term ) ) );
//Search for a simple product that matches the sku.
$sku_to_id = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_sku' AND meta_value LIKE '%%%s%%';", wc_clean( $term ) ) );
$search_ids = array_merge( $search_ids, $sku_to_id, $sku_to_parent_id );
}
$search_ids = array_filter( array_map( 'absint', $search_ids ) );
if ( sizeof( $search_ids ) > 0 ) {
$where = str_replace( ')))', ") OR ({$wpdb->posts}.ID IN (" . implode( ',', $search_ids ) . "))))", $where );
}
return $where;
}
/**
* Add Favicon.
*/
function favicon() {
ob_start();
if ( function_exists( 'has_site_icon' ) && has_site_icon() ) {
return '';
}
$favicon_url = kapee_get_option( 'theme-favicon', array( 'url' => KAPEE_IMAGES.'favicon.png' ) );
$favicon_appple_touch_url = kapee_get_option( 'theme-favicon-appple-touch', array( 'url' => KAPEE_IMAGES.'favicon-152.png' ) );
if( empty( $favicon_url['url'] ) ){
$favicon_url['url'] = KAPEE_IMAGES.'favicon.png';
}
if( empty( $favicon_appple_touch_url['url'] ) ){
$favicon_appple_touch_url['url'] = KAPEE_IMAGES.'favicon-152.png';
}
if( is_ssl() ) {
$favicon = str_replace('http://', 'https://', $favicon_url['url']);
$favicon_appple_touch = str_replace('http://', 'https://', $favicon_appple_touch_url['url']);
}else{
$favicon = $favicon_url['url'];
$favicon_appple_touch = $favicon_appple_touch_url['url'];
}
echo '<link rel="shortcut icon" sizes="32x32" href=" '. esc_url($favicon). '">'. "\n";
echo '<link rel="apple-touch-icon" sizes="152x152" href=" '. esc_url($favicon_appple_touch). '">'. "\n";
}
/**
* Add a pingback url auto-discovery header for singularly identifiable articles.
*/
function pingback_header() {
if ( is_singular() && pings_open() ) {
printf( '<link rel="pingback" href="%s">' . "\n", esc_url(get_bloginfo( 'pingback_url' )) );
}
}
function kapee_google_theme_color(){
$google_theme_color =kapee_get_option('google-theme-color', 'transparent' );
if( 'transparent' != $google_theme_color){ ?>
<meta name="theme-color" content="<?php echo esc_attr( $google_theme_color ); ?>">
<?php
}
}
/**
* Javascript detection
*/
public function javascript_detection(){
echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>";
}
/**
* Output of custom js options.
*/
public function kapee_custom_head_js() {
$custom_js = kapee_get_option('custom-js-head','');
if ( !empty( trim( $custom_js ) ) ) {
echo apply_filters( 'kapee_head_custom_js', $custom_js ); // WPCS: XSS OK.
}
}
/**
* Output of custom js options.
*/
public function kapee_custom_footer_js() {
$custom_js = kapee_get_option( 'custom-js-footer', '' );
if ( ! empty( trim( $custom_js ) ) ) {
echo apply_filters( 'kapee_footer_custom_js', $custom_js ); // WPCS: XSS OK.
}
}
/**
* Output of dyanamic css.
*/
public function kapee_print_css() {
global $kapee_custom_css;
if ( ! empty( trim( $kapee_custom_css ) ) ) {
// Sanitize.
$kapee_custom_css = wp_check_invalid_utf8( $kapee_custom_css );
wp_add_inline_style( 'kapee-custom-css',$kapee_custom_css );
}
}
/**
* Enqueue custom inline style
*/
public function kapee_enqueue_inline_style(){
wp_enqueue_style( 'kapee-custom-css' );
}
/**
* Alter the search posts per page
*
* @since 1.0.0
*/
public function search_posts_per_page( $query ) {
if ( is_admin() || ! $query->is_main_query() ) return;
$portfolio_per_page = kapee_get_option( 'portfolio-per-page', 9 );
if ( in_array ( $query->get('post_type'), array('portfolio') ) ) {
$query->set( 'posts_per_page', $portfolio_per_page);
return;
}elseif( $query->is_main_query() && is_search() && isset($_GET['post_type']) && $_GET['post_type'] == 'product' ){
$posts_per_page = kapee_get_option( 'products-per-page', 12);
if ( isset( $_GET[ 'per_page' ] ) ) {
$posts_per_page = $_GET[ 'per_page' ];
}
$query->set( 'posts_per_page', $posts_per_page);
}
}
/**
*Post View Count
*/
public function kapee_post_view_count(){
$prefix = KAPEE_PREFIX;
if( ! is_single() || ! is_singular( 'post' ) ) return;
$post_id = get_the_ID();
$views = get_post_meta( $post_id, $prefix.'views_count', true );
$views = !empty($views) ? $views : 0;
update_post_meta( $post_id, $prefix.'views_count', ($views+1) );
$views = get_post_meta( $post_id, $prefix.'views_count', true );
}
/**
* 'Continue reading' link.
*/
public function kapee_excerpt_more( $link ) {
return '';
}
public function kapee_read_more_tag() {
return sprintf( '<p class="read-more-btn link-more"><a href="%1$s" class="more-link">%2$s</a></p>',
esc_url( get_permalink( get_the_ID() ) ),
kapee_get_option('read-more-text','Continue Reading')
);
}
/**
* Filter the except length to 30 words.
*/
function kapee_excerpt_length( $length ) {
return kapee_get_option('blog-excerpt-length', 30);
}
}
// Initialize theme
$kapee_theme_class = new Kapee_Theme_Class;