HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: /home/bournesociety.org.uk/public_html/wp-content/themes/skt-ayurveda/functions.php
<?php 
/**
 * SKT Ayurveda functions and definitions
 *
 * @package SKT Ayurveda
 */

 
/**
 * Set the content width based on the theme's design and stylesheet.
 */
if ( ! function_exists( 'skt_ayurveda_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 post thumbnails.
 */
function skt_ayurveda_setup() {
	$GLOBALS['content_width'] = apply_filters( 'skt_ayurveda_content_width', 640 );
	load_theme_textdomain( 'skt-ayurveda', get_template_directory() . '/languages' );
	add_theme_support( 'automatic-feed-links' );
	add_theme_support('woocommerce');
	add_theme_support( 'post-thumbnails' );
	add_theme_support( 'title-tag' );
	add_post_type_support( 'page', 'excerpt' );
	add_theme_support( 'wc-product-gallery-zoom' );
	add_theme_support( 'wc-product-gallery-lightbox' );
	add_theme_support( 'wc-product-gallery-slider' );
	add_theme_support( 'custom-logo', array(
		'height'      => 55,
		'width'       => 200,
		'flex-height' => true,
	) );	
	register_nav_menus( array(
		'primary' => esc_html__( 'Primary Menu', 'skt-ayurveda' )				
	) );
	add_theme_support( 'custom-background', array(
		'default-color' => 'ffffff'
	) );
	add_editor_style( 'editor-style.css' );
} 
endif; // skt_ayurveda_setup
add_action( 'after_setup_theme', 'skt_ayurveda_setup' );
function skt_ayurveda_widgets_init() { 	
	register_sidebar( array(
		'name'          => esc_html__( 'Sidebar', 'skt-ayurveda' ),
		'description'   => esc_html__( 'Appears on sidebar', 'skt-ayurveda' ),
		'id'            => 'sidebar-1',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',		
		'before_title'  => '<h3 class="widget-title titleborder"><span>',
		'after_title'   => '</span></h3>',
		'after_widget'  => '</aside>',
	) ); 
	register_sidebar( array(
		'name'          => esc_html__( 'Footer Column 1', 'skt-ayurveda' ),
		'description'   => esc_html__( 'Appears on page footer', 'skt-ayurveda' ),
		'id'            => 'fc-1',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',		
		'before_title'  => '<h5>',
		'after_title'   => '</h5>',
		'after_widget'  => '</aside>',
	) );
	register_sidebar( array(
		'name'          => esc_html__( 'Footer Column 2', 'skt-ayurveda' ),
		'description'   => esc_html__( 'Appears on page footer', 'skt-ayurveda' ),
		'id'            => 'fc-2',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',		
		'before_title'  => '<h5>',
		'after_title'   => '</h5>',
		'after_widget'  => '</aside>',
	) );
	register_sidebar( array(
		'name'          => esc_html__( 'Footer Column 3', 'skt-ayurveda' ),
		'description'   => esc_html__( 'Appears on page footer', 'skt-ayurveda' ),
		'id'            => 'fc-3',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',		
		'before_title'  => '<h5>',
		'after_title'   => '</h5>',
		'after_widget'  => '</aside>',
	) );
}
add_action( 'widgets_init', 'skt_ayurveda_widgets_init' );


/**
* Enqueue theme fonts.
*/
function skt_ayurveda_fonts() {
	$fonts_url = skt_ayurveda_get_fonts_url();

	// Load Fonts if necessary.
	if ( $fonts_url ) {
		require_once get_theme_file_path( 'inc/wptt-webfont-loader.php' );
		wp_enqueue_style( 'skt-ayurveda-fonts', wptt_get_webfont_url( $fonts_url ), array(), '20201110' );
	}
}
add_action( 'wp_enqueue_scripts', 'skt_ayurveda_fonts', 1 );
add_action( 'enqueue_block_editor_assets', 'skt_ayurveda_fonts', 1 );

/**
 * Retrieve webfont URL to load fonts locally.
 */
function skt_ayurveda_get_fonts_url() {
	$font_families = array(
		'Poppins:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic',
		'Playfair Display:400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic'
	);

	$query_args = array(
		'family'  => urlencode( implode( '|', $font_families ) ),
		'subset'  => urlencode( 'latin,latin-ext' ),
		'display' => urlencode( 'swap' ),
	);

	return apply_filters( 'skt_ayurveda_get_fonts_url', add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ) );
}
	
	
function skt_ayurveda_scripts() {
	if ( !is_rtl() ) {
		wp_enqueue_style( 'skt-ayurveda-basic-style', get_stylesheet_uri() );
		wp_enqueue_style( 'skt-ayurveda-main-style', get_template_directory_uri()."/css/responsive.css" );		
	}
	if ( is_rtl() ) {
		wp_enqueue_style( 'skt-ayurveda-rtl', get_template_directory_uri() . "/rtl.css");
	}	
	wp_enqueue_style( 'skt-ayurveda-editor-style', get_template_directory_uri()."/editor-style.css" );
	wp_enqueue_style( 'skt-ayurveda-base-style', get_template_directory_uri()."/css/style_base.css" );
	wp_enqueue_script( 'skt-ayurveda-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '01062020', true );
	wp_enqueue_script( 'skt-ayurveda-customscripts', get_stylesheet_directory_uri() . '/js/custom.js', array('jquery') );
	wp_localize_script( 'skt-ayurveda-navigation', 'sktayurvedaScreenReaderText', array(
		'expandMain'   => __( 'Open main menu', 'skt-ayurveda' ),
		'collapseMain' => __( 'Close main menu', 'skt-ayurveda' ),
		'expandChild'   => __( 'Expand submenu', 'skt-ayurveda' ),
		'collapseChild' => __( 'Collapse submenu', 'skt-ayurveda' ),
	) );	
	
	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
		wp_enqueue_script( 'comment-reply' );
	}
}
add_action( 'wp_enqueue_scripts', 'skt_ayurveda_scripts' );

function skt_ayurveda_admin_style() {
  wp_enqueue_style('skt-ayurveda-admin-style', get_template_directory_uri()."/css/skt-ayurveda-admin-style.css");
}
add_action('admin_enqueue_scripts', 'skt_ayurveda_admin_style');

define('SKT_AYURRVEDA_SKTTHEMES_URL','https://www.sktthemes.org');
define('SKT_AYURRVEDA_SKTTHEMES_PRO_THEME_URL','https://www.sktthemes.org/shop/ayurvedic-medicine-wordpress-theme');
define('SKT_AYURRVEDA_SKTTHEMES_FREE_THEME_URL','https://www.sktthemes.org/shop/free-xxx-xxx-xxx');
define('SKT_AYURRVEDA_SKTTHEMES_THEME_DOC','https://www.sktthemesdemo.net/documentation/skt-ayurveda-doc/');
define('SKT_AYURRVEDA_SKTTHEMES_LIVE_DEMO','https://sktperfectdemo.com/themepack/gbayurveda/');
define('SKT_AYURRVEDA_SKTTHEMES_THEMES','https://www.sktthemes.org/themes');
define('SKT_AYURRVEDA_SKTTHEMES_THEME_URI', trailingslashit( esc_url( get_template_directory_uri() ) ) );

/**
 * Custom template for about theme.
 */
require get_template_directory() . '/inc/about-themes.php';
/**
 * Custom template tags for this theme.
 */
require get_template_directory() . '/inc/template-tags.php';
/**
 * Custom functions that act independently of the theme templates.
 */
require get_template_directory() . '/inc/extras.php';
/**
 * Customizer additions.
 */
require get_template_directory() . '/inc/customizer.php';

// get slug by id
function skt_ayurveda_get_slug_by_id($id) {
	$post_data = get_post($id, ARRAY_A);
	$slug = $post_data['post_name'];
	return $slug; 
}
if ( ! function_exists( 'skt_ayurveda_the_custom_logo' ) ) :
/**
 * Displays the optional custom logo.
 *
 * Does nothing if the custom logo is not available.
 *
 */
function skt_ayurveda_the_custom_logo() {
	if ( function_exists( 'the_custom_logo' ) ) {
		the_custom_logo();
	}
}
endif;
require_once get_template_directory() . '/customize-pro/example-1/class-customize.php';

add_filter( 'body_class','skt_ayurveda_body_class' );
function skt_ayurveda_body_class( $classes ) {
	if ( skt_ayurveda_is_woocommerce_activated() ) {
		$classes[] = 'woocommerce';
	}
	
    return $classes;
}

/**
 * Filter the except length to 21 words.
 *
 * @param int $length Excerpt length.
 * @return int (Maybe) modified excerpt length.
 */
function skt_ayurveda_custom_excerpt_length( $length ) {
    if ( is_admin() ) return $length;
    return 25;
}
add_filter( 'excerpt_length', 'skt_ayurveda_custom_excerpt_length', 999 );
 
/**
 *
 * Style For About Theme Page
 *
 */
function skt_ayurveda_admin_about_page_css_enqueue($hook) {
   if ( 'appearance_page_skt_ayurveda_guide' != $hook ) {
        return;
    }
    wp_enqueue_style( 'skt-ayurveda-about-page-style', get_template_directory_uri() . '/css/skt-ayurveda-about-page-style.css' );
}
add_action( 'admin_enqueue_scripts', 'skt_ayurveda_admin_about_page_css_enqueue' );

/**
 * Check if WooCommerce is activated
 */
if ( ! function_exists( 'skt_ayurveda_is_woocommerce_activated' ) ) {
	function skt_ayurveda_is_woocommerce_activated() {
		if ( class_exists( 'woocommerce' ) ) { return true; } else { return false; }
	}
}

/**
 * Show notice on theme activation
 */
if ( is_admin() && isset($_GET['activated'] ) && $pagenow == "themes.php" ) {
	add_action( 'admin_notices', 'skt_ayurveda_activation_notice' );
}
function skt_ayurveda_activation_notice(){
    ?>
    <div class="notice notice-info is-dismissible"> 
        <div class="skt-ayurveda-notice-container">
        	<div class="skt-ayurveda-notice-img"><img src="<?php echo esc_url( SKT_AYURRVEDA_SKTTHEMES_THEME_URI . 'images/icon-skt-templates.png' ); ?>" alt="<?php esc_attr_e('SKT Templates', 'skt-ayurveda');?>" ></div>
            <div class="skt-ayurveda-notice-content">
            <div class="skt-ayurveda-notice-heading"><?php echo esc_html__('Thank you for installing SKT Ayurveda!', 'skt-ayurveda'); ?></div>
            <p class="largefont"><?php echo esc_html__('SKT Ayurveda comes with 150+ ready to use Elementor templates. Install the SKT Templates plugin to get started.', 'skt-ayurveda'); ?></p>
            </div>
            <div class="skt-ayurveda-clear"></div>
        </div>
    </div>
    <?php
}

function skt_ayurveda_wp_admin_style($hook) {
	 	if ( 'themes.php' != $hook ) {
			return;
		}
		wp_enqueue_style( 'skt-ayurveda-admin-style', get_template_directory_uri() . '/css/skt-ayurveda-admin-style.css' );
}
add_action( 'admin_enqueue_scripts', 'skt_ayurveda_wp_admin_style' );

// WordPress wp_body_open backward compatibility
if ( ! function_exists( 'wp_body_open' ) ) {
    function wp_body_open() {
        do_action( 'wp_body_open' );
    }
}

/**
 * Fix skip link focus in IE11.
 *
 * This does not enqueue the script because it is tiny and because it is only for IE11,
 * thus it does not warrant having an entire dedicated blocking script being loaded.
 *
 * @link https://git.io/vWdr2
 */
function skt_ayurveda_skip_link_focus_fix() {  
	// The following is minified via `terser --compress --mangle -- js/skip-link-focus-fix.js`.
	?>
	<script>
	/(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1);
	</script>
	<?php       
}
add_action( 'wp_print_footer_scripts', 'skt_ayurveda_skip_link_focus_fix' );

/**
 * Include the Plugin_Activation class.
 */

require_once dirname( __FILE__ ) . '/class-tgm-plugin-activation.php';
add_action( 'tgmpa_register', 'skt_ayurveda_register_required_plugins' );
 
function skt_ayurveda_register_required_plugins() {
	$plugins = array(
		array(
			'name'      => esc_html__('SKT Templates', 'skt-ayurveda'),
			'slug'      => 'skt-templates',
			'required'  => false,
		)
	);

	$config = array(
		'id'           => 'tgmpa',                 // Unique ID for hashing notices for multiple instances of TGMPA.
		'default_path' => '',                      // Default absolute path to bundled plugins.
		'menu'         => 'skt-install-plugins',   // Menu slug.
		'parent_slug'  => 'themes.php',            // Parent menu slug.
		'capability'   => 'edit_theme_options',    // Capability needed to view plugin install page, should be a capability associated with the parent menu used.
		'has_notices'  => true,                    // Show admin notices or not.
		'dismissable'  => true,                    // If false, a user cannot dismiss the nag message.
		'dismiss_msg'  => '',                      // If 'dismissable' is false, this message will be output at top of nag.
		'is_automatic' => false,                   // Automatically activate plugins after installation or not.
		'message'      => '',                      // Message to output right before the plugins table.
	);

	tgmpa( $plugins, $config );
}