LA LA LA LALA GIF94;
| Path : /home/alfamiffjq/www/alfamifwp/wp-content/themes/setto/inc/ |
| Current File : /home/alfamiffjq/www/alfamifwp/wp-content/themes/setto/inc/extras.php |
<?php
/**
* Custom functions that act independently of the theme templates.
*
* Eventually, some of the functionality here could be replaced by core features.
*
* @package Setto
*/
/**
* Adds custom classes to the array of body classes.
*
* @param array $classes Classes for the body element.
* @return array
*/
function setto_body_classes( $classes ) {
// Adds a class of group-blog to blogs with more than 1 published author.
if ( is_multi_author() ) {
$classes[] = 'group-blog';
}
// Adds a class of hfeed to non-singular pages.
if ( ! is_singular() ) {
$classes[] = 'hfeed';
}
return $classes;
}
add_filter( 'body_class', 'setto_body_classes' );
if ( ! function_exists( 'wp_body_open' ) ) {
/**
* Backward compatibility for wp_body_open hook.
*
* @since 1.0.0
*/
function wp_body_open() {
do_action( 'wp_body_open' );
}
}
if (!function_exists('setto_str_replace_assoc')) {
/**
* setto_str_replace_assoc
* @param array $replace
* @param array $subject
* @return array
*/
function setto_str_replace_assoc(array $replace, $subject) {
return str_replace(array_keys($replace), array_values($replace), $subject);
}
}
/**
* Add WooCommerce Cart Icon With Cart Count (https://isabelcastillo.com/woocommerce-cart-icon-count-theme-header)
*/
function setto_add_to_cart_fragment( $fragments ) {
ob_start();
$count = WC()->cart->cart_contents_count;
?>
<span class="cart-icon-wrap">
<span class="cart-icon">
<svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1">
<path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path>
<line x1="3" y1="6" x2="21" y2="6"></line>
<path d="M16 10a4 4 0 0 1-8 0"></path>
</svg>
</span>
<?php if ( $count > 0 ) { ?>
<span id="cart-total" class="bigcounter counter"><?php echo esc_html( $count ); ?></span>
<?php } else { ?>
<span id="cart-total" class="bigcounter counter"><?php echo esc_html_e('0','setto'); ?></span>
<?php } ?>
</span>
<?php
$fragments['.cart-icon-wrap'] = ob_get_clean();
return $fragments;
}
add_filter( 'woocommerce_add_to_cart_fragments', 'setto_add_to_cart_fragment' );
// Header Image
if ( ! function_exists( 'setto_header_image' ) ) {
function setto_header_image() {
if ( get_header_image() ) : ?>
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" id="custom-header" rel="home">
<img src="<?php esc_url(header_image()); ?>" width="<?php echo esc_attr( get_custom_header()->width ); ?>" height="<?php echo esc_attr( get_custom_header()->height ); ?>" alt="<?php echo esc_attr(get_bloginfo( 'title' )); ?>">
</a>
<?php endif;
}
add_action('setto_header_image','setto_header_image');
}
// Main Menu
if ( ! function_exists( 'setto_primary_navigation' ) ) {
function setto_primary_navigation() {
wp_nav_menu(
array(
'theme_location' => 'primary_menu',
'container' => '',
'menu_class' => 'main-menu',
'fallback_cb' => 'WP_Bootstrap_Navwalker::fallback',
'walker' => new WP_Bootstrap_Navwalker()
)
);
}
add_action('setto_primary_navigation','setto_primary_navigation');
}
// logo
if ( ! function_exists( 'setto_header_logo' ) ) {
function setto_header_logo() {
if(has_custom_logo())
{
the_custom_logo();
}
else {
?>
<a href="<?php echo esc_url( home_url( '/' ) ); ?>">
<h4 class="site-title">
<?php
echo esc_html(bloginfo('name'));
?>
</h4>
</a>
<?php
}
?>
<?php
$setto_site_desc = get_bloginfo( 'description');
if ($setto_site_desc) : ?>
<p class="site-description"><?php echo esc_html($setto_site_desc); ?></p>
<?php endif;
}
add_action('setto_header_logo','setto_header_logo');
}
// Header Search
if ( ! function_exists( 'setto_header_desktop_search' ) ) {
function setto_header_desktop_search() {
$hs_hdr_search = get_theme_mod('hs_hdr_search','1');
if($hs_hdr_search=='1'): ?>
<li class="side-wrap desktop-search">
<form method="get" id="form-search-header" action="<?php echo esc_url( home_url( '/' ) ); ?>" class="search-bar search-form">
<div class="form-search">
<input type="search" placeholder="<?php echo esc_attr_e( 'Search', 'setto' ); ?>" name="s" id="search" class="input-text">
<button class="search-btn search-submit" type="submit">
<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</button>
</div>
</form>
</li>
<li class="side-wrap search-wrap">
<div class="search-rap">
<a class="search-crap" data-bs-toggle="modal" href="#search-crap">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</a>
</div>
</li>
<?php
endif;
}
add_action('setto_header_desktop_search','setto_header_desktop_search');
}
// Header Search Popup
if ( ! function_exists( 'setto_header_search_popup' ) ) {
function setto_header_search_popup() { ?>
<div class="crap-search fade modal" id="search-crap">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<form action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get" class="search-bar search-form">
<div class="form-search">
<input type="hidden" name="type" value="product">
<input type="hidden" name="options[unavailable_products]" value="show">
<input type="hidden" name="options[prefix]" value="last">
<input type="search" name="s" id="search" value="" placeholder="<?php echo esc_attr_e('Search','setto'); ?>" id="search" required class="input-text" aria-label="<?php echo esc_attr_e('Search','setto'); ?>">
<button class="search-btn search-submit" type="submit">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</button>
</div>
</form>
<button type="button" class="btn close" data-bs-dismiss="modal">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x">
<line x1="18" y1="6" x2="6" y2="18"></line>
<line x1="6" y1="6" x2="18" y2="18"></line>
</svg>
</button>
</div>
</div>
</div>
</div>
<?php
}
add_action('setto_header_search_popup','setto_header_search_popup');
}
// Header My Account
if ( ! function_exists( 'setto_header_my_account' ) ) {
function setto_header_my_account() {
$hs_hdr_acc = get_theme_mod('hs_hdr_acc','1');
if($hs_hdr_acc=='1'):
?>
<li class="side-wrap user-wrap">
<div class="acc-desk">
<div class="acc-re-lo">
<a href="<?php echo esc_url(get_permalink( get_option('woocommerce_myaccount_page_id') )); ?>">
<span><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-user"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></span>
</a>
</div>
</div>
</li>
<?php endif;
}
add_action('setto_header_my_account','setto_header_my_account');
}
// Header Cart
if ( ! function_exists( 'setto_header_cart' ) ) {
function setto_header_cart() {
$hs_hdr_cart = get_theme_mod('hs_hdr_cart','1');
if($hs_hdr_cart=='1' && class_exists( 'WooCommerce' )):
?>
<li class="side-wrap cart-wrap">
<div class="shopping-widget">
<div class="shopping-cart">
<a class="cart-count" href="<?php echo esc_url(wc_get_cart_url()); ?>">
<span class="cart-icon-wrap">
<span class="cart-icon">
<svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1">
<path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path>
<line x1="3" y1="6" x2="21" y2="6"></line>
<path d="M16 10a4 4 0 0 1-8 0"></path>
</svg>
</span>
<?php
$count = WC()->cart->cart_contents_count;
if ( $count > 0 ) { ?>
<span id="cart-total" class="bigcounter counter"><?php echo esc_html( $count ); ?></span>
<?php } else { ?>
<span id="cart-total" class="bigcounter counter"><?php echo esc_html_e('0','setto'); ?></span>
<?php } ?>
</span>
</a>
<div class="mini-cart">
<?php get_template_part('woocommerce/cart/mini','cart'); ?>
</div>
</div>
</div>
</li>
<?php endif;
}
add_action('setto_header_cart','setto_header_cart');
}
/**
* Breadcrumb Content
*/
function setto_breadcrumbs() {
$showOnHome = esc_html__('1','setto'); // 1 - Show breadcrumbs on the homepage, 0 - don't show
$delimiter = ''; // Delimiter between breadcrumb
$home = esc_html__('Home','setto'); // Text for the 'Home' link
$showCurrent= esc_html__('1','setto'); // Current post/page title in breadcrumb in use 1, Use 0 for don't show
$before = '<li class="active">'; // Tag before the current Breadcrumb
$after = '</li>'; // Tag after the current Breadcrumb
$breadcrumb_seprator = get_theme_mod('breadcrumb_seprator','>');
global $post;
$homeLink = home_url();
if (is_home() || is_front_page()) {
if ($showOnHome == 1) echo '<li><a href="' . esc_url($homeLink) . '">' . esc_html(single_post_title()) . '</a></li>';
} else {
echo '<li><a href="' . esc_url($homeLink) . '">' . esc_html($home) . '</a> ' . ' ' . wp_kses_post($breadcrumb_seprator) . ' ';
if ( is_category() )
{
$thisCat = get_category(get_query_var('cat'), false);
if ($thisCat->parent != 0) echo get_category_parents($thisCat->parent, TRUE, ' ' . ' ');
echo $before . esc_html__('Archive by category','setto').' "' . esc_html(single_cat_title('', false)) . '"' .$after;
}
elseif ( is_search() )
{
echo $before . esc_html__('Search results for ','setto').' "' . esc_html(get_search_query()) . '"' . $after;
}
elseif ( is_day() )
{
echo '<a href="' . esc_url(get_year_link(get_the_time('Y'))) . '">' . esc_html(get_the_time('Y')) . '</a> ' . ' ' . wp_kses_post($breadcrumb_seprator) . ' ';
echo '<a href="' . esc_url(get_month_link(get_the_time('Y'),get_the_time('m'))) . '">' . esc_html(get_the_time('F')) . '</a> '. ' ' . wp_kses_post($breadcrumb_seprator) . ' ';
echo $before . esc_html(get_the_time('d')) . $after;
}
elseif ( is_month() )
{
echo '<a href="' . esc_url(get_year_link(get_the_time('Y'))) . '">' . esc_html(get_the_time('Y')) . '</a> ' . esc_attr($delimiter) . ' ' . wp_kses_post($breadcrumb_seprator) . ' ';
echo $before . esc_html(get_the_time('F')) . $after;
}
elseif ( is_year() )
{
echo $before . esc_html(get_the_time('Y')) . $after;
}
elseif ( is_single() && !is_attachment() )
{
if ( get_post_type() != 'post' )
{
if ( class_exists( 'WooCommerce' ) ) {
if ($showCurrent == 1) echo ' ' . esc_attr($delimiter) . '  ' . $before . wp_kses_post(get_the_title()) . $after;
}else{
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo '<a href="' . esc_url($homeLink) . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a>';
if ($showCurrent == 1) echo ' ' . esc_attr($delimiter) . ' ' . wp_kses_post($breadcrumb_seprator) . ' ' . $before . wp_kses_post(get_the_title()) . $after;
}
}
else
{
$cat = get_the_category(); $cat = $cat[0];
$cats = get_category_parents($cat, TRUE, ' ' . esc_attr($delimiter) . ' ' . wp_kses_post($breadcrumb_seprator) . ' ');
if ($showCurrent == 0) $cats = preg_replace("#^(.+)\s$delimiter\s$#", "$1", $cats);
echo $cats;
if ($showCurrent == 1) echo $before . esc_html(get_the_title()) . $after;
}
}
elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
if ( class_exists( 'WooCommerce' ) ) {
if ( is_shop() ) {
$thisshop = woocommerce_page_title();
}
}
else {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;
}
}
elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() )
{
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;
}
elseif ( is_attachment() )
{
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID);
if(!empty($cat)){
$cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . esc_attr($delimiter) . ' ' . wp_kses_post($breadcrumb_seprator) . ' ');
}
echo '<a href="' . esc_url(get_permalink($parent)) . '">' . $parent->post_title . '</a>';
if ($showCurrent == 1) echo ' ' . esc_attr($delimiter) . ' ' . $before . esc_html(get_the_title()) . $after;
}
elseif ( is_page() && !$post->post_parent )
{
if ($showCurrent == 1) echo $before . esc_html(get_the_title()) . $after;
}
elseif ( is_page() && $post->post_parent )
{
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id)
{
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="' . esc_url(get_permalink($page->ID)) . '">' . esc_html(get_the_title($page->ID)) . '</a>' . ' ' . wp_kses_post($breadcrumb_seprator) . ' ';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
for ($i = 0; $i < count($breadcrumbs); $i++)
{
echo $breadcrumbs[$i];
if ($i != count($breadcrumbs)-1) echo ' ' . esc_attr($delimiter) . ' ' . wp_kses_post($breadcrumb_seprator) . ' ';
}
if ($showCurrent == 1) echo ' ' . esc_attr($delimiter) . ' ' . $before . esc_html(get_the_title()) . $after;
}
elseif ( is_tag() )
{
echo $before . esc_html__('Posts tagged ','setto').' "' . esc_html(single_tag_title('', false)) . '"' . $after;
}
elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . esc_html__('Articles posted by ','setto').'' . $userdata->display_name . $after;
}
elseif ( is_404() ) {
echo $before . esc_html__('Error 404 ','setto'). $after;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo '';
echo ' ( ' . esc_html__('Page','setto') . '' . esc_html(get_query_var('paged')). ' )';
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo '';
}
echo '</li>';
}
}
/*******************************************************************************
* Get Started Notice
*******************************************************************************/
add_action( 'wp_ajax_setto_dismissed_notice_handler', 'setto_ajax_notice_handler' );
/**
* AJAX handler to store the state of dismissible notices.
*/
function setto_ajax_notice_handler() {
if ( isset( $_POST['type'] ) ) {
// Pick up the notice "type" - passed via jQuery (the "data-notice" attribute on the notice)
$type = sanitize_text_field( wp_unslash( $_POST['type'] ) );
// Store it in the options table
update_option( 'dismissed-' . $type, TRUE );
}
}
function setto_deprecated_hook_admin_notice() {
// Check if it's been dismissed...
if ( ! get_option('dismissed-get_started', FALSE ) ) {
// Added the class "notice-get-started-class" so jQuery pick it up and pass via AJAX,
// and added "data-notice" attribute in order to track multiple / different notices
// multiple dismissible notice states ?>
<div class="updated notice notice-get-started-class is-dismissible" data-notice="get_started">
<div class="setto-getting-started-notice clearfix">
<div class="setto-theme-screenshot">
<img src="<?php echo esc_url( get_stylesheet_directory_uri() ); ?>/screenshot.png" class="screenshot" alt="<?php esc_attr_e( 'Theme Screenshot', 'setto' ); ?>" />
</div><!-- /.setto-theme-screenshot -->
<div class="setto-theme-notice-content">
<h2 class="setto-notice-h2">
<?php
printf(
/* translators: 1: welcome page link starting html tag, 2: welcome page link ending html tag. */
esc_html__( 'Welcome! Thank you for choosing %1$s!', 'setto' ), '<strong>'. wp_get_theme()->get('Name'). '</strong>' );
?>
</h2>
<p class="plugin-install-notice"><?php echo sprintf(__('Install and activate <strong>Burger Companion</strong> plugin for taking full advantage of all the features this theme has to offer.', 'setto')) ?></p>
<a class="setto-btn-get-started button button-primary button-hero setto-button-padding" href="#" data-name="" data-slug=""><?php esc_html_e( 'Get started with Setto', 'setto' ) ?></a><span class="setto-push-down">
<?php
/* translators: %1$s: Anchor link start %2$s: Anchor link end */
printf(
'or %1$sCustomize theme%2$s</a></span>',
'<a target="_blank" href="' . esc_url( admin_url( 'customize.php' ) ) . '">',
'</a>'
);
?>
</div><!-- /.setto-theme-notice-content -->
</div>
</div>
<?php }
}
add_action( 'admin_notices', 'setto_deprecated_hook_admin_notice' );
/*******************************************************************************
* Plugin Installer
*******************************************************************************/
add_action( 'wp_ajax_install_act_plugin', 'setto_admin_install_plugin' );
function setto_admin_install_plugin() {
/**
* Install Plugin.
*/
include_once ABSPATH . '/wp-admin/includes/file.php';
include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
if ( ! file_exists( WP_PLUGIN_DIR . '/burger-companion' ) ) {
$api = plugins_api( 'plugin_information', array(
'slug' => sanitize_key( wp_unslash( 'burger-companion' ) ),
'fields' => array(
'sections' => false,
),
) );
$skin = new WP_Ajax_Upgrader_Skin();
$upgrader = new Plugin_Upgrader( $skin );
$result = $upgrader->install( $api->download_link );
}
// Activate plugin.
if ( current_user_can( 'activate_plugin' ) ) {
$result = activate_plugin( 'burger-companion/burger-companion.php' );
}
}