/** * * Include the style and scripts file and create the array of style and script to enqueue/register * Add the action to register/enqueue script and style on wp_enqueue_scripts * * @return YIT_Asset * @since 2.0.0 * @access public * @author Andrea Grillo <*****@*****.**> */ public function __construct() { $is_old_ie = yit_is_old_ie(); $this->_assets = (include YIT_THEME_PATH . '/' . $this->_assets_file_name); if (!$is_old_ie) { add_action('wp_enqueue_scripts', array($this, 'register'), 99); add_action('wp_footer', array($this, 'register'), 1); } else { global $wpdb; $index = $wpdb->blogid != 0 ? '-' . $wpdb->blogid : ''; $this->_cache_old_ie_file_name = str_replace('.css', $index . '.css', $this->_cache_old_ie_file_name); add_action('wp_enqueue_scripts', array($this, 'register_ie'), 99); add_action('wp_footer', array($this, 'register_ie'), 1); } }
/** * Register/Enqueue the blog stylesheet * * @return void * @since 2.0.0 * @author Andrea Grillo <*****@*****.**> */ function yit_add_blog_stylesheet() { $blog = array('src' => YIT_THEME_ASSETS_URL . '/css/blog.css', 'enqueue' => true, 'registered' => false); $page_slider = array('src' => YIT_THEME_ASSETS_URL . '/css/page-slider.css', 'enqueue' => true, 'registered' => false); if (is_page_template('blog.php') || is_search() || is_singular('post') || is_home() || is_archive() || is_category() || is_tag() || yit_is_old_ie()) { YIT_Asset()->set('style', 'blog-stylesheet', $blog, 'before', 'comment-stylesheet'); if (is_singular('post') || yit_is_old_ie()) { YIT_Asset()->set('style', 'page-slider', $page_slider, 'after', 'blog-stylesheet'); } } }
/* * This file belongs to the YIT Framework. * * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://www.gnu.org/licenses/gpl-3.0.txt */ /* === AJAX ACTIONS === */ add_action('wp_ajax_portfolio_next_post', 'yit_portfolio_next_page'); add_action('wp_ajax_nopriv_portfolio_next_post', 'yit_portfolio_next_page'); if (isset($portfolio)) { $layout = isset($portfolio) ? $portfolio->get('config-single_layout') : 'big_image'; /* === ENQUEUE SCRIPTS === */ if (!defined('DOING_AJAX') || !DOING_AJAX || $layout == 'small_image') { if (!yit_is_old_ie()) { $this->enqueue_style('portfolio-single', 'css/style.css'); } else { wp_enqueue_style('portfolio-single', YIT_THEME_TEMPLATES_URL . '/portfolios/single/css/style.css'); } } /* === HOOKS === */ if ($layout == 'big_image') { add_action('wp_head', 'yit_add_portfolio_stylesheet', 0); add_action('yit_primary', 'yit_portfolio_title', 7); add_action('yit_after_primary_starts', 'yit_portfolio_current_page_start', 5); add_action('yit_after_primary_starts', 'yit_portfolio_image', 10); add_action('yit_before_primary_ends', 'yit_portfolio_current_page_end', 10); add_action('yit_before_primary_ends', 'yit_portfolio_next_page', 15); add_filter('body_class', 'yit_portfolio_add_body_class'); add_filter('yit_footer_type', 'yit_hide_footer');
/** * widget function. * * @see WP_Widget * @access public * @param array $args * @param array $instance * @return void */ function widget($args, $instance) { global $woocommerce; ob_start(); extract($args); //$before_widget = $after_title = ''; //$before_title = $after_widget = ''; $title = apply_filters('widget_title', empty($instance['title']) ? __('Featured Products', 'yit') : $instance['title'], $instance, $this->id_base); if (!($number = (int) $instance['number'])) { $number = 10; } else { if ($number < 1) { $number = 1; } else { if ($number > 15) { $number = 15; } } } $query_args = array('posts_per_page' => $number, 'orderby' => 'rand', 'no_found_rows' => 1, 'post_status' => 'publish', 'post_type' => 'product'); $query_args['meta_query'] = array(); $query_args['meta_query'][] = array('key' => '_featured', 'value' => 'yes'); $query_args['meta_query'][] = $woocommerce->query->stock_status_meta_query(); $query_args['meta_query'][] = $woocommerce->query->visibility_meta_query(); $r = new WP_Query($query_args); if ($r->have_posts()) { ?> <?php echo $before_widget; ?> <div class="clearfix widget featured-products"> <?php if ($title) { echo '<h3>' . $title . '</h3>'; } ?> <ul class="clearfix products-slider featured-products-slider slides"> <?php while ($r->have_posts()) { $r->the_post(); global $product; ?> <li class="clearfix"> <?php if (has_post_thumbnail()) { ?> <?php if ($instance['link_thumbnail']) { ?> <a href="<?php echo esc_url(get_permalink($r->post->ID)); ?> " class="product_img" title="<?php echo esc_attr($r->post->post_title ? $r->post->post_title : $r->post->ID); ?> "> <?php the_post_thumbnail('shop_catalog'); ?> </a> <?php } else { ?> <?php the_post_thumbnail('shop_catalog'); ?> <?php } ?> <?php } ?> <div class="info-featured-product"> <a href="<?php echo esc_url(get_permalink($r->post->ID)); ?> " class="product_name" title="<?php echo esc_attr($r->post->post_title ? $r->post->post_title : $r->post->ID); ?> "> <?php if ($r->post->post_title) { echo get_the_title($r->post->ID); } else { echo $r->post->ID; } ?> </a> <div class="price"><?php echo $product->get_price_html(); ?> </div> </div> </li> <?php } ?> </ul> </div> <?php echo $after_widget; ?> <?php } $content = ob_get_clean(); $slider_id = $this->id; $slider_fx = isset($instance['slider_fx']) && !yit_is_old_ie() ? $instance['slider_fx'] : 'fade'; $slider_speed_fx = isset($instance['slider_speed_fx']) ? $instance['slider_speed_fx'] : 300; $slider_timeout_fx = isset($instance['slider_timeout_fx']) ? $instance['slider_timeout_fx'] : 8000; $script = '<script type="text/javascript"> jQuery(document).ready(function($){ "use strict"; $("#' . $slider_id . ' .widget.featured-products").flexslider({ animation: "' . $slider_fx . '", slideshowSpeed: ' . $slider_timeout_fx . ', animationSpeed: ' . $slider_speed_fx . ', selectors: ".slides > li", directionNav: true, slideshow: true, prevText: "", nextText: "", pauseOnAction: false, controlNav: false, touch: true, }); }); </script>'; if (isset($args['widget_id'])) { $cache[$args['widget_id']] = $content; } echo $content, $script; wp_reset_postdata(); }
/** * Register/Enqueue the blog stylesheet * * @return void * @since 2.0.0 * @author Andrea Grillo <*****@*****.**> */ function yit_add_blog_stylesheet() { $blog = array('src' => YIT_THEME_ASSETS_URL . '/css/blog.css', 'enqueue' => true, 'registered' => false); $masterslider_style = array('src' => YIT_THEME_ASSETS_URL . '/lib/masterslider/style/masterslider.css', 'enqueue' => true, 'registered' => false); $masterslider_script = array('src' => YIT_THEME_ASSETS_URL . '/lib/masterslider/masterslider.min.js', 'enqueue' => true, 'deps' => array('jquery')); if (is_page_template('blog.php') || is_search() || is_singular('post') || is_home() || is_archive() || is_category() || is_tag() || yit_is_old_ie()) { YIT_Asset()->set('style', 'blog-stylesheet', $blog, 'before', 'comment-stylesheet'); /* === Add Master Slider Style and Script on Single Post with gallery post format === */ if (is_singular('post') && get_post_format() == 'gallery' || yit_is_old_ie()) { YIT_Asset()->set('style', 'masterslider-style', $masterslider_style, 'after', 'blog-stylesheet'); YIT_Asset()->set('script', 'masterslider-script', $masterslider_script); } } }
function yit_woocommerce_hooks() { if ( ! defined( 'YIT_DEBUG' ) || ! YIT_DEBUG ) { $message = get_option( 'woocommerce_admin_notices', array() ); $message = array_diff( $message, array( 'template_files' ) ); update_option( 'woocommerce_admin_notices', $message ); } add_action( 'yit_activated', 'yit_woocommerce_default_image_dimensions' ); add_filter( 'woocommerce_enqueue_styles', 'yit_enqueue_wc_styles' ); add_filter( 'woocommerce_template_path', 'yit_set_wc_template_path' ); if( yit_is_old_ie() ) { add_action( 'wp_head', 'yit_add_wc_styles_to_assets', 0 ); } add_action( 'wp_head', 'yit_size_images_style' ); add_action( 'woocommerce_before_main_content', 'yit_shop_page_meta' ); // Ajax search loading add_filter( 'yith_wcas_ajax_search_icon', 'yit_loading_search_icon' , 15 ); if ( yit_get_option( 'shop-price-format' ) != 'yes' ) { // Use WC 2.0 variable price format, now include sale price strikeout add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 ); add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 ); } // Add to cart button text add_filter( 'add_to_cart_text', 'yit_add_to_cart_text' ); // View details button text add_filter( 'yit_view_details_product_text', 'yit_view_details_text' ); // Custom Pagination add_filter( 'woocommerce_pagination_args', 'yit_pagination_shop_args' ); // Add Custom metabox in My Account and checkout page add_action( 'admin_init', 'yit_register_shop_metabox' ); /*============= SHOP PAGE ===============*/ remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 ); remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 ); remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 ); remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); add_action( 'woocommerce_before_shop_loop_item_title', 'yit_out_stock_icon', 15 ); add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_add_to_cart', 20 ); add_filter( 'loop_shop_per_page', 'yit_products_per_page' ); add_action( 'shop-page-meta', 'yit_wc_catalog_ordering', 15 ); if ( yit_get_option( 'shop-view-type' ) != 'masonry' && yit_get_option( 'shop-grid-list-option' ) != 'no' ) { add_action( 'shop-page-meta', 'yit_wc_list_or_grid', 5 ); } if( yit_get_option( 'shop-products-per-page-option' ) != 'no' ) { add_action( 'shop-page-meta', 'yit_wc_num_of_products', 10 ); } if( yit_get_option( 'shop-product-rating' ) == 'yes' ) { add_action( 'woocommerce_after_shop_loop_item_title', 'yit_shop_rating', 15 ); } add_action( 'woocommerce_after_shop_loop_item_title', 'yit_shop_product_description', 25 ); if( shortcode_exists( 'yith_wcwl_add_to_wishlist' ) && yit_get_option( 'shop-view-wishlist-button' ) == 'yes' && get_option( 'yith_wcwl_enabled' ) == 'yes' ) { add_action( 'woocommerce_after_shop_loop_item', 'yit_shop_wishlist_action', 20 ); } add_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_sale_flash' ); if ( yit_get_option('shop-enable') == 'no' || yit_get_option( 'shop-product-price' ) == 'no' ) { remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price' ); } /*======== SINGLE PRODUCT PAGE =========*/ remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); add_action( 'yit_single_page_breadcrumb', 'woocommerce_breadcrumb', 20, 0 ); remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 ); if( yit_get_option('shop-single-product-nav') == 'yes' ) { add_action( 'woocommerce_before_single_product', 'yit_single_page_nav_links' ); } add_action( 'woocommerce_single_product_summary', 'yit_product_modal_window', 25 ); if ( yit_get_option('shop-single-product-name') == 'no' ) remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 ); if ( yit_get_option( 'shop-single-metas' ) == 'no' ) remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 ); if ( yit_get_option('shop-enable') == 'no' || yit_get_option( 'shop-single-product-price' ) == 'no' ) remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 ); add_action( 'woocommerce_single_product_summary', 'yit_woocommerce_add_inquiry_form', 27 ); /* related products */ if ( yit_get_option( 'shop-show-related' ) == 'no' ) remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 ); if ( yit_get_option( 'shop-show-custom-related' ) == 'yes' ) add_filter( 'woocommerce_related_products_args', 'yit_related_posts_per_page' ); /* tabs */ if ( yit_get_option( 'shop-remove-reviews' ) == 'yes' ){ add_filter( 'woocommerce_product_tabs', 'yit_remove_reviews_tab', 98 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 ); } add_filter( 'woocommerce_product_tabs', 'yit_woocommerce_add_tabs' ); add_action('woocommerce_after_single_product_summary', 'yit_add_extra_content', 12); if( shortcode_exists( 'yith_wcwl_add_to_wishlist' ) && get_option( 'yith_wcwl_enabled' ) == 'yes' && yit_get_option('shop-single-show-wishlist') == 'yes' ) { add_action( 'woocommerce_single_product_summary', 'yit_shop_wishlist_action', 45 ); } /*============== CART ============*/ remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' ); add_action( 'woocommerce_after_cart', 'woocommerce_cross_sell_display' ); /*============= CHECKOUT =========== */ if( yit_get_option( 'shop-checkout-form-coupon' ) == 'no' ) { remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form' ); } /*============== ADMIN ==============*/ add_action( 'woocommerce_product_options_general_product_data', 'yit_woocommerce_admin_product_ribbon_onsale' ); add_action( 'woocommerce_process_product_meta', 'yit_woocommerce_process_product_meta', 2, 2 ); /*===== MANAGE VAT AND SSN FIELDS =====*/ if ( yit_get_option( 'shop-enable-vat' ) == 'yes' && yit_get_option( 'shop-enable-ssn' ) == 'yes' ) { add_filter( 'woocommerce_billing_fields', 'yit_woocommerce_add_billing_ssn_vat' ); add_filter( 'woocommerce_shipping_fields', 'yit_woocommerce_add_shipping_ssn_vat' ); add_filter( 'woocommerce_admin_billing_fields', 'woocommerce_add_billing_shipping_fields_admin' ); add_filter( 'woocommerce_admin_shipping_fields', 'woocommerce_add_billing_shipping_fields_admin' ); } elseif ( yit_get_option( 'shop-enable-vat' ) == 'yes' ) { add_filter( 'woocommerce_billing_fields', 'yit_woocommerce_add_billing_vat' ); add_filter( 'woocommerce_shipping_fields', 'yit_woocommerce_add_shipping_vat' ); add_filter( 'woocommerce_admin_billing_fields', 'woocommerce_add_billing_shipping_vat_admin' ); add_filter( 'woocommerce_admin_shipping_fields', 'woocommerce_add_billing_shipping_vat_admin' ); add_filter( 'woocommerce_load_order_data', 'woocommerce_add_var_load_order_data_vat' ); } elseif ( yit_get_option( 'shop-enable-ssn' ) == 'yes') { add_filter( 'woocommerce_billing_fields', 'yit_woocommerce_add_billing_ssn' ); add_filter( 'woocommerce_shipping_fields', 'yit_woocommerce_add_shipping_ssn' ); add_filter( 'woocommerce_admin_billing_fields', 'woocommerce_add_billing_shipping_ssn_fields_admin' ); add_filter( 'woocommerce_admin_shipping_fields', 'woocommerce_add_billing_shipping_ssn_fields_admin' ); add_filter( 'woocommerce_load_order_data', 'woocommerce_add_var_load_order_data_ssn' ); } /*================ QUICK VIEW ==================*/ add_action( 'yit_load_quick_view', 'yit_woocommerce_quick_view' ); if ( is_quick_view() ) add_filter( 'woocommerce_single_product_image_html', 'yit_product_image_slider_quick_view' ); /* review */ add_filter( 'comments_open', 'yit_woocommerce_show_review', 11, 2); /*======== MY ORDERS=========*/ add_filter( 'sanitize_html_class', 'yit_wc_sanitize_html' , 10 , 2 ); /*======== Support to YITH Plugins =========*/ add_action( 'init', 'yit_plugins_support' ); }
/** * * Register and Enqueue Script and Style for old version of IE * * @return void * * @since 2.0.0 * @access public * @author Andrea Grillo <*****@*****.**> */ public function register_assets() { global $wp_current_filter, $wpdb; $is_old_ie = yit_is_old_ie(); if (!$is_old_ie) { $this->register(); } else { $index = $wpdb->blogid != 0 ? '-' . $wpdb->blogid : ''; $this->_cache_old_ie_file_name = str_replace('.css', $index . '.css', $this->_cache_old_ie_file_name); $wp_enqueue_style = in_array('wp_enqueue_scripts', $wp_current_filter) ? true : false; if ($wp_enqueue_style) { $yit_ie_cache_transient = get_site_transient('yit_ie_old_cache_file'); $yit_ie_responsive_transient = get_site_transient('yit_ie_responsive'); $enable_responsive = yit_get_option('general-activate-responsive'); if (false === $yit_ie_cache_transient) { set_site_transient('yit_ie_old_cache_file', time() + 48 * HOUR_IN_SECONDS); } if (false === $yit_ie_responsive_transient) { set_site_transient('yit_ie_responsive', yit_get_option('general-activate-responsive')); } if ($yit_ie_cache_transient < time() || !file_exists($this->getModel('cache')->locate_file($this->_cache_old_ie_file_name)) || $yit_ie_responsive_transient != $enable_responsive) { $enable_responsive == 'yes' ? $this->remove('style', 'non-responsive') : $this->remove('style', 'responsive'); $file = $this->getModel('css')->create_minified_css($this->_assets, $this->_cache_old_ie_file_name); set_site_transient('yit_ie_old_cache_file', time() + 48 * HOUR_IN_SECONDS); set_site_transient('yit_ie_responsive', $enable_responsive); } foreach ($this->_assets['style'] as $id => $style) { if (isset($style['enqueue']) && $style['enqueue']) { $this->remove('style', $id); wp_deregister_style($id); } } $ie_cache_file = array('src' => $this->getModel('cache')->locate_url($this->_cache_old_ie_file_name), 'enqueue' => true); $asset_id = str_replace('.css', '', $this->_cache_old_ie_file_name); $where = 'first'; $who = ''; $this->set('style', $asset_id, $ie_cache_file, $where, $who); } $this->register(); } }
/** * Remove Woocommerce Styles add custom Yit Woocommerce style * * @param $styles * * @return array list of style files * @since 2.0.0 */ function yit_enqueue_wc_styles($styles) { unset($styles['woocommerce-general'], $styles['woocommerce-layout'], $styles['woocommerce-smallscreen']); if (!yit_is_old_ie()) { $styles['yit-woocommerce'] = array('src' => get_stylesheet_directory_uri() . '/woocommerce/style.css', 'deps' => '', 'version' => '1.0', 'media' => 'all'); } return $styles; }