AlkantarClanX12
Current Path : /home/thanudqk/128shen.com/wp-content/themes/thegem/inc/ |
Current File : //home/thanudqk/128shen.com/wp-content/themes/thegem/inc/woocommerce.php |
<?php function thegem_woocommerce_scripts() { global $thegem_product_data; if(thegem_is_plugin_active('woocommerce/woocommerce.php')) { wp_enqueue_style('thegem-woocommerce-minicart', THEGEM_THEME_URI . '/css/thegem-woocommerce-minicart.css', array(), THEGEM_THEME_VERSION); wp_register_style('thegem-woocommerce', THEGEM_THEME_URI . '/css/thegem-woocommerce.css', array(), THEGEM_THEME_VERSION); wp_register_style('thegem-woocommerce1', THEGEM_THEME_URI . '/css/thegem-woocommerce1.css', array(), THEGEM_THEME_VERSION); wp_register_style('thegem-woocommerce-temp', THEGEM_THEME_URI . '/css/thegem-woocommerce-temp.css', array(), THEGEM_THEME_VERSION); wp_register_style('thegem-woocommerce-custom', THEGEM_THEME_URI . '/css/thegem-woocommerce-custom.css', array(), THEGEM_THEME_VERSION); if (thegem_is_woocommerce_page() || thegem_is_wishlist_page() || (function_exists('thegem_get_template_type') && (thegem_get_template_type(get_the_ID()) === 'single-product' || thegem_get_template_type(get_the_ID()) === 'cart' || thegem_get_template_type(get_the_ID()) === 'checkout'))) { thegem_enqueue_woocommerce_styles(); } if ( thegem_is_wishlist_page()) { wp_enqueue_style('yith-wcwl-user-main'); } wp_register_script('thegem-checkout', THEGEM_THEME_URI . '/js/thegem-checkout.js', array('jquery'), THEGEM_THEME_VERSION); wp_register_script('thegem-woocommerce', THEGEM_THEME_URI . '/js/thegem-woocommerce.js', array('jquery'), THEGEM_THEME_VERSION, true); $productPageScripts = array( is_product() && $thegem_product_data['product_page_layout_sticky'] ? 'thegem-sticky' : 'jquery', ); wp_register_script('thegem-product-page', THEGEM_THEME_URI . '/js/thegem-product-page.js', $productPageScripts, THEGEM_THEME_VERSION, true); wp_register_style('thegem-product-page', THEGEM_THEME_URI . '/css/thegem-product-page.css', array('thegem-woocommerce'), THEGEM_THEME_VERSION); if (is_product() && $thegem_product_data['product_page_layout'] != 'legacy' && $thegem_product_data['product_layout_source'] != 'builder'){ wp_enqueue_style('thegem-product-page'); wp_enqueue_script('thegem-product-page'); } wp_register_script('thegem-custom-product', THEGEM_THEME_URI . '/js/thegem-custom-product.js', array('jquery'), THEGEM_THEME_VERSION, true); wp_register_style('thegem-custom-product', THEGEM_THEME_URI . '/css/thegem-custom-product.css', array(), THEGEM_THEME_VERSION); if ((is_product() && $thegem_product_data['product_layout_source'] == 'builder') || (function_exists('thegem_get_template_type') && thegem_get_template_type(get_the_ID()) === 'single-product')){ wp_enqueue_style('thegem-custom-product'); wp_enqueue_script('thegem-custom-product'); } wp_register_script('thegem-quick-view', THEGEM_THEME_URI . '/js/thegem-quick-view.js', array('jquery'), THEGEM_THEME_VERSION, true); wp_register_style('thegem-quick-view', THEGEM_THEME_URI . '/css/thegem-quick-view.css', array(), THEGEM_THEME_VERSION); wp_register_script('thegem-product-gallery', THEGEM_THEME_URI . '/js/thegem-product-gallery.js', array('jquery', 'owl', 'owl-zoom'), THEGEM_THEME_VERSION, true); wp_register_script('thegem-product-gallery-grid', THEGEM_THEME_URI . '/js/thegem-product-gallery-grid.js', array('jquery', 'thegem-sticky', 'owl-zoom'), THEGEM_THEME_VERSION, true); wp_register_style('thegem-product-gallery', THEGEM_THEME_URI . '/css/thegem-product-gallery.css', array('owl'), THEGEM_THEME_VERSION); if ( is_product() ) { wp_enqueue_style('thegem-product-gallery'); } $galleryScripts = array( 'jquery', 'thegem-woocommerce', thegem_get_option('product_gallery') != 'legacy' ? 'thegem-product-gallery' : 'thegem-gallery' ); wp_register_script('thegem-product-quick-view', THEGEM_THEME_URI . '/js/thegem-product-quick-view.js', $galleryScripts, THEGEM_THEME_VERSION, true); wp_localize_script('thegem-woocommerce', 'thegem_woo_data', array( 'ajax_url' => esc_url(admin_url('admin-ajax.php')), 'ajax_nonce' => wp_create_nonce('product_quick_view_ajax_security'), )); if(is_woocommerce()) { wp_enqueue_script('thegem-woocommerce'); if (thegem_get_option('products_pagination', 'normal') == 'scroll') { wp_enqueue_script('thegem-scroll-monitor'); } if (in_array(thegem_get_option('products_pagination', 'normal'), array('more', 'scroll'))) { wp_enqueue_style('thegem-animations'); wp_enqueue_script('thegem-items-animations'); } } wp_register_style('thegem-portfolio-products-extended', THEGEM_THEME_URI . '/css/thegem-portfolio-products-extended.css', array('thegem-portfolio', 'thegem-woocommerce','thegem-woocommerce-temp'), THEGEM_THEME_VERSION); if (( is_shop() || is_product_taxonomy() || is_product() || is_cart() ) && thegem_get_option('product_archive_type') == 'grid') { wp_enqueue_style('thegem-portfolio-products-extended'); } else if (is_singular()) { if ( has_shortcode( get_the_content(null, false, get_the_id()), 'gem_product_grid_extended' ) ) { wp_enqueue_style('thegem-portfolio-products-extended'); } } if(function_exists('dokan_is_store_page') && dokan_is_store_page() && thegem_get_option('product_archive_type') !== 'legacy') { wp_enqueue_style('thegem-portfolio-products-extended'); } if(function_exists('dokan_is_store_page') && dokan_is_store_page() && thegem_get_option('product_archive_type') !== 'legacy') { wp_enqueue_style('thegem-portfolio-products-extended'); } if(function_exists('wcfm_is_store_page') && wcfm_is_store_page() && thegem_get_option('product_archive_type') !== 'legacy') { wp_enqueue_style('thegem-portfolio-products-extended'); } wp_register_style('thegem-products-compact-grid', THEGEM_THEME_URI . '/css/thegem-products-compact-grid.css', array(), THEGEM_THEME_VERSION); wp_register_script('thegem-isotope-metro', THEGEM_THEME_URI . '/js/isotope_layout_metro.js', array('isotope-js'), THEGEM_THEME_VERSION, true); wp_register_script('thegem-isotope-masonry-custom', THEGEM_THEME_URI . '/js/isotope-masonry-custom.js', array('isotope-js'), THEGEM_THEME_VERSION, true); wp_register_script('thegem-portfolio-grid-extended', THEGEM_THEME_URI . '/js/thegem-portfolio-grid-extended.js', array('jquery'), THEGEM_THEME_VERSION, true); wp_register_style('thegem-portfolio-products-carousel', THEGEM_THEME_URI . '/css/thegem-product-carousel.css', array('thegem-portfolio-products-extended', 'owl'), THEGEM_THEME_VERSION); wp_register_script('thegem-portfolio-products-carousel', THEGEM_THEME_URI . '/js/thegem-product-carousel.js', array('thegem-portfolio-grid-extended', 'owl'), THEGEM_THEME_VERSION, true); wp_register_style('thegem-products-categories-styles', THEGEM_THEME_URI . '/css/thegem-products-categories.css', array('thegem-woocommerce'), THEGEM_THEME_VERSION); wp_register_script('thegem-products-categories-scripts', THEGEM_THEME_URI . '/js/thegem-products-categories.js', array('jquery'), THEGEM_THEME_VERSION, true); if (is_singular()) { if ( has_shortcode( get_the_content(null, false, get_the_id()), 'gem_product_grid_categories' ) ) { wp_enqueue_style('thegem-products-categories-styles'); } } if(is_cart() && thegem_cart_template() && has_shortcode(get_the_content(null, false, thegem_cart_template()), 'gem_infotext')) { wp_enqueue_style('thegem-infotext'); } if(is_checkout() && thegem_checkout_template() && has_shortcode(get_the_content(null, false, thegem_checkout_template()), 'gem_infotext')) { wp_enqueue_style('thegem-infotext'); } if($template_id = thegem_archive_product_template()) { if (has_shortcode(get_the_content(null, false, $template_id), 'gem_product_grid_categories')) { wp_enqueue_style('thegem-products-categories-styles'); } } } } add_action('wp_enqueue_scripts', 'thegem_woocommerce_scripts'); function thegem_enqueue_woocommerce_styles() { wp_enqueue_style('thegem-woocommerce'); wp_enqueue_style('thegem-woocommerce1'); wp_enqueue_style('thegem-woocommerce-temp'); wp_enqueue_style('thegem-woocommerce-custom'); } function thegem_is_woocommerce_page() { return function_exists('is_woocommerce') && (is_woocommerce() || is_cart() || is_checkout() || is_account_page() || is_product_category() || (is_page() && get_the_ID() == get_option( 'ywraq_page_id' ))); } function thegem_get_cart_count() { return empty(WC()->cart) ? 0 : (thegem_get_option('cart_label_count') ? WC()->cart->cart_contents_count : sizeof(WC()->cart->get_cart())); } function thegem_is_wishlist_page() { return (function_exists('yith_wcwl_is_wishlist') && yith_wcwl_is_wishlist()) || (function_exists('yith_wcwl_is_wishlist_page') && yith_wcwl_is_wishlist_page()); } if (defined( 'YITH_WCWL') && !function_exists( 'thegem_wishlist_ajax_update_count')) { function thegem_wishlist_ajax_update_count() { wp_send_json(array( 'count' => yith_wcwl_count_all_products() )); } add_action('wp_ajax_yith_wcwl_update_wishlist_count', 'thegem_wishlist_ajax_update_count'); add_action('wp_ajax_nopriv_yith_wcwl_update_wishlist_count', 'thegem_wishlist_ajax_update_count'); } function thegem_is_quick_view_default() { return (thegem_get_option('product_archive_quick_view') && thegem_get_option('product_page_layout') != 'legacy') || (thegem_get_option('product_quick_view') && thegem_get_option('product_page_layout') != 'legacy'); } add_action('add_meta_boxes', 'thegem_add_product_settings_boxes'); function thegem_add_product_settings_boxes() { add_meta_box('thegem_product_description_meta_box', esc_html__('Product Extra Description', 'thegem'), 'thegem_product_description_settings_box', 'product', 'normal', 'high'); add_meta_box('thegem_product_video_meta_box', esc_html__('Product Video', 'thegem'), 'thegem_product_video_settings_box', 'product', 'side', 'low'); } function thegem_product_description_settings_box($post) { wp_nonce_field('thegem_product_description_settings_box', 'thegem_product_description_settings_box_nonce'); $product_description = get_post_meta($post->ID, 'thegem_product_description', true); ?> <div class="inside"> <?php wp_editor(htmlspecialchars_decode($product_description), 'thegem_product_description', array( 'textarea_name' => 'thegem_product_description', 'quicktags' => array('buttons' => 'em,strong,link'), 'tinymce' => array( 'theme_advanced_buttons1' => 'bold,italic,strikethrough,separator,bullist,numlist,separator,blockquote,separator,justifyleft,justifycenter,justifyright,separator,link,unlink,separator,undo,redo,separator', 'theme_advanced_buttons2' => '', ), 'editor_css' => '<style>#wp-excerpt-editor-container .wp-editor-area{height:175px; width:100%;}</style>' )); ?> </div> <?php } function thegem_product_hover_settings_box($post) { wp_nonce_field('thegem_product_hover_settings_box', 'thegem_product_hover_settings_box_nonce'); $product_hover = get_post_meta($post->ID, 'thegem_product_disable_hover', true); ?> <div class="inside"> <input name="thegem_product_disable_hover" type="checkbox" id="thegem_product_disable_hover" value="1" <?php checked($product_hover, 1); ?> /> <label for="thegem_product_disable_hover"><?php esc_html_e('Disable hover with alternative product image', 'thegem'); ?></label> </div> <?php } function thegem_product_video_settings_box($post) { wp_nonce_field('thegem_product_video_settings_box', 'thegem_product_video_settings_box_nonce'); $product_video_data = get_post_meta($post->ID, 'thegem_product_video', true); $product_video = thegem_get_sanitize_product_video_data($product_video_data); $video_background_types = array('' => __('None', 'thegem'), 'youtube' => __('YouTube', 'thegem'), 'vimeo' => __('Vimeo', 'thegem'), 'self' => __('Self-Hosted Video', 'thegem')); ?> <div class="thegem-product-video"> <div class="product-video-box visible"> <label for="thegem_product_video_type"><?php esc_html_e('Video Type', 'thegem'); ?>:</label> <?php thegem_print_select_input($video_background_types, esc_attr($product_video['product_video_type']), 'thegem_product_video_type', 'thegem_product_video_type'); ?> </div> <div id="product-video-self" class="product-video-box"> <label for="thegem_product_video_link"><?php esc_html_e('Link to video', 'thegem'); ?>:</label> <input type="text" name="thegem_product_video_link" id="thegem_product_video_link" value="<?php echo esc_attr($product_video['product_video_link']); ?>" class="video-select"/> </div> <div id="product-video-id" class="product-video-box"> <label for="thegem_product_video_id"><?php esc_html_e('Video URL (for YouTube or Vimeo)', 'thegem'); ?>:</label> <input type="text" name="thegem_product_video_id" id="thegem_product_video_id" value="<?php echo esc_attr($product_video['product_video_id']); ?>"/> </div> <div id="product-video-thumb" class="product-video-box"> <label for="thegem_product_video_thumb"><?php esc_html_e('Video Poster', 'thegem'); ?>:</label> <input type="text" name="thegem_product_video_thumb" id="thegem_product_video_thumb" value="<?php echo esc_attr($product_video['product_video_thumb']); ?>" class="picture-select"/> </div> <div class="product-video-box visible"><a href="#" id="remove-product-video">Remove product video</a></div> </div> <?php } function thegem_save_product_data($post_id) { if(!isset($_POST['thegem_product_description_settings_box_nonce'])) { return; } if(!wp_verify_nonce($_POST['thegem_product_description_settings_box_nonce'], 'thegem_product_description_settings_box')) { return; } if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } if(isset($_POST['post_type']) && $_POST['post_type'] == 'product') { if(!current_user_can('edit_page', $post_id)) { return; } } else { if(!current_user_can('edit_post', $post_id)) { return; } } if(isset($_POST['thegem_product_description'])) { update_post_meta($post_id, 'thegem_product_description', $_POST['thegem_product_description']); } if(!wp_verify_nonce($_POST['thegem_product_video_settings_box_nonce'], 'thegem_product_video_settings_box')) { return; } $product_video = thegem_get_sanitize_product_video_data( array( 'product_video_type' => $_POST['thegem_product_video_type'], 'product_video_link' => $_POST['thegem_product_video_link'], 'product_video_id' => $_POST['thegem_product_video_id'], 'product_video_thumb' => $_POST['thegem_product_video_thumb'], )); update_post_meta($post_id, 'thegem_product_video', $product_video); //update_post_meta($post_id, 'thegem_product_disable_hover', isset($_POST['thegem_product_disable_hover'])); } add_action('save_post', 'thegem_save_product_data'); add_filter('woocommerce_enqueue_styles', '__return_false'); add_filter('woocommerce_redirect_single_search_result', '__return_false'); function thegem_sku_search_pre_get_posts($query) { if (is_admin() || !$query->is_main_query() || !$query->is_search() || !get_query_var('post_type') == 'product') { return; } add_filter('posts_join', 'thegem_sku_search_join'); add_filter('posts_where', 'thegem_sku_search_where'); add_filter('posts_groupby', 'thegem_sku_search_groupby'); } add_action('pre_get_posts', 'thegem_sku_search_pre_get_posts'); function thegem_sku_search_join( $join ){ global $wpdb; $join .= " LEFT JOIN $wpdb->postmeta gm ON (" . $wpdb->posts . ".ID = gm.post_id AND gm.meta_key='_sku')"; // change to your meta key if not woo return $join; } function thegem_sku_search_where( $where ){ global $wpdb; $where = preg_replace( "/\(\s*{$wpdb->posts}.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/", "({$wpdb->posts}.post_title LIKE $1) OR ({$wpdb->posts}.ID LIKE $1) OR (gm.meta_value LIKE $1)", $where ); return $where; } function thegem_sku_search_groupby( $groupby ){ global $wpdb; $mygroupby = "{$wpdb->posts}.ID"; if( preg_match( "/$mygroupby/", $groupby )) { return $groupby; } if( !strlen(trim($groupby))) { return $mygroupby; } return $groupby . ", " . $mygroupby; } function thegem_loop_shop_columns($count) { $item_data = array( 'sidebar_position' => '', ); $thegem_page_id = wc_get_page_id('shop'); $item_data = thegem_get_output_page_settings($thegem_page_id); if (!is_singular( 'product' ) && thegem_get_option('product_archive_type') == 'grid') { $item_data = thegem_get_output_page_settings($thegem_page_id, array(), 'product_category'); } if(is_tax()) { if (thegem_get_option('product_archive_type') !== 'grid') { $item_data = thegem_get_output_page_settings(0, array(), 'product_category'); } $thegem_term_id = get_queried_object()->term_id; if(get_term_meta($thegem_term_id , 'thegem_taxonomy_custom_page_options', true)) { $item_data = thegem_get_output_page_settings($thegem_term_id, array(), 'term'); } } $sidebar_position = thegem_check_array_value(array('', 'left', 'right'), $item_data['sidebar_position'], ''); if(is_active_sidebar('shop-sidebar') && $item_data['sidebar_show'] && $sidebar_position) { return 3; } return 4; } add_filter('loop_shop_columns', 'thegem_loop_shop_columns'); function thegem_woocommerce_single_product_gallery_labels($show_sale = true, $show_new = true, $show_out = true) { global $post, $product; $product_gallery_data = thegem_get_output_product_page_data( $product->get_id() ); $isSaleLabelShow = $product_gallery_data['product_gallery_labels'] == '1' && $show_sale; $isNewLabelShow = $product_gallery_data['product_gallery_labels'] == '1' && $show_new; $isOutStockLabelShow = $product_gallery_data['product_gallery_labels'] == '1' && $show_out; $params = array( 'product_show_new' => $isNewLabelShow ? $product_gallery_data['product_gallery_label_new'] : '', 'product_show_sale' => $isSaleLabelShow ? $product_gallery_data['product_gallery_label_sale'] : '', 'product_show_out' => $isOutStockLabelShow ? $product_gallery_data['product_gallery_label_out_stock'] : '', 'labels_design' => thegem_get_option('product_labels_style'), 'new_label_text' => thegem_get_option('product_label_new_text'), 'sale_label_type' => thegem_get_option('product_label_sale_type'), 'sale_label_prefix' => thegem_get_option('product_label_sale_prefix'), 'sale_label_suffix' => thegem_get_option('product_label_sale_suffix'), 'sale_label_text' => thegem_get_option('product_label_sale_text'), 'out_label_text' => thegem_get_option('product_label_out_of_stock_text'), ); ?> <div class="labels-outer"> <div class="product-labels style-<?php echo esc_attr($params['labels_design']); ?>"> <?php $svg = ''; if ($params['labels_design'] == 4) { $svg = '<svg height="100%" viewBox="0 0 4 19" preserveAspectRatio="none" shape-rendering="geometricPrecision"><polygon points="0,0 0,19 4,0 "/></svg>'; } ?> <?php if ($params['product_show_out'] == '1' && !$product->is_in_stock()) : ?> <?php echo apply_filters('thegem_woocommerce_out_of_stock_flash', '<span class="label out-of-stock-label title-h6"><span class="rotate-back"><span class="text">' . $params['out_label_text'] . '</span></span>'.$svg.'</span>', $post, $product); ?> <?php endif; ?> <?php if ($params['product_show_sale'] == '1' && $product->is_on_sale()) : ?> <?php if ($params['sale_label_type'] == 'percentage') { $percentage = ''; if ($product->get_type() === 'variable') { $children = array_filter(array_map('wc_get_product', $product->get_children()), 'wc_products_array_filter_visible_grouped'); foreach ($children as $child) { $regular_price = (float)$child->get_regular_price(); $sale_price = (float)$child->get_sale_price(); if (!empty($sale_price)) { $percentage = round(100 - ($sale_price / $regular_price * 100)); continue; } } } else { $regular_price = (float)$product->get_regular_price(); $sale_price = (float)$product->get_sale_price(); if (!empty($sale_price) && $sale_price != 0) { $percentage = round(100 - ($sale_price / $regular_price * 100)); } } $sale_text = '<b>'.$params['sale_label_prefix'] . $percentage . $params['sale_label_suffix'].'</b>'; } else { $sale_text = $params['sale_label_text']; } ?> <?php echo apply_filters('woocommerce_sale_flash', '<span class="label onsale title-h6"><span class="rotate-back"><span class="text">' . $sale_text . '</span></span>'.$svg.'</span>', $post, $product); ?> <?php endif; ?> <?php if ($params['product_show_new'] == '1' && $product->is_featured()) : ?> <?php echo apply_filters('thegem_woocommerce_featured_flash', '<span class="label new-label title-h6"><span class="rotate-back"><span class="text">' . $params['new_label_text'] . '</span></span>'.$svg.'</span>', $post, $product); ?> <?php endif; ?> </div> </div> <?php } function thegem_woocommerce_single_product_gallery() { global $post, $product; $product_gallery_data = thegem_get_output_product_page_data($product->get_id()); if($product_gallery_data['product_gallery'] !== 'legacy') return; wp_enqueue_style('thegem-hovers'); wp_enqueue_script('thegem-gallery'); $attachments_ids = array(); if(has_post_thumbnail()) { $attachments_ids = array(get_post_thumbnail_id()); } $attachments_ids = array_merge($attachments_ids, $product->get_gallery_image_ids()); if('variable' === $product->get_type()) { foreach($product->get_available_variations() as $variation) { if(has_post_thumbnail($variation['variation_id'])) { $thumbnail_id = get_post_thumbnail_id($variation['variation_id']); if(!in_array($thumbnail_id, $attachments_ids)) { $attachments_ids[] = $thumbnail_id; } } } } if(empty($attachments_ids)) return ; $gallery_uid = uniqid(); echo '<div class="preloader"><div class="preloader-spin"></div></div>'; echo '<div class="gem-gallery gem-gallery-hover-default">'; foreach($attachments_ids as $attachments_id) { if(thegem_get_option('woocommerce_activate_images_sizes')) { $thumb_image_url = thegem_get_thumbnail_src($attachments_id, 'thegem-product-thumbnail'); $preview_image_url = thegem_get_thumbnail_src($attachments_id, 'thegem-product-single'); } else { $thumb_image_url = wp_get_attachment_image_src($attachments_id, apply_filters('single_product_small_thumbnail_size', 'shop_thumbnail')); $preview_image_url = wp_get_attachment_image_src($attachments_id, apply_filters('single_product_large_thumbnail_size', 'shop_single')); } $full_image_url = wp_get_attachment_image_src($attachments_id, 'full'); ?> <div class="gem-gallery-item" data-image-id="<?php echo esc_attr($attachments_id); ?>"> <div class="gem-gallery-item-image"> <a href="<?php echo esc_url($preview_image_url[0]); ?>" data-fancybox-group="product-gallery-<?php echo esc_attr($gallery_uid); ?>" data-full-image-url="<?php echo esc_url($full_image_url[0]); ?>"> <svg width="20" height="10"><path d="M 0,10 Q 9,9 10,0 Q 11,9 20,10" /></svg> <img src="<?php echo esc_url($thumb_image_url[0]); ?>" alt="<?=thegem_gallery_get_alt_text($attachments_id)?>" class="img-responsive"> </a> </div> </div> <?php } echo '</div>'; } function thegem_woocommerce_single_product_gallery_alternative() { global $post, $product; $product_gallery_data = thegem_get_output_product_page_data($product->get_id()); if ($product_gallery_data['product_gallery'] != 'enabled' || $product_gallery_data['product_gallery_type'] == 'grid') return; wp_enqueue_style('thegem-product-gallery'); wp_enqueue_script('thegem-product-gallery'); $attachments_ids = array(); if (has_post_thumbnail()) { $attachments_ids = array(get_post_thumbnail_id()); } $attachments_ids = array_merge($attachments_ids, $product->get_gallery_image_ids()); if ('variable' === $product->get_type()) { foreach ($product->get_available_variations() as $variation) { if (has_post_thumbnail($variation['variation_id'])) { $thumbnail_id = get_post_thumbnail_id($variation['variation_id']); if (!in_array($thumbnail_id, $attachments_ids)) { $attachments_ids[] = $thumbnail_id; } } } } if (empty($attachments_ids)) { return; } $gallery_uid = uniqid(); $firstImagePath = wp_get_original_image_path($attachments_ids[0]); $isSingleImg = count($attachments_ids) < 2; $isSingleImgSkeleton = $isSingleImg ? ' product-gallery-skeleton-single' : ''; $isSquareImg = '1'; if ($firstImagePath) { $firstImageSize = wp_getimagesize($firstImagePath); $skeletonPadding = 100 * $firstImageSize[1] / $firstImageSize[0]; if ($skeletonPadding > 100) { $isSquareImg = ''; } } $isVertical = $product_gallery_data['product_gallery_type'] == 'vertical'; $isVerticalSkeleton = $isVertical ? 'product-gallery-skeleton-vertical' : ''; $isVerticalSkeleton .= $isSquareImg == '1' ? ' product-gallery-skeleton-vertical-square' : ''; ?> <script> function firstImageLoaded() { (function ($) { var $galleryElement = $('.product-gallery'), isVertical = $galleryElement.attr("data-thumb") === 'vertical', isTrueCount = $('.product-gallery-slider-item', $galleryElement).length > 1, isMobile = $(window).width() < 768 && /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? true : false, isDots = $galleryElement.attr("data-thumb") === 'dots'; if (isVertical && isTrueCount && !isMobile && !isDots) { if ($galleryElement.data('square-img')) { $galleryElement.css('height', $galleryElement.width() * 0.7411).css('overflow', 'hidden'); } else { $galleryElement.css('height', $galleryElement.width() - 30).css('overflow', 'hidden'); } $galleryElement.addClass('is-vertical-inited'); } $galleryElement.prev('.preloader').remove(); })(jQuery); } </script> <?php if ($product_gallery_data['product_page_skeleton_loader'] || 1) { echo '<div class="preloader skeleton product-gallery-skeleton ' . $isVerticalSkeleton . $isSingleImgSkeleton . '" >'; echo '<div class="product-gallery-skeleton-image" style="padding-bottom:' . $skeletonPadding . '%"></div>'; if (!$isSingleImg && ($product_gallery_data['product_gallery_type'] == 'horizontal' || $product_gallery_data['product_gallery_type'] == 'vertical')) { echo '<div class="product-gallery-skeleton-thumbs product-gallery-skeleton-thumbs-' . $product_gallery_data['product_gallery_type'] . '"></div>'; } echo '</div>'; } else { echo '<div class="preloader"><div class="preloader-spin"></div></div>'; } ?> <div class="product-gallery <?php echo $product_gallery_data['product_gallery_type'] == 'vertical' ? 'vertical' : ''; ?>" data-type="<?php echo esc_attr($product_gallery_data['product_gallery_show_image']); ?>" data-thumb="<?php echo esc_attr($product_gallery_data['product_gallery_type']); ?>" data-fancy="<?php echo esc_attr($product_gallery_data['product_gallery_lightbox']); ?>" data-zoom="<?php echo esc_attr($product_gallery_data['product_gallery_zoom']); ?>" data-colors="<?php echo esc_attr($product_gallery_data['product_gallery_elements_color']); ?>" data-auto-height="<?php echo esc_attr($product_gallery_data['product_gallery_auto_height']); ?>" data-square-img="<?php echo esc_attr($isSquareImg); ?>"> <div class="product-gallery-slider-wrap <?php echo $product_gallery_data['product_gallery_lightbox'] ? 'init-fancy' : ''; ?> <?php echo !empty($product_gallery_data['product_gallery_elements_color']) ? 'init-color' : ''; ?>" data-color="<?php echo esc_attr($product_gallery_data['product_gallery_elements_color']); ?>"> <div class="product-gallery-slider owl-carousel <?php echo $product_gallery_data['product_gallery_type'] == 'dots' ? 'dots' : ''; ?>"> <?php //Images foreach ($attachments_ids as $i => $attachments_id) { $full_image_url = wp_get_attachment_image_src($attachments_id, 'full'); if ($full_image_url): ?> <div class="product-gallery-slider-item" data-image-id="<?= esc_attr($attachments_id); ?>"> <div class="product-gallery-image <?= $product_gallery_data['product_gallery_zoom'] ? 'init-zoom' : null ?>"> <?php if ($product_gallery_data['product_gallery_lightbox']): ?> <a href="<?= esc_url($full_image_url[0]); ?>" class="fancy-product-gallery" data-fancybox-group="product-gallery-<?= esc_attr($gallery_uid); ?>" data-fancybox="product-gallery-<?= esc_attr($gallery_uid); ?>" data-full-image-url="<?= esc_url($full_image_url[0]); ?>"> <img src="<?= esc_url($full_image_url[0]); ?>" data-ww="<?php echo esc_url($full_image_url[0]); ?>" alt="<?= thegem_gallery_get_alt_text($attachments_id) ?>" class="img-responsive" <?php if ($i == 0) { ?> onload="firstImageLoaded()" <?php } ?>> </a> <?php else: ?> <img src="<?= esc_url($full_image_url[0]); ?>" data-ww="<?php echo esc_url($full_image_url[0]); ?>" alt="<?= thegem_gallery_get_alt_text($attachments_id) ?>" class="img-responsive" <?php if ($i == 0) { ?> onload="firstImageLoaded()" <?php } ?>> <?php endif; ?> </div> </div> <?php endif; } ?> <!--Video--> <?php $product_video_data = get_post_meta($post->ID, 'thegem_product_video', true); $product_video = thegem_get_sanitize_product_video_data($product_video_data); $video_type = $product_video['product_video_type']; $video = $product_video['product_video_id']; $video_self = $product_video['product_video_link']; $poster = $product_video['product_video_thumb']; $poster_id = attachment_url_to_postid($poster); if (!empty($video) && $video_type == 'youtube') { $youtube_id = thegem_parcing_youtube_url($video); } if (!empty($video) && $video_type == 'vimeo') { $vimeo_id = thegem_parcing_vimeo_url($video); } $link = ''; if ($video_type == 'youtube' || $video_type == 'vimeo') { if ($video_type == 'youtube' && $youtube_id) { $link = '//www.youtube.com/embed/' . $youtube_id . '?playlist=' . $youtube_id . '&autoplay=1&mute=1&controls=1&loop=1&showinfo=0&autohide=1&iv_load_policy=3&rel=0&disablekb=1&wmode=transparent'; if ($poster) { $video_block = '<iframe src="' . esc_url($link) . '" frameborder="0" muted="muted" allowfullscreen></iframe>'; } else { $video_block = '<div id="productYoutubeVideo" data-yt-id="' . $youtube_id . '"></div>'; } } if ($video_type == 'vimeo' && $vimeo_id) { $link = '//player.vimeo.com/video/' . $vimeo_id . '?autoplay=1&muted=1&controls=1&loop=1&title=0&badge=0&byline=0&autopause=0&autohide=1'; if ($poster) { $video_block = '<iframe src="' . esc_url($link) . '" frameborder="0" muted="muted" allowfullscreen></iframe>'; } else { $video_block = '<div id="productVimeoVideo" data-vm-id="' . $vimeo_id . '"></div>'; } } } else if ($video_type == 'self') { $link = $video_self; $video_block = '<video id="productSelfVideo" class="fancybox-video" controls disablePictureInPicture controlsList="nodownload" loop="loop" src="' . $video_self . '" muted="muted"' . ($poster ? ' poster="' . esc_url($poster) . '"' : '') . '></video>'; } if (isset($video_block)) { ?> <div class="product-gallery-slider-item <?php if (!$poster || $video_type == 'self'): ?>video-block<?php endif; ?>" data-video-type="<?= $video_type ?>"> <?php if ($product_gallery_data['product_gallery_lightbox']): ?> <a href="<?= $link ?>" class="fancy-product-gallery" data-fancybox-group="product-gallery-<?= esc_attr($gallery_uid); ?>" data-fancybox="product-gallery-<?= esc_attr($gallery_uid); ?>"> <?php if ($poster && $video_type != 'self'): ?> <img src="<?php echo esc_url($poster); ?>" alt="<?= thegem_gallery_get_alt_text($poster_id) ?>" class="img-responsive"> <i class="icon-play <?= $video_type ?>"></i> <?php else: ?> <?= $video_block ?> <?php endif; ?> </a> <?php else: ?> <?= $video_block ?> <?php endif; ?> </div> <?php } ?> </div> <?php //Zoom icon if ($product_gallery_data['product_gallery_lightbox']) { echo '<div class="product-gallery-fancy"></div>'; } //Labels if ($product_gallery_data['product_gallery_labels']) { ?> <div class="product-gallery-labels"><?= thegem_woocommerce_single_product_gallery_labels() ?></div> <?php } ?> </div> <?php if (!$isSingleImg && ($product_gallery_data['product_gallery_type'] == 'horizontal' || $product_gallery_data['product_gallery_type'] == 'vertical')): ?> <div class="product-gallery-skeleton-thumbs product-gallery-skeleton-thumbs-<?php echo $product_gallery_data['product_gallery_type'] ?>"></div> <div class="product-gallery-thumbs-wrap <?php echo !empty($product_gallery_data['product_gallery_elements_color']) ? 'init-color' : ''; ?>"> <div class="product-gallery-thumbs owl-carousel"> <?php //Images foreach ($attachments_ids as $attachments_id) { if (thegem_get_option('woocommerce_activate_images_sizes')) { $thumb_image_url = thegem_get_thumbnail_src($attachments_id, 'thegem-product-thumbnail'); $thumb_image_url_2x = thegem_get_thumbnail_src($attachments_id, 'thegem-product-thumbnail-2x'); $thumb_vertical_image_url = thegem_get_thumbnail_src($attachments_id, 'thegem-product-thumbnail-vertical'); $thumb_vertical_image_url_2x = thegem_get_thumbnail_src($attachments_id, 'thegem-product-thumbnail-vertical-2x'); } else { $thumb_image_url = wp_get_attachment_image_src($attachments_id, apply_filters('single_product_small_thumbnail_size', 'shop_thumbnail')); $thumb_image_url_2x = wp_get_attachment_image_src($attachments_id, apply_filters('single_product_small_thumbnail_size', 'shop_thumbnail')); $thumb_vertical_image_url = wp_get_attachment_image_src($attachments_id, apply_filters('single_product_large_thumbnail_size', 'shop_single')); $thumb_vertical_image_url_2x = wp_get_attachment_image_src($attachments_id, apply_filters('single_product_large_thumbnail_size', 'shop_single')); } ?> <?php if ($thumb_image_url || $thumb_vertical_image_url): ?> <div class="product-gallery-thumb-item" data-image-id="<?= esc_attr($attachments_id); ?>"> <div class="product-gallery-image"> <img <?php if ($product_gallery_data['product_gallery_type'] == 'vertical'): ?> src="<?php echo esc_url($thumb_vertical_image_url[0]); ?>" <?php if (thegem_get_option('product_gallery_retina_ready')): ?> srcset="<?php echo esc_url($thumb_vertical_image_url_2x[0]); ?> 2x" <?php endif; ?> data-ww="<?php echo esc_url($thumb_vertical_image_url[0]); ?>" <?php else: ?> src="<?php echo esc_url($thumb_image_url[0]); ?>" <?php if (thegem_get_option('product_gallery_retina_ready')): ?> srcset="<?php echo esc_url($thumb_image_url_2x[0]); ?> 2x" <?php endif; ?> <?php endif; ?> alt="<?= thegem_gallery_get_alt_text($attachments_id) ?>" class="img-responsive" > </div> </div> <?php endif; } ?> <!--Video--> <?php if (thegem_get_option('woocommerce_activate_images_sizes')) { $thumb_video_url = thegem_get_thumbnail_src($poster_id, 'thegem-product-thumbnail'); $thumb_video_url_2x = thegem_get_thumbnail_src($poster_id, 'thegem-product-thumbnail-2x'); $thumb_vertical_video_url = thegem_get_thumbnail_src($poster_id, 'thegem-product-thumbnail-vertical'); $thumb_vertical_video_url_2x = thegem_get_thumbnail_src($poster_id, 'thegem-product-thumbnail-vertical-2x'); } else { $thumb_video_url = wp_get_attachment_image_src($poster_id, apply_filters('single_product_small_thumbnail_size', 'shop_thumbnail')); $thumb_video_url_2x = wp_get_attachment_image_src($poster_id, apply_filters('single_product_small_thumbnail_size', 'shop_thumbnail')); $thumb_vertical_video_url = wp_get_attachment_image_src($poster_id, apply_filters('single_product_large_thumbnail_size', 'shop_single')); $thumb_vertical_video_url_2x = wp_get_attachment_image_src($poster_id, apply_filters('single_product_large_thumbnail_size', 'shop_single')); } if (isset($video_block)) { ?> <div class="product-gallery-thumb-item"> <div class="product-gallery-image"> <?php if ($poster): ?> <img <?php if ($product_gallery_data['product_gallery_type'] == 'vertical'): ?> src="<?php echo esc_url($thumb_vertical_video_url[0]); ?>" <?php if (thegem_get_option('product_gallery_retina_ready')): ?> srcset="<?php echo esc_url($thumb_vertical_video_url_2x[0]); ?> 2x" <?php endif; ?> data-ww="<?php echo esc_url($thumb_vertical_video_url[0]); ?>" <?php else: ?> src="<?php echo esc_url($thumb_video_url[0]); ?>" <?php if (thegem_get_option('product_gallery_retina_ready')): ?> srcset="<?php echo esc_url($thumb_video_url_2x[0]); ?> 2x" <?php endif; ?> <?php endif; ?> alt="<?= thegem_gallery_get_alt_text($poster_id) ?>" class="img-responsive" > <?php else: ?> <img src="<?= get_stylesheet_directory_uri() ?>/images/dummy/dummy.png" alt="dummy" class="img-responsive"> <?php endif; ?> <i class="icon-play <?= $video_type ?>" style="color: <?= $poster ? '#ffffff' : '#dfe5e8' ?>"></i> </div> </div> <?php } ?> </div> </div> <?php endif; ?> </div> <?php } function thegem_woocommerce_single_product_gallery_grid() { global $post, $product; $product_gallery_data = thegem_get_output_product_page_data( $product->get_id() ); if ( $product_gallery_data['product_gallery'] != 'enabled' || $product_gallery_data['product_gallery_type'] != 'grid' ) return; wp_enqueue_style( 'thegem-product-gallery' ); wp_enqueue_script( 'thegem-product-gallery-grid' ); //Attachments $attachments_ids = array(); if ( has_post_thumbnail() ) { $attachments_ids = array( get_post_thumbnail_id() ); } $attachments_ids = array_merge( $attachments_ids, $product->get_gallery_image_ids() ); if ( 'variable' === $product->get_type() ) { foreach ( $product->get_available_variations() as $variation ) { if ( has_post_thumbnail( $variation['variation_id'] ) ) { $thumbnail_id = get_post_thumbnail_id( $variation['variation_id'] ); if ( ! in_array( $thumbnail_id, $attachments_ids ) ) { $attachments_ids[] = $thumbnail_id; } } } } if ( empty( $attachments_ids ) ) { return; } $gallery_uid = uniqid(); //Params $product_page_data = thegem_get_output_page_settings($product->get_id()); $product_gallery_data = thegem_get_output_product_page_data( $product->get_id() ); $product_video_data = get_post_meta( $post->ID, 'thegem_product_video', true ); $product_video = thegem_get_sanitize_product_video_data( $product_video_data ); $params = [ 'type' => $product_gallery_data['product_gallery_type'], 'column' => $product_gallery_data['product_gallery_grid_columns'], 'column_width' => round( 100 / mb_substr( $product_gallery_data['product_gallery_grid_columns'], 0, 1 ), 4 ), 'gaps' => round( $product_gallery_data['product_gallery_grid_gaps'] / 2 ), 'fancy' => $product_gallery_data['product_gallery_lightbox'], 'zoom' => $product_gallery_data['product_gallery_zoom'], 'color' => $product_gallery_data['product_gallery_elements_color'], 'labels' => $product_gallery_data['product_gallery_labels'], 'label_sale' => $product_gallery_data['product_gallery_label_sale'], 'label_new' => $product_gallery_data['product_gallery_label_new'], 'label_out_stock' => $product_gallery_data['product_gallery_label_out_stock'], 'is_images_sizes' => thegem_get_option( 'woocommerce_activate_images_sizes' ), 'video_type' => $product_video['product_video_type'], 'video' => $product_video['product_video_id'], 'video_autoplay' => $product_gallery_data['product_gallery_video_autoplay'], 'video_self' => $product_video['product_video_link'], 'video_self_autoplay' => $product_gallery_data['product_gallery_video_autoplay'] ? 'playsinline autoplay' : null, 'poster' => $product_video['product_video_thumb'], 'poster_id' => attachment_url_to_postid( $product_video['product_video_thumb'] ), 'content_left_margin' => !wp_is_mobile() && $product_gallery_data['product_gallery_grid_gaps_hide'] ? 42 : 0, ]; //Product Gallery Grid echo '<div class="product-gallery__grid col-' . $params['column'] . '" data-gallery="' . $params['type'] . '" data-fancy="' . $params['fancy'] . '" data-zoom="' . $params['zoom'] . '" data-color="' . $params['color'] . '" style="overflow: hidden; margin-left: -'.$params['content_left_margin'].'px;">'; //Labels if ( $product_gallery_data['product_gallery_labels'] ) { ?> <div class="product-gallery__elements" style="opacity: 0;"> <div class="product-gallery-labels"><?=thegem_woocommerce_single_product_gallery_labels()?></div> </div> <?php } echo '<div class="product-gallery__grid-wrap" style="margin: '.-$params['gaps'].'px; display: flex; flex-wrap: wrap;">'; //Images foreach ( $attachments_ids as $attachments_id ) { if ( $params['is_images_sizes'] && $params['column'] != '1x') { $thumb_image_url = thegem_get_thumbnail_src( $attachments_id, 'thegem-product-single' ); $thumb_image_url_2x = thegem_get_thumbnail_src( $attachments_id, 'thegem-product-single-2x' ); } else { $thumb_image_url = wp_get_attachment_image_src( $attachments_id, 'full' ); $thumb_image_url_2x = wp_get_attachment_image_src( $attachments_id, 'full' ); } $full_image_url = wp_get_attachment_image_src( $attachments_id, 'full' ); ?> <?php if ( $thumb_image_url || $full_image_url ): ?> <div class="product-gallery__grid-item" data-image-id="<?= esc_attr( $attachments_id ); ?>" style="width: <?=$params['column_width']?>%; padding: <?=$params['gaps']?>px;"> <div class="product-gallery-image <?php if ( $params['zoom'] ): ?>init-zoom<?php endif;?> <?php if ( $params['fancy'] ): ?>init-fancy<?php endif;?>"> <?php if ( $params['fancy'] ): ?> <a href="<?= esc_url( $full_image_url[0] ); ?>" class="fancy-product-gallery" data-fancybox-group="product-gallery-<?= esc_attr( $gallery_uid ); ?>" data-fancybox="product-gallery-<?= esc_attr( $gallery_uid ); ?>" data-full-image-url="<?= esc_url( $full_image_url[0] ); ?>"> <i class="product-gallery-fancy" style="opacity: 0;"></i> <?php if ( $product_gallery_data['product_page_skeleton_loader'] ): ?> <span class="preloader skeleton product-grid-gallery-skeleton"></span> <?php endif; ?> <img src="<?= esc_url( $thumb_image_url[0] ); ?>" <?php if ( thegem_get_option( 'product_gallery_retina_ready' ) ): ?> srcset="<?php echo esc_url( $thumb_image_url_2x[0] ); ?> 2x" <?php endif; ?> class="img-responsive" style="width: 100%; height: auto;" width="<?=$thumb_image_url[1]?>" height="<?=$thumb_image_url[2]?>" alt="<?= thegem_gallery_get_alt_text( $attachments_id ) ?>" onload="if(this.previousElementSibling && this.previousElementSibling.classList.contains('preloader')) { this.previousElementSibling.remove(); }" /> </a> <?php else: ?> <?php if ( $product_gallery_data['product_page_skeleton_loader'] ): ?> <span class="preloader skeleton product-grid-gallery-skeleton"></span> <?php endif; ?> <img src="<?= esc_url( $thumb_image_url[0] ); ?>" <?php if ( thegem_get_option( 'product_gallery_retina_ready' ) ): ?> srcset="<?php echo esc_url( $thumb_image_url_2x[0] ); ?> 2x" <?php endif; ?> class="img-responsive" style="width: 100%; height: auto;" width="<?=$thumb_image_url[1]?>" height="<?=$thumb_image_url[2]?>" alt="<?= thegem_gallery_get_alt_text( $attachments_id ) ?>" onload="if(this.previousElementSibling && this.previousElementSibling.classList.contains('preloader')) { this.previousElementSibling.remove(); }" /> <?php endif; ?> </div> </div> <?php endif; ?> <?php } //Video if ( $params['is_images_sizes'] && $params['column'] != '1x') { $thumb_image_url = thegem_get_thumbnail_src( $params['poster_id'], 'thegem-product-single' ); $thumb_image_url_2x = thegem_get_thumbnail_src( $params['poster_id'], 'thegem-product-single-2x' ); } else { $thumb_image_url = wp_get_attachment_image_src( $params['poster_id'], 'full' ); $thumb_image_url_2x = wp_get_attachment_image_src( $params['poster_id'], 'full' ); } if ( ! empty( $params['video'] ) && $params['video_type'] == 'youtube' ) { $youtube_id = thegem_parcing_youtube_url( $params['video'] ); } if ( ! empty( $params['video'] ) && $params['video_type'] == 'vimeo' ) { $vimeo_id = thegem_parcing_vimeo_url( $params['video'] ); } $link = ''; if ( $params['video_type'] == 'youtube' || $params['video_type'] == 'vimeo' ) { if ( $params['video_type'] == 'youtube' && $youtube_id ) { $link = '//www.youtube.com/embed/' . $youtube_id . '?playlist=' . $youtube_id . '&autoplay=1&mute=1&controls=1&loop=1&showinfo=0&autohide=1&iv_load_policy=3&rel=0&disablekb=1&wmode=transparent'; if ( $params['poster'] ) { $video_block = '<iframe src="' . esc_url( $link ) . '" frameborder="0" muted="muted" allowfullscreen></iframe>'; } else { $video_block = '<div id="productYoutubeVideo" data-yt-id="' . $youtube_id . '"></div>'; } } if ( $params['video_type'] == 'vimeo' && $vimeo_id ) { $link = '//player.vimeo.com/video/' . $vimeo_id . '?autoplay=1&muted=1&controls=1&loop=1&title=0&badge=0&byline=0&autopause=0&autohide=1'; if ( $params['poster'] ) { $video_block = '<iframe src="' . esc_url( $link ) . '" frameborder="0" muted="muted" allowfullscreen></iframe>'; } else { $video_block = '<div id="productVimeoVideo" data-vm-id="' . $vimeo_id . '"></div>'; } } } else if ( $params['video_type'] == 'self' ) { $link = $params['video_self']; $video_block = '<video id="productSelfVideo" class="fancybox-video" controls disablePictureInPicture controlsList="nodownload" loop="loop" '.$params['video_self_autoplay'].' src="' . $link . '" muted="muted"' . ( $params['poster'] ? ' poster="' . esc_url( $thumb_image_url[0] ) . '"' : '' ) . '></video>'; } if ( isset( $video_block ) ) { ?> <div class="product-gallery__grid-item <?php if ( !$params['poster'] || $params['video_type'] == 'self' ): ?>video-block<?php endif; ?>" data-video-type="<?= $params['video_type'] ?>" data-video-autoplay="<?= $params['video_autoplay'] ?>" data-video-poster="<?= $params['poster_id'] ?>" style="width: <?=$params['column_width']?>%; padding: <?=$params['gaps']?>px; background-color: transparent;"> <?php if ( $params['fancy'] ): ?> <a href="<?= $link ?>" class="fancy-product-gallery" data-fancybox-group="product-gallery-<?= esc_attr( $gallery_uid ); ?>" data-fancybox="product-gallery-<?= esc_attr( $gallery_uid ); ?>"> <?php if ( $params['poster'] && $params['video_type'] != 'self' ): ?> <?php if ( $product_gallery_data['product_page_skeleton_loader'] ): ?> <span class="preloader skeleton product-grid-gallery-skeleton"></span> <?php endif; ?> <img src="<?= esc_url( $thumb_image_url[0] ); ?>" <?php if ( thegem_get_option( 'product_gallery_retina_ready' ) ): ?> srcset="<?php echo esc_url( $thumb_image_url_2x[0] ); ?> 2x" <?php endif; ?> class="img-responsive" style="width: 100%; height: auto;" width="<?=$thumb_image_url[1]?>" height="<?=$thumb_image_url[2]?>" alt="<?= thegem_gallery_get_alt_text( $params['poster_id'] ) ?>" onload="if(this.previousElementSibling && this.previousElementSibling.classList.contains('preloader')) { this.previousElementSibling.remove(); }" /> <i class="icon-play <?= $params['video_type'] ?>"></i> <?php else: ?> <span class="preloader skeleton"></span> <?= $video_block ?> <?php endif; ?> </a> <?php else: ?> <span class="preloader skeleton"></span> <?= $video_block ?> <?php endif; ?> </div> <?php } ?> <?php echo '</div></div>'; } function thegem_woocommerce_single_product_quick_view_gallery() { global $post, $product; $product_gallery_data = thegem_get_output_product_page_data( $product->get_id() ); $attachments_ids = array(); if ( has_post_thumbnail() ) { $attachments_ids = array( get_post_thumbnail_id() ); } $attachments_ids = array_merge( $attachments_ids, $product->get_gallery_image_ids() ); if ( 'variable' === $product->get_type() ) { foreach ( $product->get_available_variations() as $variation ) { if ( has_post_thumbnail( $variation['variation_id'] ) ) { $thumbnail_id = get_post_thumbnail_id( $variation['variation_id'] ); if ( ! in_array( $thumbnail_id, $attachments_ids ) ) { $attachments_ids[] = $thumbnail_id; } } } } if ( empty( $attachments_ids ) ) { return; } $gallery_uid = uniqid(); echo '<div class="preloader"><div class="preloader-spin"></div></div>'; $isLegacy = thegem_get_option( 'product_page_layout' ) == 'legacy'; $isLegacyGallery = thegem_get_option( 'product_gallery' ) == 'legacy'; $dataThumb = $isLegacy ? 'dots' : 'none'; $dataAutoHeight = $isLegacy ? '0' : '1'; if ( !$isLegacyGallery ) { echo '<div class="product-gallery gem-quick-view-gallery" data-thumb="'.$dataThumb.'" data-loop="0" data-auto-height="'.$dataAutoHeight.'" data-colors="#00bcd4">'; //Labels if ( $product_gallery_data['product_gallery_labels'] ) { ?> <div class="product-gallery-labels"><?=thegem_woocommerce_single_product_gallery_labels()?></div> <?php } foreach ( $attachments_ids as $attachments_id ) { $preview_image_url = $isLegacy ? wp_get_attachment_image_src( $attachments_id, apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ) ) : wp_get_attachment_image_src( $attachments_id, 'full' ); ?> <?php if ( $preview_image_url ): ?> <div class="product-gallery-slider-item" data-image-id="<?= esc_attr( $attachments_id ); ?>"> <div class="product-gallery-image"> <img src="<?= esc_url( $preview_image_url[0] ); ?>" alt="<?=thegem_gallery_get_alt_text($attachments_id)?>" class="img-responsive"> </div> </div> <?php endif; ?> <?php } $product_video_data = get_post_meta( $post->ID, 'thegem_product_video', true ); $product_video = thegem_get_sanitize_product_video_data( $product_video_data ); $video_type = $product_video['product_video_type']; $video = $product_video['product_video_id']; $video_self = $product_video['product_video_link']; $poster = $product_video['product_video_thumb']; if (!empty($video) && $video_type == 'youtube'){ $youtube_id = thegem_parcing_youtube_url($video); } if (!empty($video) && $video_type == 'vimeo') { $vimeo_id = thegem_parcing_vimeo_url($video); } if ( $video_type == 'youtube' || $video_type == 'vimeo' ) { if ( $video_type == 'youtube' && $youtube_id ) { $video_block = '<div id="productYoutubeVideo" data-yt-id="'.$youtube_id.'"></div>'; } if ( $video_type == 'vimeo' && $vimeo_id ) { $video_block = '<div id="productVimeoVideo" data-vm-id="'.$vimeo_id.'"></div>'; } } else if ( $video_type == 'self' ) { $video_block = '<video id="productSelfVideo" class="fancybox-video" controls disablePictureInPicture controlsList="nodownload" loop="loop" src="' . $video_self . '" muted="muted"' . ( $poster ? ' poster="' . esc_url( $poster ) . '"' : '' ) . '></video>'; } if ( isset( $video_block ) ) { ?> <div class="product-gallery-slider-item video-block" data-video-type="<?= $video_type ?>"><?= $video_block ?></div> <?php } } else { echo '<div class="gem-simple-gallery gem-quick-view-gallery gem-gallery-hover-default responsive">'; foreach ( $attachments_ids as $attachments_id ) { $preview_image_url = wp_get_attachment_image_src( $attachments_id, apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ) ); ?> <div class="gem-gallery-item"> <div class="gem-gallery-item-image"> <img src="<?php echo esc_url( $preview_image_url[0] ); ?>" alt="<?=thegem_gallery_get_alt_text($attachments_id)?>" class="img-responsive"> </div> </div> <?php } } echo '</div>'; } function thegem_woocommerce_single_product_quick_view_details() { $addToCartTextColor = thegem_get_option('product_page_button_add_to_cart_color') ? thegem_get_option('product_page_button_add_to_cart_color') : thegem_get_option('button_text_basic_color'); $addToCartTextColorHover = thegem_get_option('product_page_button_add_to_cart_color_hover') ? thegem_get_option('product_page_button_add_to_cart_color_hover') : thegem_get_option('button_text_hover_color'); $addToCartBackground = thegem_get_option('product_page_button_add_to_cart_background') ? thegem_get_option('product_page_button_add_to_cart_background') : thegem_get_option('styled_elements_color_1'); $addToCartBackgroundHover = thegem_get_option('product_page_button_add_to_cart_background_hover') ? thegem_get_option('product_page_button_add_to_cart_background_hover') : thegem_get_option('button_background_hover_color'); $addToCartBorder = '0'; $addToCartBorderRadius = '0'; $permalink = get_permalink( get_the_id() ); thegem_button( array( 'tag' => 'a', 'href' => $permalink, 'style' => 'flat', 'size' => 'small', 'text' => esc_html__('View Details', 'thegem'), 'position' => 'fullwidth', 'text_color' => $addToCartTextColor, 'hover_text_color' => $addToCartTextColorHover, 'background_color' => $addToCartBackground, 'hover_background_color' => $addToCartBackgroundHover, 'border' => $addToCartBorder, 'corner' => $addToCartBorderRadius, 'attributes' => array( 'class' => 'quick-view-details-button', 'rel' => 'nofollow' ), ), 1 ); } function thegem_woocommerce_single_product_page_content() { $vc_show_content = false; if(thegem_is_plugin_active('js_composer/js_composer.php')) { global $vc_manager; if($vc_manager->mode() == 'admin_frontend_editor' || $vc_manager->mode() == 'admin_page' || $vc_manager->mode()== 'page_editable') { $vc_show_content = true; } } if(get_the_content() || $vc_show_content) { ?> <div class="product-content entry-content"><?php the_content(); ?></div> <?php } } function thegem_woocommerce_output_related_products_args($args) { global $thegem_product_data; $args['posts_per_page'] = 6; $args['columns'] = 6; if(thegem_get_option('product_archive_type') == 'grid') { $args['posts_per_page'] = $thegem_product_data['product_page_elements_related_items']; $args['columns'] = 1; } return $args; } add_filter('woocommerce_output_related_products_args', 'thegem_woocommerce_output_related_products_args'); function thegem_loop_shop_per_page() { $pc = !empty($_REQUEST['product_count']) && intval($_REQUEST['product_count']) > 0 ? intval($_REQUEST['product_count']) : 12; return $pc; } add_filter('loop_shop_per_page', 'thegem_loop_shop_per_page', 15); function thegem_woocommerce_product_per_page_select() { $products_per_page_items = array(12,24,48); $pc = !empty($_REQUEST['product_count']) && intval($_REQUEST['product_count']) > 0 ? intval($_REQUEST['product_count']) : 12; ?> <div class="woocommerce-select-count"> <select id="products-per-page" name="products_per_page" class="gem-combobox" onchange="window.location.href=jQuery(this).val();"> <?php foreach($products_per_page_items as $products_per_page_item) : ?> <option value="<?php echo esc_url(add_query_arg('product_count', $products_per_page_item)); ?>" <?php selected($pc, $products_per_page_item); ?>><?php printf(esc_html__('Show %d On Page', 'thegem'), $products_per_page_item); ?></option> <?php endforeach; ?> </select> </div> <?php } function thegem_woocommerce_before_shop_content() { echo '<div class="products-list">'; } function thegem_woocommerce_after_shop_content() { echo '</div><!-- .products-list -->'; } function thegem_woocommerce_before_shop_loop_start() { echo '<div class="before-products-list rounded-corners clearfix">'; } function thegem_woocommerce_before_shop_loop_end() { echo '</div>'; } function thegem_woocommerce_single_product_navigation() { global $thegem_product_data; if($thegem_product_data['product_page_layout'] !== 'legacy') return; ?> <div class="block-navigation"> <?php if($post = get_previous_post()) : ?> <div class="block-product-navigation-prev"> <?php thegem_button(array( 'text' => __('Prev', 'thegem'), 'href' => get_permalink($post->ID), 'style' => 'outline', 'size' => 'tiny', 'position' => 'left', 'icon' => 'prev', 'border_color' => thegem_get_option('button_background_basic_color'), 'text_color' => thegem_get_option('button_background_basic_color'), 'hover_background_color' => thegem_get_option('button_background_basic_color'), 'hover_text_color' => thegem_get_option('button_outline_text_hover_color'), ), 1); ?> </div> <?php endif; ?> <?php if($post = get_next_post()) : ?> <div class="block-product-navigation-next"> <?php thegem_button(array( 'text' => __('Next', 'thegem'), 'href' => get_permalink($post->ID), 'style' => 'outline', 'size' => 'tiny', 'position' => 'right', 'icon' => 'next', 'icon_position' => 'right', 'border_color' => thegem_get_option('button_background_basic_color'), 'text_color' => thegem_get_option('button_background_basic_color'), 'hover_background_color' => thegem_get_option('button_background_basic_color'), 'hover_text_color' => thegem_get_option('button_outline_text_hover_color'), ), 1); ?> </div> <?php endif; ?> </div><!-- .block-product-navigation --> <?php } function thegem_product_quick_view_navigation() { global $thegem_product_data; if($thegem_product_data['product_page_layout'] !== 'legacy') return; ?> <div class="product-quick-view-navigation"> <?php if($post = get_previous_post()) : ?> <?php thegem_button(array( 'style' => 'outline', 'size' => 'tiny', 'icon' => 'prev', 'border_color' => thegem_get_option('button_background_basic_color'), 'text_color' => thegem_get_option('button_background_basic_color'), 'hover_background_color' => thegem_get_option('button_background_basic_color'), 'hover_text_color' => thegem_get_option('button_outline_text_hover_color'), 'attributes' => array( 'data-product-id' => $post->ID ) ), 1); ?> <?php endif; ?> <?php if($post = get_next_post()) : ?> <?php thegem_button(array( 'style' => 'outline', 'size' => 'tiny', 'icon' => 'next', 'icon_position' => 'right', 'border_color' => thegem_get_option('button_background_basic_color'), 'text_color' => thegem_get_option('button_background_basic_color'), 'hover_background_color' => thegem_get_option('button_background_basic_color'), 'hover_text_color' => thegem_get_option('button_outline_text_hover_color'), 'attributes' => array( 'data-product-id' => $post->ID ) ), 1); ?> <?php endif; ?> </div> <?php } function thegem_woocommerce_show_product_loop_featured_flash() { global $post, $product; if($product->is_featured()) { echo apply_filters('woocommerce_featured_flash', '<span class="new-label title-h6">' . esc_html__( 'New', 'thegem' ) . '</span>', $post, $product); } } function thegem_woocommerce_show_product_loop_out_of_stock_flash() { global $post, $product; if(!$product->is_in_stock()) { echo apply_filters('woocommerce_out_of_stock_flash', '<span class="out-of-stock-label title-h6">' . wp_kses(__('Out <span class="small">of stock</span>', 'thegem'), array('span' => array('class' => array()))) . '</span>', $post, $product); } } function thegem_woocommerce_after_shop_loop_item_link() { global $post, $product; echo '<a href="'.esc_url(get_the_permalink()).'" class="bottom-product-link"></a>'; } function thegem_woocommerce_after_shop_loop_item_wishlist() { global $post, $product; if(function_exists('thegem_is_plugin_active') && !thegem_get_option('catalog_view') && defined( 'YITH_WCWL' )) { echo do_shortcode( "[yith_wcwl_add_to_wishlist]" ); } } function thegem_woocommerce_after_shop_loop_item_linebreak() { echo '<div class="product-bottom-linebreak"></div>'; } function thegem_woocommerce_back_to_shop_button() { global $thegem_product_data; if($thegem_product_data['product_page_layout'] !== 'legacy') return; thegem_button(array( 'href' => get_permalink(wc_get_page_id('shop')), 'style' => 'outline', 'size' => 'tiny', 'position' => 'right', 'icon' => 'prev', 'border_color' => thegem_get_option('button_background_basic_color'), 'text_color' => thegem_get_option('button_background_basic_color'), 'hover_background_color' => thegem_get_option('button_background_basic_color'), 'hover_text_color' => thegem_get_option('button_outline_text_hover_color'), 'extra_class' => 'back-to-shop-button' ), 1); } function thegem_woocommerce_rating_separator() { global $thegem_product_data; if($thegem_product_data['product_page_layout'] !== 'legacy') return; echo '<div class="rating-divider"></div>'; } function thegem_woocommerce_size_guide() { global $product; $product_size_guide_data = thegem_get_sanitize_product_size_guide_data($product->get_id()); $size_guide_image = thegem_get_option('size_guide_image'); $size_guide_text = thegem_get_option('size_guide_text'); if($product_size_guide_data['size_guide'] == 'disabled') { $size_guide_image = ''; } elseif($product_size_guide_data['size_guide'] == 'custom' && $product_size_guide_data['custom_image']) { $size_guide_image = $product_size_guide_data['custom_image']; $size_guide_text = $product_size_guide_data['custom_text']; } ?> <?php if($size_guide_image) : ?> <div class="size-guide"><a href="<?= esc_url($size_guide_image); ?>" class="fancybox"><?= esc_html($size_guide_text); ?></a></div> <?php endif; ?> <?php } function thegem_yith_wcwl_add_to_wishlist_params($additional_params, $atts) { if(isset($atts['thegem_product_page']) && $atts['thegem_product_page']) { $additional_params['thegem_product_page'] = 1; $additional_params['container_classes'] .= ' gem-single-wl-button'; } else { $additional_params['container_classes'] .= ' gem-list-wl-button'; } if(isset($atts['thegem_template']) && $atts['thegem_template']) { $additional_params['thegem_template'] = 1; } if(isset($atts['thegem_products_grid']) && $atts['thegem_products_grid']) { $additional_params['thegem_products_grid'] = 1; $additional_params['container_classes'] .= ' icon'; } return $additional_params; } add_filter('yith_wcwl_add_to_wishlist_params', 'thegem_yith_wcwl_add_to_wishlist_params', 10, 2); function thegem_yith_wcwl_add_to_wishlist_button() { if(function_exists('thegem_is_plugin_active') && thegem_is_plugin_active('yith-woocommerce-wishlist/init.php')) { echo do_shortcode( '[yith_wcwl_add_to_wishlist thegem_product_page="1"]' ); } } add_filter('yith_wcwl_is_wishlist_responsive', function() { return false; }); add_filter('yith_wcwl_main_style_deps', function() { return array(); }); //add_filter('yith_wcwl_main_script_deps', function() { return array('jquery'); }); function thegem_remove_yith_wcwl_scripts() { //wp_dequeue_style('jquery-selectBox'); wp_dequeue_style('yith-wcwl-font-awesome'); //wp_dequeue_script('jquery-selectBox'); } add_action('wp_enqueue_scripts', 'thegem_remove_yith_wcwl_scripts', 15); function thegem_woocommerce_template_loop_product_hover_thumbnail() { global $post, $product; $gallery = $product->get_gallery_image_ids(); $product_hover = get_post_meta($post->ID, 'thegem_product_disable_hover', true); $output = '<span class="woo-product-overlay"></span>'; if(isset($gallery[0]) && !$product_hover) { if(thegem_get_option('woocommerce_activate_images_sizes')) { $image = thegem_get_thumbnail_image($gallery[0], 'thegem-product-catalog', false, array( 'class' => "attachment woo-product-hover")); } else { $image = wp_get_attachment_image($gallery[0], 'shop_catalog', false, array( 'class' => "attachment woo-product-hover")); } if(!empty($image)) $output = $image; } echo $output; } function thegem_woocommerce_template_loop_product_quick_view() { global $post, $product; if(thegem_get_option('product_quick_view') && !is_product()) { wp_enqueue_script( 'wc-single-product' ); wp_enqueue_script( 'wc-add-to-cart-variation' ); wp_enqueue_script('thegem-product-quick-view'); if (!is_product() && thegem_is_quick_view_default()) { wp_enqueue_script('thegem-quick-view'); wp_enqueue_style('thegem-quick-view'); } if(thegem_get_option('product_page_layout') == 'default') { if(thegem_get_option('product_page_button_add_to_cart_icon') && thegem_get_option('product_page_button_add_to_cart_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_add_to_cart_icon_pack')); } if(thegem_get_option('product_page_button_add_to_wishlist_icon') && thegem_get_option('product_page_button_add_to_wishlist_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_add_to_wishlist_icon_pack')); } if(thegem_get_option('product_page_button_added_to_wishlist_icon') && thegem_get_option('product_page_button_added_to_wishlist_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_added_to_wishlist_icon_pack')); } } if (thegem_get_option('product_gallery') != 'legacy') { wp_enqueue_style('thegem-product-gallery'); } else { wp_enqueue_style('thegem-hovers'); } echo '<span class="quick-view-button title-h6" data-product-id="'.$post->ID.'">'.esc_html__('Quick View', 'thegem').'</span>'; } } function thegem_woocommerce_template_loop_category_title($category) { echo '<div class="category-overlay">'; echo '<h6 class="category-title">'.$category->name.'</h6>'; echo '<div class="category-overlay-separator"></div>'; echo '<div class="category-count">'.sprintf(esc_html(_n('%s item', '%s items', $category->count, 'thegem')), $category->count).'</div>'; echo '</div>'; } function thegem_woocommerce_dropdown_variation_attribute_options_args($args) { global $thegem_product_data; $isLegacy = $thegem_product_data['product_page_layout'] == 'legacy'; $args['class'] = !$isLegacy ? 'thegem-select' : 'gem-combobox'; return $args; } function thegem_woocommerce_review_gravatar_size($size) { return '70'; } function thegem_woocommerce_product_review_comment_form_args($args) { if ( has_action( 'set_comment_cookies', 'wp_set_comment_cookies' ) && get_option( 'show_comments_cookies_opt_in' ) ) { $consent = empty( $commenter['comment_author_email'] ) ? '' : ' checked="checked"'; $cookies = sprintf( '<p class="comment-form-cookies-consent col-md-12 col-xs-12">%s %s</p>', sprintf( '<input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"%s class="gem-checkbox" />', $consent ), sprintf( '<label for="wp-comment-cookies-consent">%s</label>', __( 'Save my name, email, and website in this browser for the next time I comment.' ) ) ); // Ensure that the passed fields include cookies consent. if ( isset( $args['fields'] ) && ! isset( $args['fields']['cookies'] ) ) { $args['fields']['cookies'] = $cookies; } } return $args; } if (thegem_get_option('product_archive_type') !== 'grid'){ remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 ); remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description', 10 ); add_action( 'woocommerce_after_shop_loop', 'thegem_woocommerce_after_shop_content', 15); add_action( 'woocommerce_after_shop_loop', 'woocommerce_taxonomy_archive_description', 15 ); add_action( 'woocommerce_after_shop_loop', 'woocommerce_product_archive_description', 15 ); } remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 ); remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 ); add_action('woocommerce_after_shop_loop', 'thegem_woocommerce_product_page_ajax_notification', 55); remove_action('woocommerce_before_shop_loop', 'woocommerce_result_count', 20); remove_action('woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30); add_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_content', 4); add_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_loop_start', 11); add_action('woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 15); add_action('woocommerce_before_shop_loop', 'woocommerce_breadcrumb', 20); add_action('woocommerce_before_shop_loop', 'thegem_woocommerce_product_per_page_select', 30); add_action('woocommerce_before_shop_loop', 'woocommerce_result_count', 40); add_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_loop_end', 45); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); add_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10); remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 ); remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 ); add_action('woocommerce_shop_loop_item_labels', 'woocommerce_show_product_loop_sale_flash', 5); add_action('woocommerce_shop_loop_item_labels', 'thegem_woocommerce_show_product_loop_featured_flash', 10); add_action('woocommerce_shop_loop_item_labels', 'thegem_woocommerce_show_product_loop_out_of_stock_flash', 10); add_action('woocommerce_shop_loop_item_image', 'woocommerce_template_loop_product_thumbnail', 10); add_action('woocommerce_shop_loop_item_image', 'thegem_woocommerce_template_loop_product_hover_thumbnail', 15); add_action('woocommerce_shop_loop_item_image', 'thegem_woocommerce_template_loop_product_quick_view', 40); add_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); add_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_link', 15); add_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_wishlist', 20); //add_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_linebreak', 17); add_action('thegem_woocommerce_single_product_left', 'thegem_woocommerce_single_product_gallery', 5); add_action('thegem_woocommerce_single_product_left', 'thegem_woocommerce_single_product_gallery_alternative', 5); add_action('thegem_woocommerce_single_product_left', 'thegem_woocommerce_single_product_gallery_grid', 5); if (!thegem_get_option('product_hide_social_sharing')){ add_action('thegem_woocommerce_single_product_left', 'thegem_socials_sharing', 10); add_action('woocommerce_before_single_product_summary', 'thegem_socials_sharing',30); } add_action('thegem_woocommerce_single_product_left', 'woocommerce_template_single_meta', 15); add_action('woocommerce_before_single_product_summary', 'woocommerce_template_single_meta', 35); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50); add_action('thegem_woocommerce_single_product_quick_view_left', 'thegem_woocommerce_single_product_quick_view_gallery', 5); if (thegem_is_quick_view_default()) { add_action( 'thegem_woocommerce_single_product_quick_view_left', 'thegem_woocommerce_single_product_quick_view_details', 10 ); } add_action('thegem_woocommerce_single_product_right', 'thegem_woocommerce_back_to_shop_button', 5); add_action('woocommerce_single_product_summary', 'thegem_woocommerce_back_to_shop_button', 4); add_action('woocommerce_single_product_summary', 'thegem_woocommerce_product_page_navigation', 5); add_action('woocommerce_single_product_summary', 'thegem_woocommerce_product_page_attribute', 6); add_action('thegem_woocommerce_single_product_right', 'woocommerce_template_single_title', 10); add_action('thegem_woocommerce_single_product_right', 'woocommerce_template_single_rating', 20); add_action('thegem_woocommerce_single_product_right', 'thegem_woocommerce_rating_separator', 25); add_action('thegem_woocommerce_single_product_right', 'woocommerce_template_single_price', 30); add_action('thegem_woocommerce_single_product_right', 'woocommerce_template_single_excerpt', 35); add_action('thegem_woocommerce_single_product_right', 'woocommerce_template_single_add_to_cart', 45); add_action('thegem_woocommerce_single_product_right', 'thegem_woocommerce_size_guide', 50); add_action('woocommerce_single_product_summary', 'thegem_woocommerce_size_guide', 35); add_action('woocommerce_after_single_product', 'thegem_woocommerce_product_page_ajax_notification', 55); add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'thegem_woocommerce_dropdown_variation_attribute_options_args', 20 ); add_filter( 'woocommerce_product_description_heading', '__return_false', 20 ); add_filter( 'woocommerce_product_additional_information_heading', '__return_false', 20 ); add_action('thegem_woocommerce_single_product_quick_view_right', 'woocommerce_template_single_title', 10); add_action('thegem_woocommerce_single_product_quick_view_right', 'thegem_woocommerce_product_page_attribute', 15); add_action('thegem_woocommerce_single_product_quick_view_right', 'woocommerce_template_single_rating', 20); add_action('thegem_woocommerce_single_product_quick_view_right', 'woocommerce_template_single_price', 30); add_action('thegem_woocommerce_single_product_quick_view_right', 'woocommerce_template_single_excerpt', 35); add_action('thegem_woocommerce_single_product_quick_view_right', 'woocommerce_template_single_add_to_cart', 45); add_action('thegem_woocommerce_single_product_quick_view_right', 'woocommerce_template_single_meta', 55); add_action('thegem_woocommerce_single_product_quick_view_bottom', 'thegem_product_quick_view_navigation', 10); if (thegem_is_quick_view_default()) { add_action('thegem_woocommerce_single_product_quick_view_bottom', 'thegem_woocommerce_product_page_ajax_notification', 15); } add_action('thegem_woocommerce_after_add_to_cart_button', 'thegem_yith_wcwl_add_to_wishlist_button'); add_filter('yith_wcwl_show_add_to_wishlist', '__return_false', 20); remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10); add_action('thegem_woocommerce_single_product_bottom', 'woocommerce_output_product_data_tabs', 5); add_action('thegem_woocommerce_single_product_bottom', 'thegem_woocommerce_single_product_navigation', 10); add_action('thegem_woocommerce_single_product_bottom', 'thegem_woocommerce_single_product_page_content', 15); add_action('thegem_woocommerce_after_single_product', 'woocommerce_output_related_products', 5); remove_action( 'woocommerce_shop_loop_subcategory_title', 'woocommerce_template_loop_category_title', 10 ); add_action( 'woocommerce_shop_loop_subcategory_title', 'thegem_woocommerce_template_loop_category_title', 10 ); add_filter( 'woocommerce_review_gravatar_size', 'thegem_woocommerce_review_gravatar_size', 20 ); add_filter( 'woocommerce_product_review_comment_form_args', 'thegem_woocommerce_product_review_comment_form_args', 20 ); function thegem_woocommerce_product_page_init(){ global $thegem_product_data; $params = [ 'isLegacy' => $thegem_product_data['product_page_layout'] == 'legacy', 'isGalleryNative' => $thegem_product_data['product_gallery'] == 'native', 'isGalleryGrid' => $thegem_product_data['product_gallery_type'] == 'grid', 'isGalleryGridHideGaps' => $thegem_product_data['product_gallery_grid_gaps_hide'], 'isAccordion' => $thegem_product_data['product_page_desc_review_layout'] == 'accordion', 'isAccordionNextToGallery' => $thegem_product_data['product_page_desc_review_layout_acc_position'] == 'next_to_gallery', 'isSocialSharing' => $thegem_product_data['product_page_elements_share'], 'isDescriptionBuilder' => $thegem_product_data['product_page_desc_review_source'] == 'page_builder', 'isMeta' => $thegem_product_data['product_page_elements_sku'] || $thegem_product_data['product_page_elements_categories'] || $thegem_product_data['product_page_elements_tags'], ]; if ( ! $params['isLegacy'] ) { //Meta and socials to right column remove_action( 'thegem_woocommerce_single_product_left', 'thegem_socials_sharing', 10 ); remove_action( 'thegem_woocommerce_single_product_left', 'woocommerce_template_single_meta', 15 ); if ( $params['isMeta'] ) { add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 ); } if ( $params['isSocialSharing'] ) { add_action( 'woocommerce_single_product_summary', 'thegem_socials_sharing', 50 ); } if ( $params['isGalleryNative'] ) { remove_action( 'woocommerce_before_single_product_summary', 'thegem_socials_sharing', 30 ); remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_template_single_meta', 35 ); } if ( $params['isGalleryGrid'] && $params['isGalleryGridHideGaps'] ) { add_action( 'woocommerce_single_product_summary', 'thegem_woocommerce_product_page_breadcrumbs', 4 ); } //Accordion to right column if ( $params['isAccordion'] && $params['isAccordionNextToGallery'] ) { remove_action( 'thegem_woocommerce_single_product_bottom', 'woocommerce_output_product_data_tabs', 5 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs', 35 ); } if ( $params['isDescriptionBuilder'] ) { remove_action( 'thegem_woocommerce_single_product_bottom', 'thegem_woocommerce_single_product_page_content', 15 ); } } } add_action( 'woocommerce_before_single_product', 'thegem_woocommerce_product_page_init'); function thegem_woocommerce_product_page_navigation() { global $product, $thegem_product_data; if ( $thegem_product_data['product_page_layout'] === 'legacy' ) return; $isNavigate = $thegem_product_data['product_page_layout'] != 'legacy' && ( $thegem_product_data['product_page_elements_prev_next'] || $thegem_product_data['product_page_elements_back_to_shop'] ); $back_to_shop_url = 'javascript:void(0);'; switch ( $thegem_product_data['product_page_elements_back_to_shop_link'] ) { case 'main_shop': $back_to_shop_url = get_permalink( wc_get_page_id( 'shop' ) ); break; case 'category': $terms = get_the_terms( $product->get_id(), 'product_cat' ); foreach ( $terms as $term ) { $product_cat_id = $term->term_id; $back_to_shop_url = get_term_link( $product_cat_id, 'product_cat' ); break; } break; case 'custom_url': $back_to_shop_url = esc_url( $thegem_product_data['product_page_elements_back_to_shop_link_custom_url'] ); break; } ?> <?php if ( $isNavigate ): ?> <div class="product-page__nav"> <ul class="product-page__nav-list"> <?php if ( ( $post = get_previous_post() ) && $thegem_product_data['product_page_elements_prev_next'] ): ?> <li> <a class="product-page__nav--prev" href="<?= get_permalink( $post->ID ) ?>"> <?php if ( $thegem_product_data['product_page_elements_preview_on_hover'] ) : $product = wc_get_product( $post->ID ); ?> <div class="product-page__nav-preview-wrap"> <div class="product-page__nav-preview"> <div class="nav-preview__image"><?= get_the_post_thumbnail( $post->ID, 'thegem-product-thumbnail' ) ?></div> <div class="nav-preview__info"> <div class="nav-preview__info-title"> <?= mb_strimwidth( get_the_title( $post->ID ), '0', '20', '...' ) ?> </div> <div class="nav-preview__info-price"><?= $product->get_price_html() ?></div> </div> </div> </div> <?php endif; ?> </a> </li> <?php endif; ?> <?php if ( $thegem_product_data['product_page_elements_back_to_shop'] ): ?> <li> <a class="product-page__nav--back" href="<?= $back_to_shop_url ?>"></a> </li> <?php endif; ?> <?php if ( ( $post = get_next_post() ) && $thegem_product_data['product_page_elements_prev_next'] ): ?> <li> <a class="product-page__nav--next" href="<?= get_permalink( $post->ID ) ?>"> <?php if ( $thegem_product_data['product_page_elements_preview_on_hover'] ) : $product = wc_get_product( $post->ID ); ?> <div class="product-page__nav-preview-wrap"> <div class="product-page__nav-preview"> <div class="nav-preview__image"><?= get_the_post_thumbnail( $post->ID, 'thegem-product-thumbnail' ) ?></div> <div class="nav-preview__info"> <div class="nav-preview__info-title"> <?= mb_strimwidth( get_the_title( $post->ID ), '0', '20', '...' ) ?> </div> <div class="nav-preview__info-price"><?= $product->get_price_html() ?></div> </div> </div> </div> <?php endif; ?> </a> </li> <?php endif; ?> </ul> </div> <?php endif; ?> <?php wp_reset_postdata(); } function thegem_woocommerce_product_page_attribute() { global $product, $thegem_product_data; if ( $thegem_product_data['product_page_layout'] === 'legacy' ) return; $isAttribute = $thegem_product_data['product_page_elements_attributes']; $attr = esc_attr($thegem_product_data['product_page_elements_attributes_data']); $attrArray = wp_get_post_terms($product->get_id(), 'pa_'.$attr, array('fields' => 'names')); ?> <?php if ($isAttribute && !is_wp_error($attrArray) && !empty($attrArray)): ?> <div class="product-page__attribute"><?=implode(", ", $attrArray)?></div> <?php endif; ?> <?php } function thegem_woocommerce_product_page_attribute_clear_text($output) { global $thegem_product_data; if($thegem_product_data['product_page_layout'] === 'legacy') return $output; $text = $thegem_product_data['product_page_button_clear_attributes_text'] ? $thegem_product_data['product_page_button_clear_attributes_text'] : 'Clear selection'; $output = '<div class="product-page__reset-variations hidden">'; $output .= '<a class="reset_variations" href="#"><i class="reset_variations--icon"></i><span>' . esc_html__($text, 'thegem') . '</span></a>'; $output .= '</div>'; return $output; } add_filter('woocommerce_reset_variations_link' , 'thegem_woocommerce_product_page_attribute_clear_text', 15); function thegem_woocommerce_product_page_ajax_add_to_cart() { ob_start(); // phpcs:disable WordPress.Security.NonceVerification.Missing if ( ! isset( $_POST['product_id'] ) ) { return; } $product_id = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $_POST['product_id'] ) ); $product = wc_get_product( $product_id ); $quantity = empty( $_POST['quantity'] ) ? 1 : wc_stock_amount( wp_unslash( $_POST['quantity'] ) ); $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity ); $product_status = get_post_status( $product_id ); $variation_id = $_POST['variation_id']; $variation = $_POST['variation']; if ( $passed_validation && false !== WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variation) && 'publish' === $product_status ) { do_action( 'woocommerce_ajax_added_to_cart', $product_id ); if ( 'yes' === get_option( 'woocommerce_cart_redirect_after_add' ) ) { wc_add_to_cart_message( array( $product_id => $quantity ), true ); } WC_AJAX :: get_refreshed_fragments(); } else { // If there was an error adding to the cart, redirect to the product page to show any errors. $data = array( 'error' => true, 'product_url' => apply_filters( 'woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id ), ); wp_send_json( $data ); } // phpcs:enable } add_action('wp_ajax_woocommerce_ajax_add_to_cart', 'thegem_woocommerce_product_page_ajax_add_to_cart'); add_action('wp_ajax_nopriv_woocommerce_ajax_add_to_cart', 'thegem_woocommerce_product_page_ajax_add_to_cart'); function thegem_woocommerce_product_page_ajax_notification($params = false) { global $thegem_product_data; if (!$params) { if ( ($thegem_product_data && $thegem_product_data['product_page_layout'] === 'legacy') || (!is_singular( 'product' ) && thegem_get_option('product_archive_type') !== 'grid')) return; $params = array( 'style_uid' => 'to_products', 'stay_visible' => thegem_get_option('product_archive_stay_visible'), 'added_cart_text' => thegem_get_option('product_archive_added_cart_text'), 'view_cart_button_text' => thegem_get_option('product_archive_view_cart_button_text'), 'checkout_button_text' => thegem_get_option('product_archive_checkout_button_text'), 'added_wishlist_text' => thegem_get_option('product_archive_added_wishlist_text'), 'view_wishlist_button_text' => thegem_get_option('product_archive_view_wishlist_button_text'), 'removed_wishlist_text' => thegem_get_option('product_archive_removed_wishlist_text'), ); } ?> <div class="thegem-popup-notification-wrap" data-style-uid="<?php echo esc_attr($params['style_uid']); ?>"> <div class="thegem-popup-notification cart" data-timing="<?= esc_attr($params['stay_visible']); ?>"> <div class="notification-message"> <?= esc_html($params['added_cart_text']); ?> <span class="buttons"> <a class="button" href="<?= esc_url(wc_get_cart_url()); ?>"><?= esc_html($params['view_cart_button_text']); ?></a> <a class="button" href="<?= esc_url(wc_get_checkout_url()); ?>"><?= esc_html($params['checkout_button_text']); ?></a> </span> </div> </div> <?php if (defined('YITH_WCWL')): ?> <div class="thegem-popup-notification wishlist-add" data-timing="<?= esc_attr($params['stay_visible']); ?>"> <div class="notification-message"> <?= esc_html($params['added_wishlist_text']); ?> <span class="buttons"> <a class="button" href="<?= esc_url(YITH_WCWL()->get_wishlist_url()); ?>"><?= esc_html($params['view_wishlist_button_text']); ?></a> </span> </div> </div> <div class="thegem-popup-notification wishlist-remove" data-timing="<?php echo esc_attr($params['stay_visible']); ?>"> <div class="notification-message"> <?php echo esc_html($params['removed_wishlist_text']); ?> </div> </div> <?php endif; ?> </div> <?php } function thegem_woocommerce_product_page_breadcrumbs() { global $product; $product_page_data = thegem_get_output_page_settings($product->get_id()); $params = array( 'bottom_spacing' => $product_page_data['page_layout_breadcrumbs_bottom_spacing'], 'breadcrumbs' => $product_page_data['page_layout_breadcrumbs'], 'breadcrumbs_alignment' => $product_page_data['page_layout_breadcrumbs_alignment'], 'header_transparent' => $product_page_data['header_transparent'], ); if (!is_post_type_archive('product') && $params['breadcrumbs']) { ?> <div class="page-breadcrumbs page-breadcrumbs--<?=$params['breadcrumbs_alignment']?>" style="<?php if ($params['header_transparent']) : ?>min-height: 40px; align-items: flex-start;<?php endif;?> <?php if ($params['bottom_spacing']) : ?>margin-bottom: <?=esc_attr($params['bottom_spacing']).'px'?><?php endif; ?>"> <?= gem_breadcrumbs(true) ?> </div> <?php } } function thegem_cart_menu($items, $args) { if(thegem_is_plugin_active('woocommerce/woocommerce.php') && $args->menu_id == 'primary-menu' && !thegem_get_option('hide_card_icon')) { if (thegem_get_option('cart_icon_pack') && thegem_get_option('cart_icon')) { wp_enqueue_style('icons-'.thegem_get_option('cart_icon_pack')); } $count = thegem_get_cart_count(); ob_start(); woocommerce_mini_cart(); $minicart = ob_get_clean(); $items .= '<li class="menu-item menu-item-cart not-dlmenu"><a href="'.esc_url(get_permalink(wc_get_page_id('cart'))).'" class="minicart-menu-link ' . ($count == 0 ? 'empty' : '') . (thegem_get_option('cart_label_type') == 1 ? ' circle-count' : '') . '">' . '<span class="minicart-item-count">' . $count . '</span>' . '</a><div class="minicart"><div class="widget_shopping_cart_content">'.$minicart.'</div></div></li>'; } return $items; } add_filter('wp_nav_menu_items', 'thegem_cart_menu', 11, 2); function thegem_woocommerce_placeholder_img($val, $size, $dimensions) { return '<span class="product-dummy-wrapper" style="max-width: '.$dimensions['width'].'px;"><span class="product-dummy" style="padding-bottom: '.($dimensions['height']*100/$dimensions['width']).'%;"></span></span>'; } add_filter('woocommerce_placeholder_img', 'thegem_woocommerce_placeholder_img', 10, 3); function thegem_cart_short_info() { $thegem_cart_layout = thegem_get_option('cart_layout', 'modern'); if($thegem_cart_layout == 'modern') return ; echo '<div class="cart-short-info">'.sprintf(wp_kses(__('You Have <span class="items-count">%d Items</span> In Your Cart', 'thegem'), array('span' => array('class' => array()))), WC()->cart->cart_contents_count).'</div>'; } add_action('woocommerce_before_cart', 'thegem_cart_short_info', 15); add_action('woocommerce_before_cart', 'woocommerce_breadcrumb', 10); function thegem_cart_items_html_output() { thegem_cart_short_info(); die(-1); } add_action('wp_ajax_thegem_cart_items_html', 'thegem_cart_items_html_output'); add_action('wp_ajax_nopriv_thegem_cart_items_html', 'thegem_cart_items_html_output'); function thegem_wc_add_to_cart_message($message, $products) { $titles = array(); $count = 0; $show_qty = true; if ( ! is_array( $products ) ) { $products = array( $products => 1 ); $show_qty = false; } if ( ! $show_qty ) { $products = array_fill_keys( array_keys( $products ), 1 ); } foreach ( $products as $product_id => $qty ) { $titles[] = ( $qty > 1 ? absint( $qty ) . ' × ' : '' ) . sprintf( _x( '“%s”', 'Item name in quotes', 'woocommerce' ), strip_tags( get_the_title( $product_id ) ) ); $count += $qty; } $titles = array_filter( $titles ); $added_text = sprintf( _n( '%s has been added to your cart.', '%s have been added to your cart.', $count, 'woocommerce' ), wc_format_list_of_items( $titles ) ); // Output success messages if ( 'yes' === get_option( 'woocommerce_cart_redirect_after_add' ) ) { $return_to = apply_filters( 'woocommerce_continue_shopping_redirect', wc_get_raw_referer() ? wp_validate_redirect( wc_get_raw_referer(), false ) : wc_get_page_permalink( 'shop' ) ); $message = sprintf('<div class="cart-added"><div class="cart-added-text">%s</div><div class="cart-added-button"><a href="%s" class="gem-button button wc-forward">%s</a></div></div>', $added_text, esc_url($return_to), esc_html__('Continue shopping', 'woocommerce')); } else { $message = sprintf('<div class="cart-added"><div class="cart-added-text">%s</div><div class="cart-added-button"><a href="%s" class="gem-button button wc-forward">%s</a></div></div>', $added_text, esc_url(wc_get_page_permalink( 'cart' )), esc_html__('View cart', 'woocommerce')); } return $message; } add_filter('wc_add_to_cart_message_html', 'thegem_wc_add_to_cart_message', 10, 2); function thegem_product_add_page_settings_boxes() { add_meta_box('thegem_page_title', esc_html__('Page Title', 'thegem'), 'thegem_page_title_settings_box', 'product', 'normal', 'high'); add_meta_box('thegem_page_sidebar', esc_html__('Page Sidebar', 'thegem'), 'thegem_page_sidebar_settings_box', 'product', 'normal', 'high'); } if ($thegem_use_old_page_options) { add_action('add_meta_boxes', 'thegem_product_add_page_settings_boxes'); } function thegem_save_product_page_data($post_id) { if( !isset($_POST['thegem_page_title_settings_box_nonce']) || !isset($_POST['thegem_page_sidebar_settings_box_nonce']) ) { return; } if( !wp_verify_nonce($_POST['thegem_page_title_settings_box_nonce'], 'thegem_page_title_settings_box') || !wp_verify_nonce($_POST['thegem_page_sidebar_settings_box_nonce'], 'thegem_page_sidebar_settings_box') ) { return; } if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } if(isset($_POST['post_type']) && in_array($_POST['post_type'], array('product'))) { if(!current_user_can('edit_page', $post_id)) { return; } } else { if(!current_user_can('edit_post', $post_id)) { return; } } if(!isset($_POST['thegem_page_data']) || !is_array($_POST['thegem_page_data'])) { return; } $page_data = array_merge( thegem_get_sanitize_page_title_data(0, $_POST['thegem_page_data']), thegem_get_sanitize_page_sidebar_data(0, $_POST['thegem_page_data']) ); update_post_meta($post_id, 'thegem_page_data', $page_data); } if ($thegem_use_old_page_options) { add_action('save_post', 'thegem_save_product_page_data'); } function thegem_product_tabs( $tabs = array() ) { global $product, $post, $thegem_product_data; $isLegacy = $thegem_product_data['product_page_layout'] == 'legacy'; $isTabs = $thegem_product_data['product_page_desc_review_layout'] == 'tabs'; $isAccordion = $thegem_product_data['product_page_desc_review_layout'] == 'accordion'; $isTabsLegacy = $thegem_product_data['product_page_desc_review_layout_tabs_style'] == 'legacy'; $isFullWidth = $thegem_product_data['product_page_layout_fullwidth']; $isDescriptionBuilder = $thegem_product_data['product_page_desc_review_source'] == 'page_builder'; // Description tab - shows product content if ( get_post_meta( $post->ID, 'thegem_product_description', true ) ) { $tabs['description'] = array( 'title' => esc_html__( 'Description', 'woocommerce' ), 'priority' => 10, 'callback' => 'woocommerce_product_description_tab' ); } elseif ( isset( $tabs['description'] ) ) { unset( $tabs['description'] ); } //Show/Hide and Rename Tabs if (!$isLegacy) { $show_description_tab = false; $description_tab_callback = ''; if ( $thegem_product_data['product_page_desc_review_description']) { if($isDescriptionBuilder) { $vc_show_content = false; if(thegem_is_plugin_active('js_composer/js_composer.php')) { global $vc_manager; if($vc_manager->mode() == 'admin_frontend_editor' || $vc_manager->mode() == 'admin_page' || $vc_manager->mode()== 'page_editable') { $vc_show_content = true; } } if(get_the_content() || $vc_show_content) { $show_description_tab = true; $description_tab_callback = 'thegem_woocommerce_single_product_page_content'; } } elseif(get_post_meta( $post->ID, 'thegem_product_description', true )) { $show_description_tab = true; $description_tab_callback = 'woocommerce_product_description_tab'; } } if ( $show_description_tab ) { $tabs['description'] = array( 'title' => esc_html__( $thegem_product_data['product_page_desc_review_description_title'], 'woocommerce'), 'priority' => 10, 'callback' => $description_tab_callback ); } else { unset( $tabs['description'] ); } if ( $thegem_product_data['product_page_desc_review_additional_info'] ) { $tabs['additional_information'] = array( 'title' => esc_html__( $thegem_product_data['product_page_desc_review_additional_info_title'], 'woocommerce'), 'priority' => 20, 'callback' => 'woocommerce_product_additional_information_tab', ); } elseif ( isset( $tabs['additional_information'] ) ) { unset( $tabs['additional_information'] ); } if ( $thegem_product_data['product_page_desc_review_reviews'] ) { $tabs['reviews'] = array( 'title' => $product->get_review_count() > 0 ? sprintf(esc_html__( $thegem_product_data['product_page_desc_review_reviews_title'], 'woocommerce' ).' <sup>%d</sup>', $product->get_review_count()) : esc_html__( $thegem_product_data['product_page_desc_review_reviews_title']), 'priority' => 30, 'callback' => 'comments_template', ); } elseif ( isset( $tabs['reviews'] )) { unset( $tabs['reviews'] ); } if ($thegem_product_data['product_page_desc_review_layout'] == 'accordion' && $thegem_product_data['product_page_desc_review_layout_acc_position'] == 'next_to_gallery' && !$isFullWidth){ unset( $tabs['reviews'] ); } } return $tabs; } add_filter( 'woocommerce_product_tabs', 'thegem_product_tabs', 11 ); function thegem_woocommerce_subcategory_thumbnail( $category ) { $small_thumbnail_size = apply_filters( 'single_category_small_thumbnail_size', 'shop_catalog' ); $thumbnail_id = get_term_meta( $category->term_id, 'thumbnail_id', true); $image = ''; if ( $thumbnail_id ) { if(thegem_get_option('woocommerce_activate_images_sizes')) { $image = thegem_get_thumbnail_src( $thumbnail_id, 'thegem-product-catalog' ); } else { $image = wp_get_attachment_image_src( $thumbnail_id, $small_thumbnail_size ); } global $thegem_product_categories_images; if($thegem_product_categories_images) { $image = wp_get_attachment_image_src( $thumbnail_id, 'thegem-custom-product-categories'); } } if ( $image ) { $image[0] = str_replace( ' ', '%20', $image[0] ); echo '<img src="' . esc_url( $image[0] ) . '" width="'.esc_attr($image[1]).'" height="'.esc_attr($image[2]).'" alt="' . esc_attr( $category->name ) . '" class="img-responsive" />'; } else { if(thegem_get_option('woocommerce_activate_images_sizes')) { echo wc_placeholder_img(array(thegem_get_option('woocommerce_catalog_image_width'), thegem_get_option('woocommerce_catalog_image_height'), 1)); } else { echo wc_placeholder_img($small_thumbnail_size); } } } remove_action('woocommerce_before_subcategory_title', 'woocommerce_subcategory_thumbnail', 10); add_action('woocommerce_before_subcategory_title', 'thegem_woocommerce_subcategory_thumbnail', 10); add_filter('woocommerce_add_to_cart_fragments', 'gem_woocommerce_header_dropdown_cart_fragment'); function gem_woocommerce_header_dropdown_cart_fragment( $fragments ) { $count = thegem_get_cart_count(); $fragments['a.minicart-menu-link:not(.temp)'] = '<a href="'.esc_url(get_permalink(wc_get_page_id('cart'))).'" class="minicart-menu-link ' . ($count == 0 ? 'empty' : '') . (thegem_get_option('cart_label_type') == 1 ? ' circle-count' : '') . '"><span class="minicart-item-count">'.$count.'</span></a>'; $fragments['a.minicart-menu-link.temp'] = '<a href="'.esc_url(get_permalink(wc_get_page_id('cart'))).'" class="minicart-menu-link temp ' . ($count == 0 ? 'empty' : '') . (thegem_get_option('cart_label_type') == 1 ? ' circle-count' : '') . '"><span class="minicart-item-count">'.$count.'</span></a>'; return $fragments; } function thegem_single_product_small_thumbnail_size($size) { global $thegem_product_categories_images; if($thegem_product_categories_images) { return 'thegem-custom-product-categories'; } return $size; } add_filter( 'single_category_small_thumbnail_size', 'thegem_single_product_small_thumbnail_size' ); function thegem_woocommerce_get_image_size_categories($size) { $size = array( 'width' => '1170', 'height' => '1117', 'crop' => 1 ); return $size; } add_filter( 'woocommerce_get_image_size_thegem-custom-product-categories', 'thegem_woocommerce_get_image_size_categories' ); function thegem_woocommerce_account_menu_item_classes($classes, $endpoint) { if(in_array('is-active', $classes)) { $classes[] = 'current-menu-ancestor'; } return $classes; } add_filter('woocommerce_account_menu_item_classes', 'thegem_woocommerce_account_menu_item_classes', 10, 2); function thegem_product_quick_view_output() { $nonce = empty($_REQUEST['ajax_nonce']) ? '' : $_REQUEST['ajax_nonce']; $product_id = empty($_REQUEST['product_id']) ? '' : $_REQUEST['product_id']; if(!wp_verify_nonce($nonce, 'product_quick_view_ajax_security' )) { die(-1); } $args = array( 'posts_per_page' => 1, 'post_type' => 'product', 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'no_found_rows' => 1, ); if ( isset( $product_id ) ) { $args['p'] = absint( $product_id ); } $single_product = new WP_Query( $args ); $preselected_id = '0'; ob_start(); while ( $single_product->have_posts() ) : $single_product->the_post(); $GLOBALS['thegem_product_data'] = thegem_get_output_product_page_data(get_the_id()); //$GLOBALS['thegem_product_data']['product_page_layout'] = 'legacy'; ?> <div class="single-product" data-product-page-preselected-id="<?php echo esc_attr( $preselected_id ); ?>" data-quick-view="<?=thegem_get_option('product_gallery')?>"> <?php wc_get_template_part( 'content', 'single-product-quick-view' ); ?> </div> <?php endwhile; // end of the loop. wp_reset_postdata(); $time2= time(); echo '<div class="woocommerce">' . ob_get_clean() . '</div>'; die(-1); } add_action('wp_ajax_thegem_product_quick_view', 'thegem_product_quick_view_output'); add_action('wp_ajax_nopriv_thegem_product_quick_view', 'thegem_product_quick_view_output'); function thegem_catalog_view() { if(thegem_get_option('catalog_view', false, false, true)) { remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); remove_action('thegem_woocommerce_single_product_right', 'woocommerce_template_single_price', 30); remove_action('thegem_woocommerce_single_product_right', 'woocommerce_template_single_add_to_cart', 45); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30); remove_action('thegem_woocommerce_single_product_quick_view_right', 'woocommerce_template_single_price', 30); remove_action('thegem_woocommerce_single_product_quick_view_right', 'woocommerce_template_single_add_to_cart', 45); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10); remove_action('thegem_woocommerce_single_product_left', 'thegem_socials_sharing', 10); remove_action('thegem_woocommerce_single_product_left', 'woocommerce_template_single_meta', 15); if (!thegem_get_option('product_hide_social_sharing')){ add_action('thegem_woocommerce_single_product_right', 'thegem_socials_sharing', 65); } add_action('thegem_woocommerce_single_product_right', 'woocommerce_template_single_meta', 70); remove_action('wp_nav_menu_items', 'thegem_cart_menu', 11); } } add_action('init', 'thegem_catalog_view'); add_action('wp', 'thegem_catalog_view'); function thegem_woocommerce_form_field_args_callback($args, $key, $value) { if (stripos($key, 'shipping_') === 0) { $args['autofocus'] = false; } return $args; } add_filter('woocommerce_form_field_args', 'thegem_woocommerce_form_field_args_callback', 10, 3); function thegem_woocommerce_loop_add_to_cart_link($link, $product) { if (strripos($link, 'add_to_cart_button') === false) { return ''; } return $link; } add_filter('woocommerce_loop_add_to_cart_link', 'thegem_woocommerce_loop_add_to_cart_link', 10, 2); function thegem_woocommerce_structured_data() { if(isset($GLOBALS['woocommerce']) && isset($GLOBALS['woocommerce']->structured_data)) { add_action('thegem_woocommerce_single_product_right', array($GLOBALS['woocommerce']->structured_data, 'generate_product_data'), 60); } } add_action('init', 'thegem_woocommerce_structured_data'); function thegem_single_product_archive_thumbnail_size($size) { if(thegem_get_option('woocommerce_activate_images_sizes')) { return 'thegem-product-catalog'; } return $size; } add_filter( 'single_product_archive_thumbnail_size', 'thegem_single_product_archive_thumbnail_size' ); add_filter( 'subcategory_archive_thumbnail_size', 'thegem_single_product_archive_thumbnail_size' ); function thegem_woocommerce_get_image_size_thumbnail($size) { if(thegem_get_option('woocommerce_activate_images_sizes')) { return array( 'width' => thegem_get_option('woocommerce_thumbnail_image_width'), 'height' => thegem_get_option('woocommerce_thumbnail_image_height'), 'crop' => 1, ); } return $size; } add_filter( 'woocommerce_get_image_size_thumbnail', 'thegem_woocommerce_get_image_size_thumbnail' ); function thegem_woocommerce_product_get_image( $image, $product, $size, $attr, $placeholder, $image_o) { if(thegem_get_option('woocommerce_activate_images_sizes') && $size == 'thegem-product-catalog') { if ( $product->get_image_id() ) { $image = thegem_get_thumbnail_image($product->get_image_id(), $size, false, $attr); } elseif ( $product->get_parent_id() ) { $parent_product = wc_get_product( $product->get_parent_id() ); $image = $parent_product->get_image( $size, $attr, $placeholder ); } elseif ( $placeholder ) { $image = wc_placeholder_img( $size ); } else { $image = ''; } } return $image; } add_filter( 'woocommerce_product_get_image', 'thegem_woocommerce_product_get_image', 10, 6); function thegem_mobile_cart_toggle() { if(thegem_is_plugin_active('woocommerce/woocommerce.php') && thegem_get_option('mobile_cart_position', 'top') == 'top' && !thegem_get_option('hide_card_icon') && !thegem_get_option('catalog_view')) { if (thegem_get_option('cart_icon_pack') && thegem_get_option('cart_icon')) { wp_enqueue_style('icons-'.thegem_get_option('cart_icon_pack')); } $count = thegem_get_cart_count(); echo '<div class="mobile-cart"><a href="'.esc_url(get_permalink(wc_get_page_id('cart'))).'" class="minicart-menu-link temp ' . ($count == 0 ? 'empty' : '') . (thegem_get_option('cart_label_type') == 1 ? ' circle-count' : '') . '">' . '<span class="minicart-item-count">' . $count . '</span>' . '</a></div><div class="mobile-minicart-overlay"></div>'; } } add_action('thegem_header_menu_opposite', 'thegem_mobile_cart_toggle'); function thegem_mobile_cart_before_mini_cart() { if(thegem_get_option('mobile_cart_position', 'top') == 'top' && !thegem_get_option('hide_card_icon') && !thegem_get_option('catalog_view')) { echo '<div class="mobile-cart-header">'; echo '<div class="mobile-cart-header-title title-h6">'.esc_html__('Cart', 'woocommerce').'</div>'; echo '<a class="mobile-cart-header-close" href="#"><span class="cart-close-line-1"></span><span class="cart-close-line-2"></span></a>'; echo '</div>'; } } add_action('woocommerce_before_mini_cart', 'thegem_mobile_cart_before_mini_cart'); function thegem_mobile_cart_toggle_body_class($classes) { if(thegem_is_plugin_active('woocommerce/woocommerce.php') && thegem_get_option('mobile_cart_position', 'top') == 'top' && !thegem_get_option('hide_card_icon') && !thegem_get_option('catalog_view') && empty($_REQUEST['thegem_header_test'])) { $classes[] = 'mobile-cart-position-top'; } return $classes; } add_filter('body_class', 'thegem_mobile_cart_toggle_body_class'); if (!function_exists('thegem_woocommerce_grid_content')) { function thegem_woocommerce_grid_content($show_widgets) { global $post; $portfolio_posttemp = $post; if (thegem_get_option('product_archive_category_description_position') === 'above' ) { do_action('woocommerce_archive_description'); } remove_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_content', 4); remove_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_loop_start', 11); remove_action('woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 15); remove_action('woocommerce_before_shop_loop', 'thegem_woocommerce_product_per_page_select', 30); remove_action('woocommerce_before_shop_loop', 'woocommerce_result_count', 40); remove_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_loop_end', 45); do_action('woocommerce_before_shop_loop'); if (thegem_get_option('product_archive_preset_type') == 'on_image') { $hover_effect = thegem_get_option('product_archive_image_hover_effect_image'); $caption_position = 'image'; $preset = 'image-' . thegem_get_option('product_archive_preset_on_image'); } else if (thegem_get_option('product_archive_preset_type') == 'below') { $hover_effect = thegem_get_option('product_archive_image_hover_effect_page'); $caption_position = 'page'; $preset = 'below-' . thegem_get_option('product_archive_preset_below'); } else { $hover_effect = thegem_get_option('product_archive_image_hover_effect_hover'); $caption_position = 'hover'; $preset = 'hover-' . thegem_get_option('product_archive_preset_on_hover'); } $queried = get_queried_object(); $params = array( 'portfolio_uid' => '', 'layout' => thegem_get_option('product_archive_layout'), 'columns_desktop' => thegem_get_option('product_archive_columns_desktop'), 'columns_tablet' => thegem_get_option('product_archive_columns_tablet'), 'columns_mobile' => thegem_get_option('product_archive_columns_mobile'), 'columns_100' => thegem_get_option('product_archive_columns_100'), 'image_gaps' => thegem_get_option('product_archive_size_desktop'), 'image_gaps_tablet' => thegem_get_option('product_archive_size_tablet'), 'image_gaps_mobile' => thegem_get_option('product_archive_size_mobile'), 'caption_position' => $caption_position, 'image_aspect_ratio' => thegem_get_option('product_archive_image_aspect_ratio'), 'quick_view' => thegem_get_option('product_archive_quick_view'), 'quick_view_text' => thegem_get_option('product_archive_quick_view_text'), 'orderby' => thegem_get_option('product_archive_orderby'), 'order' => thegem_get_option('product_archive_order'), 'product_show_sorting' => thegem_get_option('product_archive_show_sorting'), 'product_show_categories' => thegem_get_option('product_archive_show_categories_desktop'), 'product_show_categories_tablet' => thegem_get_option('product_archive_show_categories_tablet'), 'product_show_categories_mobile' => thegem_get_option('product_archive_show_categories_mobile'), 'product_show_title' => thegem_get_option('product_archive_show_title'), 'product_show_price' => thegem_get_option('catalog_view') ? '' : thegem_get_option('product_archive_show_price'), 'product_show_reviews' => thegem_get_option('product_archive_show_reviews_desktop'), 'product_show_reviews_tablet' => thegem_get_option('product_archive_show_reviews_tablet'), 'product_show_reviews_mobile' => thegem_get_option('product_archive_show_reviews_mobile'), 'attribute_swatches' => thegem_get_option('product_archive_show_swatches_desktop'), 'attribute_swatches_tablet' => thegem_get_option('product_archive_show_swatches_tablet'), 'attribute_swatches_mobile' => thegem_get_option('product_archive_show_swatches_mobile'), 'product_show_add_to_cart' => thegem_get_option('catalog_view') ? '' : thegem_get_option('product_archive_show_add_to_cart'), 'product_show_add_to_cart_mobiles' => thegem_get_option('catalog_view') ? '' : thegem_get_option('product_archive_show_add_to_cart'), 'add_to_cart_type' => thegem_get_option('product_archive_add_to_cart_type'), 'cart_button_show_icon' => thegem_get_option('product_archive_cart_button_show_icon'), 'cart_button_text' => thegem_get_option('product_archive_cart_button_text'), 'cart_button_pack' => thegem_get_option('product_archive_cart_icon_pack'), 'cart_icon_' . thegem_get_option('product_archive_cart_icon_pack') => thegem_get_option('product_archive_cart_icon'), 'select_options_button_text' => thegem_get_option('product_archive_select_options_button_text'), 'select_options_pack' => thegem_get_option('product_archive_select_options_icon_pack'), 'select_options_icon_' . thegem_get_option('product_archive_select_options_icon_pack') => thegem_get_option('product_archive_select_options_icon'), 'product_show_wishlist' => thegem_get_option('product_archive_show_wishlist'), 'add_wishlist_icon_pack' => thegem_get_option('product_archive_add_wishlist_icon_pack'), 'wishlist_icon_' . thegem_get_option('product_archive_add_wishlist_icon_pack') => thegem_get_option('product_archive_add_wishlist_icon'), 'added_wishlist_icon_pack' => thegem_get_option('product_archive_added_wishlist_icon_pack'), 'added_wishlist_icon_' . thegem_get_option('product_archive_added_wishlist_icon_pack') => thegem_get_option('product_archive_added_wishlist_icon'), 'items_per_page' => thegem_get_option('product_archive_items_per_page_desktop'), 'show_pagination' => thegem_get_option('product_archive_show_pagination'), 'pagination_type' => thegem_get_option('product_archive_pagination_type'), 'pagination_more_button_separator_style' => 'gem-button-separator-type-single', 'more_button_text' => thegem_get_option('product_archive_more_button_text'), 'more_icon_pack' => thegem_get_option('product_archive_more_icon_pack'), 'more_icon_' . thegem_get_option('product_archive_more_icon_pack') => thegem_get_option('product_archive_more_icon'), 'more_stretch_full_width' => thegem_get_option('product_archive_more_stretch_full_width'), 'more_show_separator' => thegem_get_option('product_archive_more_show_separator'), 'not_found_text' => thegem_get_option('product_archive_not_found_text'), 'loading_animation' => thegem_get_option('product_archive_loading_animation'), 'animation_effect' => thegem_get_option('product_archive_animation_effect'), 'ignore_highlights' => thegem_get_option('product_archive_ignore_highlights'), 'featured_only' => thegem_get_option('product_archive_featured_only'), 'sale_only' => thegem_get_option('product_archive_sale_only'), 'image_hover_effect_image' => thegem_get_option('product_archive_image_hover_effect_image'), 'image_hover_effect_page' => thegem_get_option('product_archive_image_hover_effect_page'), 'image_hover_effect_hover' => thegem_get_option('product_archive_image_hover_effect_hover'), 'image_hover_effect_fallback' => thegem_get_option('product_archive_image_hover_effect_fallback'), 'caption_container_preset' => thegem_get_option('product_archive_caption_container_preset'), 'product_separator' => thegem_get_option('product_archive_caption_container_separator'), 'caption_container_preset_hover' => thegem_get_option('product_archive_caption_container_preset_hover'), 'caption_container_alignment_hover' => thegem_get_option('product_archive_caption_container_alignment_hover'), 'buttons_icon_alignment' => thegem_get_option('product_archive_button_icon_alignment'), 'button_cart_color_normal' => thegem_get_option('product_archive_button_add_to_cart_text_color'), 'button_cart_color_hover' => thegem_get_option('product_archive_button_add_to_cart_text_color_hover'), 'button_cart_background_color_normal' => thegem_get_option('product_archive_button_add_to_cart_background_color'), 'button_cart_background_color_hover' => thegem_get_option('product_archive_button_add_to_cart_background_color_hover'), 'button_cart_border_color_normal' => thegem_get_option('product_archive_button_add_to_cart_border_color'), 'button_cart_border_color_hover' => thegem_get_option('product_archive_button_add_to_cart_border_color_hover'), 'button_options_color_normal' => thegem_get_option('product_archive_button_select_options_text_color'), 'button_options_color_hover' => thegem_get_option('product_archive_button_select_options_text_color_hover'), 'button_options_background_color_normal' => thegem_get_option('product_archive_button_select_options_background_color'), 'button_options_background_color_hover' => thegem_get_option('product_archive_button_select_options_background_color_hover'), 'button_options_border_color_normal' => thegem_get_option('product_archive_button_select_options_border_color'), 'button_options_border_color_hover' => thegem_get_option('product_archive_button_select_options_border_color_hover'), 'product_show_new' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_new') : '', 'product_show_sale' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_sale') : '', 'product_show_out' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_out_stock') : '', 'labels_design' => thegem_get_option('product_labels_style'), 'new_label_text' => thegem_get_option('product_label_new_text'), 'sale_label_type' => thegem_get_option('product_label_sale_type'), 'sale_label_prefix' => thegem_get_option('product_label_sale_prefix'), 'sale_label_suffix' => thegem_get_option('product_label_sale_suffix'), 'sale_label_text' => thegem_get_option('product_label_sale_text'), 'out_label_text' => thegem_get_option('product_label_out_of_stock_text'), 'filters_scroll_top' => thegem_get_option('product_archive_scroll_to_top'), 'filter_buttons_standard_alignment' => 'left', 'filter_buttons_hidden_show_icon' => '1', 'filter_buttons_hidden_show_text' => thegem_get_option('product_archive_filter_buttons_hidden_show_text'), 'filters_text_labels_clear_text' => esc_html__('Clear Filters', 'thegem'), 'filters_style' => thegem_get_option('product_archive_filters_style'), 'filter_by_search' => thegem_get_option('product_archive_filters_type') == 'normal' ? thegem_get_option('product_archive_filter_by_search') : '', 'social_sharing' => thegem_get_option('product_archive_social_sharing'), 'skeleton_loader' => thegem_get_option('product_archive_skeleton_loader'), 'stock_only' => 'yes' == get_option( 'woocommerce_hide_out_of_stock_items') ? '1' : '', 'fullwidth_section_images' => thegem_get_option( 'product_archive_used_in_fullwidth_section'), ); $normal_filter = false; $native_ajax = false; if (thegem_get_option('product_archive_filters_type') == 'normal') { $normal_filter = true; $attrs_arr = []; if (thegem_get_option('product_archive_filter_by_attribute') == '1') { $attrs = json_decode(thegem_get_option('product_archive_filter_by_attribute_data')); foreach ($attrs as $attr) { array_push($attrs_arr, [ 'attribute_title' => $attr->title, 'attribute_name' => $attr->attribute, 'attribute_query_type' => $attr->query_type, ]); } } $params = array_merge($params, array( 'product_show_filter' => '1', 'filter_by_categories' => thegem_get_option('product_archive_filter_by_categories'), 'filter_by_categories_hierarchy' => thegem_get_option('product_archive_filter_by_categories_hierarchy'), 'filter_by_categories_count' => thegem_get_option('product_archive_filter_by_categories_count'), 'filter_by_categories_title' => thegem_get_option('product_archive_filter_by_categories_title'), 'filter_by_categories_order_by' => thegem_get_option('product_archive_filter_by_categories_order_by'), 'filter_by_price' => thegem_get_option('product_archive_filter_by_price'), 'filter_by_price_title' => thegem_get_option('product_archive_filter_by_price_title'), 'filter_by_attribute' => thegem_get_option('product_archive_filter_by_attribute'), 'repeater_attributes' => json_encode($attrs_arr), 'filter_by_attribute_count' => thegem_get_option('product_archive_filter_by_attribute_count'), 'filter_by_attribute_hide_null' => thegem_get_option('product_archive_filter_by_attribute_hide_empty'), 'filter_by_status' => thegem_get_option('product_archive_filter_by_status'), 'filter_by_status_title' => thegem_get_option('product_archive_filter_by_status_title'), 'filter_by_status_sale' => thegem_get_option('product_archive_filter_by_status_sale'), 'filter_by_status_sale_text' => thegem_get_option('product_archive_filter_by_status_sale_text'), 'filter_by_status_stock' => thegem_get_option('product_archive_filter_by_status_stock'), 'filter_by_status_stock_text' => thegem_get_option('product_archive_filter_by_status_stock_text'), 'filter_by_status_count' => thegem_get_option('product_archive_filter_by_status_count'), 'filters_text_labels_all_text' => thegem_get_option('product_archive_filters_text_labels_all_text'), 'filters_text_labels_clear_text' => thegem_get_option('product_archive_filters_text_labels_clear_text'), 'filters_text_labels_search_text' => thegem_get_option('product_archive_filters_text_labels_search_text'), 'filter_buttons_hidden_sidebar_title' => thegem_get_option('product_archive_filter_buttons_hidden_sidebar_title'), 'filter_buttons_hidden_filter_by_text' => thegem_get_option('product_archive_filter_buttons_hidden_filter_by_text'), )); } else if (thegem_get_option('product_archive_filters_type') == 'native') { if (thegem_get_option('product_archive_filters_ajax') == '1') { $native_ajax = true; } $params = array_merge($params, array( 'product_show_filter' => '1', 'filters_style' => thegem_get_option('product_archive_filters_style_native'), 'filter_by_categories' => '', 'filter_by_attribute' => '', 'filter_by_price' => '', 'filter_by_status' => '', 'filter_by_search' => '', )); } else { $params = array_merge($params, array( 'product_show_filter' => $show_widgets ? '1' : '', 'filters_style' => 'sidebar', 'filter_by_price' => '', )); } if (is_search() && !isset($_GET['ajax_search']) && thegem_get_option('search_layout_type') == 'grid' && count(thegem_get_search_post_types_array(true)) > 0 && $params['filters_style'] == 'sidebar') { $params['filters_style'] = 'hidden'; } $active_tag = $products_tax = $products_tax_value = null; if (isset($queried->taxonomy)) { if ($queried->taxonomy == 'product_tag') { $params['select_products_tags'] = '1'; $params['content_products_tags'] = $active_tag = array($queried->slug); } else { $params['select_products_tax'] = $products_tax = $queried->taxonomy; $params['content_products_tax'] = $products_tax_value = array($queried->slug); } } wp_enqueue_style('thegem-portfolio-products-extended'); if (!wp_script_is('thegem-portfolio-grid-extended')) { wp_enqueue_script('thegem-portfolio-grid-extended'); wp_add_inline_script( 'thegem-portfolio-grid-extended', "jQuery('.extended-products-grid .yith-icon').each(function () { var addIcon = jQuery(this).children('.add-wishlist-icon').clone(); var addedIcon = jQuery(this).children('.added-wishlist-icon').clone(); jQuery(this).find('a i').remove(); jQuery(this).find('a svg').remove(); jQuery(this).find('.yith-wcwl-add-button a:not(.delete_item)').prepend(addIcon); jQuery(this).find('.yith-wcwl-add-button a.delete_item').prepend(addedIcon); jQuery(this).find('.yith-wcwl-wishlistexistsbrowse a').prepend(addedIcon); jQuery(this).find('a').addClass('icon'); jQuery(this).find('a.gem-button').removeAttr('class').removeAttr('style').removeAttr('onmouseleave').removeAttr('onmouseenter').addClass('icon'); jQuery(this).find('.yith-wcwl-wishlistaddedbrowse a').prepend(addedIcon); });" ); } if (isset($params['attribute_swatches']) && ($params['attribute_swatches'] == '1' || $params['attribute_swatches_tablet'] == '1' || $params['attribute_swatches_mobile'] == '1')) { wp_enqueue_script('wc-add-to-cart-variation'); $params['repeater_swatches'] = []; $attrs = json_decode(thegem_get_option('product_archive_show_swatches_data')); foreach ($attrs as $attr) { array_push($params['repeater_swatches'], [ 'attribute_name' => isset($attr->attribute) ? $attr->attribute: '', 'attribute_count' => isset($attr->value_to_show) ? $attr->value_to_show : '-1', 'attribute_show_name' => isset($attr->attribute_name) ? $attr->attribute_name : '', ]); } } $grid_uid = $params['portfolio_uid']; $localize = array( 'data' => $params, 'action' => 'extended_products_grid_load_more', 'url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('extended_products_grid_ajax-nonce') ); wp_localize_script('thegem-portfolio-grid-extended', 'thegem_portfolio_ajax_to_products', $localize); wp_enqueue_style('thegem-hovers-' . $hover_effect); if ($params['pagination_type'] == 'more') { wp_enqueue_style('thegem-button'); } else if ($params['pagination_type'] == 'scroll') { wp_enqueue_script('thegem-scroll-monitor'); } if ($params['quick_view'] == '1') { wp_enqueue_script('wc-single-product'); wp_enqueue_script('wc-add-to-cart-variation'); wp_enqueue_script('thegem-product-quick-view'); if (!is_product() && thegem_is_quick_view_default()) { wp_enqueue_script('thegem-quick-view'); wp_enqueue_style('thegem-quick-view'); } if(thegem_get_option('product_page_layout') == 'default') { if(thegem_get_option('product_page_button_add_to_cart_icon') && thegem_get_option('product_page_button_add_to_cart_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_add_to_cart_icon_pack')); } if(thegem_get_option('product_page_button_add_to_wishlist_icon') && thegem_get_option('product_page_button_add_to_wishlist_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_add_to_wishlist_icon_pack')); } if(thegem_get_option('product_page_button_added_to_wishlist_icon') && thegem_get_option('product_page_button_added_to_wishlist_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_added_to_wishlist_icon_pack')); } } if (thegem_get_option('product_gallery') != 'legacy') { wp_enqueue_style('thegem-product-gallery'); } else { wp_enqueue_style('thegem-hovers'); } } if ($params['product_show_filter'] === '1') { wp_enqueue_script('jquery-dlmenu'); if ($params['filter_by_price'] === '1') { wp_enqueue_script('wc-jquery-ui-touchpunch'); } } if ($params['loading_animation'] === '1') { wp_enqueue_style('thegem-animations'); wp_enqueue_script('thegem-items-animations'); wp_enqueue_script('thegem-scroll-monitor'); } if ($params['layout'] !== 'justified' || $params['ignore_highlights'] !== '1') { if ($params['layout'] == 'metro') { wp_enqueue_script('thegem-isotope-metro'); } else { wp_enqueue_script('thegem-isotope-masonry-custom'); } } $categories = ['0']; if (isset($params['filter_by_categories']) && $params['filter_by_categories'] == '1') { $cat_args = array( 'hide_empty' => true, 'orderby' => $params['filter_by_categories_order_by'] ); if ($params['filter_by_categories_order_by'] == 'term_order') { $cat_args['orderby'] = 'meta_value_num'; $cat_args['meta_key'] = 'order'; } if (in_array('0', $categories)) { if ($params['filter_by_categories_hierarchy'] == '1') { $cat_args['parent'] = 0; $terms = get_terms('product_cat', $cat_args); } else { $terms = get_terms('product_cat', $cat_args); } } else { $cat_args['slug'] = $categories; $terms = get_terms('product_cat', $cat_args); } } $categories_filter = null; if (isset($_GET['category'])) { $active_cat = $_GET['category']; $categories_current = [$active_cat]; $categories_filter = $active_cat; } else if (isset($queried->taxonomy) && $queried->taxonomy == 'product_cat') { $active_cat = $queried->slug; $categories_current = [$active_cat]; $categories_filter = $active_cat; } else { $active_cat = 'all'; $categories_current = $categories; } $attributes = []; if (isset($queried->taxonomy) && strpos($queried->taxonomy, 'pa_') !== false) { $active_attr = str_replace('pa_', '', $queried->taxonomy); $attributes[$active_attr] = [$queried->slug]; } $attributes_url = []; $has_attr_url = false; $attributes_query_type_url = []; $attributes_list = thegem_extended_products_get_woo_attributes(); foreach ($attributes_list as $name => $attr) { if (isset($_GET['filter_' . $attr])) { $attributes_url[$attr] = explode(",", $_GET['filter_' . $attr]); $has_attr_url = true; } if (isset($_GET['query_type_' . $attr])) { $attributes_query_type_url[$attr] = $_GET['query_type_' . $attr]; } else if (!$normal_filter) { $attributes_query_type_url[$attr] = 'and'; } } $attributes_filter = null; if ($has_attr_url) { $attributes_current = $attributes_url; $attributes_filter = $attributes_url; } else { $attributes_current = $attributes; $attributes_filter = $attributes; } if ($params['items_per_page'] != '' && $params['items_per_page'] != 0) { $items_per_page = $params['items_per_page']; } else { $items_per_page = 8; } $page = (get_query_var('paged')) ? absint(get_query_var('paged')) : 1; $next_page = 0; if (isset($_GET['page'])) { $page = $_GET['page']; } if (isset($_GET['orderby'])) { $orderby = $_GET['orderby']; $order = 'desc'; $sortby = $orderby; if ($sortby == 'price' || $sortby == 'title') { $order = 'asc'; } } else { $orderby = $params['orderby']; $order = $params['order']; $sortby = 'default'; } $featured_only = $params['featured_only'] == '1' ? true : false; $sale_only = $params['sale_only'] == '1' ? true : false; $stock_only = $params['stock_only'] == '1' ? true : false; $status_current = null; if (isset($_GET['status'])) { $status_current = explode(",", $_GET['status']); if (in_array('sale', $status_current)) { $sale_only = true; } if (in_array('stock', $status_current)) { $stock_only = true; } } $price_current = null; if (isset($_GET['min_price']) || isset($_GET['max_price'])) { $price_range = thegem_extended_products_get_product_price_range($featured_only, $sale_only, $categories, $attributes); $current_min_price = isset($_GET['min_price']) ? floatval($_GET['min_price']) : $price_range['min']; $current_max_price = isset($_GET['max_price']) ? floatval($_GET['max_price']) : $price_range['max']; $price_current = [$current_min_price, $current_max_price]; } $search_current = null; if (isset($_GET['s'])) { $search_current = $_GET['s']; } $product_loop = thegem_extended_products_get_posts($page, $items_per_page, $orderby, $order, $featured_only, $sale_only, $stock_only, $categories_current, $attributes_current, $price_current, $search_current, $attributes_query_type_url, $active_tag, $products_tax, $products_tax_value); if ($product_loop && $product_loop->have_posts() || $search_current != null || $price_current != null) : if (ceil($product_loop->found_posts / $items_per_page) > $page) $next_page = $page + 1; else $next_page = 0; $max_page = $product_loop->max_num_pages; $item_classes = get_thegem_extended_products_render_item_classes($params); $thegem_sizes = get_thegem_extended_products_render_item_image_sizes($params); $search_only = true; if ($params['product_show_filter'] == '1' && (!$normal_filter || ( ($params['filter_by_categories'] == '1' && count($terms) > 0) || $params['filter_by_attribute'] == '1' || $params['filter_by_price'] == '1' || $params['filter_by_status'] == '1' ))) { $search_only = false; } if ($params['columns_desktop'] == '100%' || (($params['ignore_highlights'] !== '1' || $params['layout'] !== 'justified') && $params['skeleton_loader'] !== '1')) { echo apply_filters('thegem_portfolio_preloader_html', '<div class="preloader save-space"><div class="preloader-spin"></div></div>'); } else if ($params['skeleton_loader'] == '1') { ?> <div class="preloader save-space shop-skeleton" data-style-uid="to_products"> <div class="skeleton"> <?php if ((!$show_widgets && $params['filters_style'] == 'sidebar' && !$search_only) || ($show_widgets && $params['filters_style'] != 'hidden')) { ?> <div class="with-filter-sidebar"> <div class="filter-sidebar"> <div class="widget"></div> <div class="widget"></div> <div class="widget"></div> </div> <div class="content"> <?php } if ($params['product_show_sorting'] == '1') { ?> <div class="portfolio-top-panel"> <div class="skeleton-sorting"></div> </div> <?php } ?> <div class="skeleton-posts row portfolio-row"> <?php for ($x = 0; $x < $product_loop->post_count; $x++) { echo thegem_extended_products_render_item($params, $item_classes); } ?> </div> <?php if ((!$show_widgets && $params['filters_style'] == 'sidebar' && !$search_only) || ($show_widgets && $params['filters_style'] != 'hidden')) { ?> </div> </div> <?php } ?> </div> </div> <?php } ?> <div class="portfolio-preloader-wrapper"> <?php if ($params['caption_position'] == 'hover') { $title_on = 'hover'; } else { $title_on = 'page'; } $portfolio_classes = array( 'portfolio portfolio-grid extended-products-grid', 'to-extended-products main-loop-grid', 'woocommerce', 'products', 'no-padding', 'portfolio-preset-' . $preset, 'portfolio-pagination-' . $params['pagination_type'], 'portfolio-style-' . $params['layout'], 'background-style-' . $params['caption_container_preset'], (($params['caption_position'] == 'hover' && ($params['image_hover_effect_hover'] == 'slide' || $params['image_hover_effect_hover'] == 'fade')) || $params['caption_position'] == 'image') ? 'caption-container-preset-' . $params['caption_container_preset_hover'] : '', (($params['caption_position'] == 'hover' && ($params['image_hover_effect_hover'] == 'slide' || $params['image_hover_effect_hover'] == 'fade')) || $params['caption_position'] == 'image') ? 'caption-alignment-' . $params['caption_container_alignment_hover'] : '', 'caption-position-' . $params['caption_position'], 'aspect-ratio-' . $params['image_aspect_ratio'], 'hover-' . $hover_effect, 'title-on-' . $title_on, ($params['loading_animation'] == '1' ? 'loading-animation' : ''), ($params['loading_animation'] == '1' && $params['animation_effect'] ? 'item-animation-' . $params['animation_effect'] : ''), ($params['image_gaps'] == 0 ? 'no-gaps' : ''), ($params['columns_desktop'] == '100%' || thegem_get_option('product_archive_content_width') === 'fullwidth-nogaps' ? 'fullwidth-columns' : ''), ($params['columns_desktop'] == '100%' ? 'fullwidth-columns-desktop-' . $params['columns_100'] : ''), ($params['caption_position'] == 'image' && $params['image_hover_effect_image'] == 'gradient' ? 'hover-gradient-title' : ''), ($params['caption_position'] == 'image' && $params['image_hover_effect_image'] == 'circular' ? 'hover-circular-title' : ''), ($params['caption_position'] == 'hover' || $params['caption_position'] == 'image' ? 'hover-title' : ''), ($params['social_sharing'] != '1' ? 'portfolio-disable-socials' : ''), ($params['layout'] == 'masonry' ? 'portfolio-items-masonry' : ''), ($params['columns_desktop'] != '100%' ? 'columns-desktop-' . $params['columns_desktop'] : 'columns-desktop-' . $params['columns_100']), ('columns-tablet-' . $params['columns_tablet']), ('columns-mobile-' . $params['columns_mobile']), ($params['product_separator'] == '1' ? 'item-separator' : ''), ($params['layout'] == 'justified' && $params['ignore_highlights'] == '1' ? 'disable-isotope' : ''), ); ?> <div class="<?php echo esc_attr(implode(' ', $portfolio_classes)) ?>" data-per-page="<?php echo esc_attr($items_per_page) ?>" data-current-page="<?php echo esc_attr($page) ?>" data-next-page="<?php echo esc_attr($next_page) ?>" data-pages-count="<?php echo esc_attr($max_page) ?>" data-style-uid="to_products" data-portfolio-uid="<?php echo esc_attr($grid_uid) ?>" data-hover="<?php echo esc_attr($hover_effect) ?>" data-portfolio-filter='<?php echo esc_attr($categories_filter) ?>' data-portfolio-filter-attributes='<?php echo esc_attr(json_encode($attributes_filter)) ?>' data-portfolio-filter-status='<?php echo esc_attr(json_encode($status_current)) ?>' data-portfolio-filter-price='<?php echo esc_attr(json_encode($price_current)) ?>' data-portfolio-filter-search='<?php echo esc_attr($search_current) ?>'> <?php $has_right_panel = ($params['product_show_sorting'] == '1' || ($params['product_show_filter'] == '1' && ($params['filter_by_search'] == '1' && ($params['filters_style'] == 'standard' || $search_only)))) ? true : false; ?> <div class="portfolio-row-outer <?php if ($params['columns_desktop'] == '100%' || thegem_get_option('product_archive_content_width') === 'fullwidth-nogaps'): ?>fullwidth-block no-paddings<?php endif; ?>"> <input id="shop-page-url" type="hidden" <?php if (get_home_url()."/" == wc_get_page_permalink('shop')) {?>class="is-shop-home"<?php } ?> value="<?php echo (!$normal_filter && isset($queried->taxonomy) && $queried->taxonomy == 'product_cat') ? get_term_link($queried->slug, 'product_cat') : wc_get_page_permalink('shop'); ?>"> <?php if ((!$show_widgets && $params['filters_style'] == 'sidebar' && !$search_only) || ($show_widgets && $params['filters_style'] != 'hidden')) { ?> <div class="with-filter-sidebar"> <div class="filter-sidebar <?php echo $params['product_show_sorting'] == '1' ? 'left' : ''; ?>"> <?php if ($normal_filter && $params['filters_style'] != 'standard') { include(locate_template(array('gem-templates/products-extended/filters.php'))); } else { if ($show_widgets) { ?> <div class="portfolio-filters-list sidebar <?php echo $normal_filter ? 'normal hide-mobile hide-tablet' : 'native'; ?> style-sidebar <?php echo $params['filters_scroll_top'] == '1' ? 'scroll-top' : ''; ?> <?php echo $has_right_panel ? 'has-right-panel' : ''; ?> <?php echo thegem_get_option('product_archive_remove_attr_counts') == '1' ? 'hide-filter-counts' : ''; ?> <?php echo $native_ajax ? 'native-ajax-filters' : ''; ?>"> <div class="portfolio-show-filters-button <?php echo $params['filter_buttons_hidden_show_icon'] == '1' ? 'with-icon' : ''; ?>"> <?php echo esc_html($params['filter_buttons_hidden_show_text']); ?> <?php if ($params['filter_buttons_hidden_show_icon'] == '1') { ?> <span class="portfolio-show-filters-button-icon"></span> <?php } ?> </div> <div class="portfolio-filters-outer"> <div class="portfolio-filters-area"> <div class="portfolio-filters-area-scrollable"> <div class="widget-area-wrap"> <?php get_sidebar('shop'); ?> </div> </div> </div> <div class="portfolio-close-filters"></div> </div> </div> <?php } } ?> </div> <div class="content"> <?php } ?> <?php if ($params['product_show_filter'] == '1' || $params['product_show_sorting'] == '1'): ?> <div class="portfolio-top-panel <?php echo $params['filters_style'] == 'sidebar' ? 'sidebar-filter' : ''; ?> <?php echo ($params['product_show_sorting'] != '1' && ($params['filter_by_search'] != '1' || $params['filters_style'] != 'standard')) ? 'selected-only' : ''; ?>"> <div class="portfolio-top-panel-row"> <div class="portfolio-top-panel-left"> <?php if ($params['product_show_filter'] == '1') { if ($normal_filter) { if ($params['filters_style'] != 'sidebar' && !$search_only) { include(locate_template(array('gem-templates/products-extended/filters.php'))); } if ($params['filters_style'] == 'sidebar') { include(locate_template(array('gem-templates/products-extended/selected-filters.php'))); } } else { if ($params['filters_style'] == 'hidden' && is_active_sidebar('shop-sidebar')) { ?> <div class="portfolio-filters-list sidebar native style-<?php echo esc_attr($params['filters_style']); ?> <?php echo $params['filters_scroll_top'] == '1' ? 'scroll-top' : ''; ?> <?php echo $has_right_panel ? 'has-right-panel' : ''; ?> <?php echo thegem_get_option('product_archive_remove_attr_counts') == '1' ? 'hide-filter-counts' : ''; ?> <?php echo $native_ajax ? 'native-ajax-filters' : ''; ?>"> <div class="portfolio-show-filters-button <?php echo $params['filter_buttons_hidden_show_icon'] == '1' ? 'with-icon' : ''; ?>"> <?php echo esc_html($params['filter_buttons_hidden_show_text']); ?> <?php if ($params['filter_buttons_hidden_show_icon'] == '1') { ?> <span class="portfolio-show-filters-button-icon"></span> <?php } ?> </div> <div class="portfolio-filters-outer"> <div class="portfolio-filters-area"> <div class="portfolio-filters-area-scrollable"> <div class="widget-area-wrap"> <?php get_sidebar('shop'); ?> </div> </div> </div> <div class="portfolio-close-filters"></div> </div> </div> <?php } if ($params['filters_style'] == 'sidebar' && $native_ajax) { include(locate_template(array('gem-templates/products-extended/selected-filters.php'))); } } } ?> </div> <?php if ($has_right_panel): ?> <div class="portfolio-top-panel-right"> <?php if ($params['product_show_sorting'] == '1'): ?> <div class="portfolio-sorting-select"> <div class="portfolio-sorting-select-current"> <div class="portfolio-sorting-select-name"> <?php switch ($sortby) { case "date": echo esc_html__('Sort by latest', 'woocommerce'); break; case "popularity": echo esc_html__('Sort by popularity', 'woocommerce'); break; case "rating": echo esc_html__('Sort by average rating', 'woocommerce'); break; case "price": echo esc_html__('Sort by price: low to high', 'woocommerce'); break; case "price-desc": echo esc_html__('Sort by price: high to low', 'woocommerce'); break; default: echo esc_html__('Default sorting', 'woocommerce'); } ?> </div> <span class="portfolio-sorting-select-current-arrow"></span> </div> <ul> <li class="default <?php echo $sortby == 'default' ? 'portfolio-sorting-select-current' : ''; ?>" data-orderby="<?php echo esc_attr($params['orderby']) ?>" data-order="<?php echo esc_attr($params['order']) ?>"> <?php echo esc_html__('Default sorting', 'woocommerce'); ?> </li> <li class="<?php echo $sortby == 'date' ? 'portfolio-sorting-select-current' : ''; ?>" data-orderby="date" data-order="desc"> <?php echo esc_html__('Sort by latest', 'woocommerce'); ?> </li> <li class="<?php echo $sortby == 'popularity' ? 'portfolio-sorting-select-current' : ''; ?>" data-orderby="popularity" data-order="desc"> <?php echo esc_html__('Sort by popularity', 'woocommerce'); ?> </li> <li class="<?php echo $sortby == 'rating' ? 'portfolio-sorting-select-current' : ''; ?>" data-orderby="rating" data-order="desc"> <?php echo esc_html__('Sort by average rating', 'woocommerce'); ?> </li> <li class="<?php echo $sortby == 'price' ? 'portfolio-sorting-select-current' : ''; ?>" data-orderby="price" data-order="asc"> <?php echo esc_html__('Sort by price: low to high', 'woocommerce'); ?> </li> <li class="<?php echo $sortby == 'price-desc' ? 'portfolio-sorting-select-current' : ''; ?>" data-orderby="price-desc" data-order="desc"> <?php echo esc_html__('Sort by price: high to low', 'woocommerce'); ?> </li> </ul> </div> <?php endif; ?> <?php if ($params['filter_by_search'] == '1' && ($params['filters_style'] == 'standard' || $search_only)) { ?> <span> </span> <form class="portfolio-search-filter <?php echo $search_only ? 'mobile-visible' : ''; ?>" role="search" action=""> <div class="portfolio-search-filter-form"> <input type="search" placeholder="<?php echo esc_attr($params['filters_text_labels_search_text']); ?>" value="<?php echo esc_attr($search_current); ?>"> </div> <div class="portfolio-search-filter-button"></div> </form> <?php } ?> </div> <?php endif; ?> </div> <?php if ($params['product_show_filter'] == '1' && ($normal_filter || $native_ajax)) { include(locate_template(array('gem-templates/products-extended/selected-filters.php'))); } ?> </div> <?php endif; ?> <div class="row portfolio-row clearfix"> <?php $display_type = woocommerce_get_loop_display_mode(); if ('subcategories' === $display_type || 'both' === $display_type) { ?> <div class="portfolio-set sub-categories" data-max-row-height=""> <?php $parent_id = is_product_category() ? get_queried_object_id() : 0; $product_categories = woocommerce_get_product_subcategories($parent_id); if ($product_categories) { foreach ($product_categories as $category) { echo thegem_extended_products_render_item($params, $item_classes, $thegem_sizes, $category, true); } } ?> </div><!-- .portflio-set --> <?php } if ('subcategories' !== $display_type) { ?> <div class="portfolio-set" data-max-row-height=""> <?php if ($product_loop->have_posts()) { remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10); remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10); remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); remove_action('woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10); remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); remove_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_link', 15); remove_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_wishlist', 20); while ($product_loop->have_posts()) : $product_loop->the_post(); ?> <?php echo thegem_extended_products_render_item($params, $item_classes, $thegem_sizes, get_the_ID()); ?> <?php endwhile; wp_reset_postdata(); } else { ?> <div class="portfolio-item not-found"> <div class="wrap clearfix"> <div class="image-inner"></div> <?php echo esc_html($params['not_found_text']); ?> </div> </div> <?php } ?> </div><!-- .portflio-set --> <?php } ?> <div class="portfolio-item-size-container"> <?php echo thegem_extended_products_render_item($params, $item_classes); ?> </div> </div><!-- .row--> <?php /** Pagination */ if ('subcategories' !== $display_type && '1' === ($params['show_pagination'])) : ?> <?php if ($params['pagination_type'] == 'normal'): ?> <div class="portfolio-navigator gem-pagination"> <a href="#" class="prev"> <i class="default"></i> </a> <div class="pages"></div> <a href="#" class="next"> <i class="default"></i> </a> </div> <?php endif; ?> <?php if ($params['pagination_type'] == 'more' && $next_page > 0): $separator_enabled = ($params['more_show_separator'] === '1' && $params['more_stretch_full_width'] !== '1') ? true : false; // Container $classes_container = 'gem-button-container gem-widget-button '; if ($separator_enabled) { $classes_container .= 'gem-button-position-center gem-button-with-separator '; } else { if ('1' === $params['more_stretch_full_width']) { $classes_container .= 'gem-button-position-fullwidth '; } } // Separator $classes_separator = 'gem-button-separator '; if (!empty($params['pagination_more_button_separator_style'])) { $classes_separator .= $params['pagination_more_button_separator_style']; } // Link $classes_button = "load-more-button gem-button gem-button-text-weight-normal gem-button-size-small gem-button-style-flat"; ?> <div class="portfolio-load-more gem-pagination"> <div class="inner"> <?php include(locate_template(array('gem-templates/products-extended/more-button.php'))); ?> </div> </div> <?php endif; ?> <?php if ($params['pagination_type'] == 'scroll' && $next_page > 0): ?> <div class="portfolio-scroll-pagination gem-pagination"></div> <?php endif; ?> <?php endif; ?> <?php if ((!$show_widgets && $params['filters_style'] == 'sidebar' && !$search_only) || ($show_widgets && $params['filters_style'] != 'hidden')) { ?> </div> </div> <?php } ?> </div><!-- .full-width --> </div><!-- .portfolio--> </div><!-- .portfolio-preloader-wrapper--> <?php remove_action('woocommerce_after_shop_loop', 'thegem_woocommerce_after_shop_content', 15); remove_action('woocommerce_after_shop_loop', 'woocommerce_pagination', 10);; do_action('woocommerce_after_shop_loop'); if (thegem_get_option('product_archive_category_description_position') !== 'above' ) { do_action('woocommerce_archive_description'); } ?> <?php else : do_action('woocommerce_no_products_found'); endif; $post = $portfolio_posttemp; } } if (!function_exists('thegem_extended_products_more_callback')) { function thegem_extended_products_more_callback() { $params = isset($_POST['data']) ? json_decode(stripslashes($_POST['data']), true) : array(); ob_start(); $response = array('status' => 'success'); $page = isset($params['more_page']) ? intval($params['more_page']) : 1; if ($page == 0) $page = 1; $featured_only = $params['featured_only'] == '1' ? true : false; $sale_only = $params['sale_only'] == '1' ? true : false; if ((!empty($params['select_products_categories']) && !empty($params['content_products_cat'])) || !empty($params['content_products_cat_filter'])) { $categories = explode(",", $params['content_products_cat']); } else { $categories = ['0']; } $tag = $products_tax = $products_tax_value = $post__in = null; if (!empty($params['select_products_tags'])) { $tag = explode(",", $params['content_products_tags']); } if (!empty($params['select_products_tax'])) { $products_tax = $params['select_products_tax']; $products_tax_value = $params['content_products_tax']; } if (!empty($params['select_products'])) { $post__in = explode(",", $params['content_products']); } $attributes = []; if (!empty($params['select_products_attributes']) || !empty($params['content_products_attr_filter'])) { if (!empty($params['content_products_attr'])) { $attrs = explode(",", $params['content_products_attr']); if ($attrs) { foreach ($attrs as $attr) { $values = explode(",", $params['content_products_attr_val_' . $attr]); if (in_array('0', $values) || empty($values)) { $values = get_terms('pa_' . $attr, array('fields' => 'slugs')); } $attributes[$attr] = $values; } } } else if (!empty($params['content_products_attr_val'])) { $attrs = explode(", ", $params['content_products_attr_val']); if ($attrs) { foreach ($attrs as $attr) { $attr_arr = explode("|", $attr); if ($attr_arr[1] == 'all') { $values = get_terms('pa_' . $attr_arr[0], array('fields' => 'slugs')); } else { if (isset($attributes[$attr_arr[0]])) { if (!in_array($attr_arr[1], $attributes[$attr_arr[0]])) { $values = array_push($attributes[$attr_arr[0]], $attr_arr[1]); } else { $values = false; } } else { $values = [$attr_arr[1]]; } } if ($values) { $attributes[$attr_arr[0]] = $values; } } } } } $orderby = $params['orderby']; $order = $params['order']; $stock_only = isset($params['stock_only']) && $params['stock_only'] == '1' ? true : false; if (isset($params['content_products_status_filter'])) { if (in_array('sale', $params['content_products_status_filter'])) { $sale_only = true; } if (in_array('stock', $params['content_products_status_filter'])) { $stock_only = true; } if (in_array('featured', $params['content_products_status_filter'])) { $featured_only = true; } if (in_array('recent', $params['content_products_status_filter'])) { $orderby = 'date'; $order = 'desc'; } } $price = isset($params['content_products_price_filter']) ? $params['content_products_price_filter'] : null; $search = isset($params['content_products_search_filter']) && $params['content_products_search_filter'] != '' ? $params['content_products_search_filter'] : null; $offset = isset($params['offset']) ? $params['offset'] : 0; $exclude_products = isset($params['exclude_products']) ? explode(",", $params['exclude_products']) : null; $products_grid_loop = thegem_extended_products_get_posts($page, $params['items_per_page'], $orderby, $order, $featured_only, $sale_only, $stock_only, $categories, $attributes, $price, $search, null, $tag, $products_tax, $products_tax_value, $post__in, $offset, $exclude_products); if ((($params['filter_by_categories'] == 'yes' || $params['filter_by_categories'] == '1')) || ($params['filter_by_attribute'] == 'yes' || $params['filter_by_attribute'] == '1') || ($params['filter_by_status'] == 'yes' || $params['filter_by_status'] == '1')) { $counts = thegem_extended_products_get_counts($params, $featured_only, $sale_only, $stock_only, $categories, $attributes, $price, $search); } $max_page = ceil(($products_grid_loop->found_posts - intval($offset)) / $params['items_per_page']); if ($max_page > $page) $next_page = $page + 1; else $next_page = 0; if ($products_grid_loop->have_posts()): remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10); remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10); remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); remove_action('woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10); remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); remove_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_link', 15); remove_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_wishlist', 20); $item_classes = get_thegem_extended_products_render_item_classes($params); $thegem_sizes = get_thegem_extended_products_render_item_image_sizes($params); ?> <div data-page="<?php echo esc_attr($page); ?>" data-next-page="<?php echo esc_attr($next_page); ?>" data-pages-count="<?php echo esc_attr($max_page); ?>"> <?php while ($products_grid_loop->have_posts()) : $products_grid_loop->the_post(); ?> <?php echo thegem_extended_products_render_item($params, $item_classes, $thegem_sizes, get_the_ID()); ?> <?php endwhile; ?> </div> <?php else: ?> <div data-page="1" data-next-page="0" data-pages-count="1"> <div class="portfolio-item not-found"> <div class="wrap clearfix"> <div class="image-inner"></div> <?php echo esc_html($params['not_found_text']); ?> </div> </div> </div> <?php endif; ?> <?php $response['html'] = trim(preg_replace('/\s\s+/', ' ', ob_get_clean())); if (isset($counts)) { $response['counts'] = $counts; } $response = json_encode($response); header("Content-Type: application/json"); echo $response; exit; } } add_action('wp_ajax_extended_products_grid_load_more', 'thegem_extended_products_more_callback'); add_action('wp_ajax_nopriv_extended_products_grid_load_more', 'thegem_extended_products_more_callback'); if (!function_exists('thegem_extended_products_get_posts')) { function thegem_extended_products_get_posts($page = 1, $ppp = -1, $orderby = 'menu_order ID', $order = 'ASC', $featured_only = false, $sale_only = false, $stock_only = false, $products_cat = null, $attributes = null, $price = null, $search = null, $attributes_query_type = null, $products_tag = null, $products_tax = null, $products_tax_value = null, $post__in = null, $offset = null, $exclude = null) { if (!$products_cat && !$attributes && !$products_tag && !$post__in) { return null; } $tax_query = []; if ($products_cat && !in_array('0', $products_cat, true)) { $tax_query[] = array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => $products_cat ); } if (!empty($products_tag)) { $tax_query[] = array( 'taxonomy' => 'product_tag', 'field' => 'slug', 'terms' => $products_tag ); } if (!empty($products_tax)) { $tax_query[] = array( 'taxonomy' => $products_tax, 'field' => 'slug', 'terms' => $products_tax_value ); } if (!empty($attributes)) { foreach ($attributes as $attr => $attr_arr) { if (!in_array('0', $attr_arr, true) && !empty($attr_arr)) { $query_arr = array( 'taxonomy' => 'pa_' . $attr, 'field' => 'slug', 'terms' => $attr_arr, 'include_children' => false, 'operator' => !empty($attributes_query_type[$attr]) && $attributes_query_type[$attr] === 'and' ? 'AND' : 'IN', ); $tax_query[] = $query_arr; } } } if ($featured_only) { $tax_query[] = array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ); } if ($stock_only) { $tax_query[] = array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => array('outofstock'), 'operator' => 'NOT IN' ); } $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'orderby' => $orderby, 'order' => $order, 'posts_per_page' => $ppp, 'tax_query' => $tax_query, ); if ($orderby == 'default') { $args['orderby'] = 'menu_order title'; } if ($orderby == 'popularity') { $args['meta_key'] = 'total_sales'; $args['orderby'] = array('meta_value_num' => 'DESC', 'ID' => 'DESC'); } if ($orderby == 'price' || $orderby == 'price-desc') { $args['meta_key'] = '_price'; $args['orderby'] = 'meta_value_num'; } if ($orderby == 'rating') { $args['orderby'] = 'meta_value_num'; $args['meta_key'] = '_wc_average_rating'; } if ($sale_only) { $args['post__in'] = array_merge(array(0), wc_get_product_ids_on_sale()); } if ($price) { $args['meta_query'] = array( array( 'key' => '_price', 'value' => $price, 'compare' => 'BETWEEN', 'type' => 'NUMERIC' ), ); } if ($search) { $args['s'] = $search; } if ($post__in) { if ($sale_only) { $args['post__in'] = array_intersect($args['post__in'],$post__in); } else { $args['post__in'] = $post__in; } } if (!empty($offset)) { $args['offset'] = $ppp * ($page - 1) + $offset; } else { $args['paged'] = $page; } if (!empty($exclude)) { $args['post__not_in'] = $exclude; } $portfolio_loop = new WP_Query($args); return $portfolio_loop; } } if (!function_exists('thegem_extended_products_get_counts')) { function thegem_extended_products_get_counts($params, $featured_only = false, $sale_only = false, $stock_only = false, $products_cat = null, $attributes = null, $price = null, $search = null, $attributes_query_type = null) { global $wpdb; $counts = []; $cats_tax_query = []; if ($products_cat && !in_array('0', $products_cat, true)) { $cats_tax_query = array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => $products_cat ); } $attributes_tax_query = []; if ($attributes) { foreach ($attributes as $attr => $attr_arr) { if (!in_array('0', $attr_arr, true) && !empty($attr_arr)) { $query_arr = array( 'taxonomy' => 'pa_' . $attr, 'field' => 'slug', 'terms' => $attr_arr, 'include_children' => false, 'operator' => !empty($attributes_query_type[$attr]) && $attributes_query_type[$attr] === 'and' ? 'AND' : 'IN', ); $attributes_tax_query[] = $query_arr; } } } $tax_query = []; if ($featured_only) { $tax_query[] = array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ); } if ($stock_only) { $tax_query[] = array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => array('outofstock'), 'operator' => 'NOT IN' ); } $sale_ids_sql = '(' . implode( ',', array_map( 'absint', array_merge(array(0), wc_get_product_ids_on_sale()) ) ) . ')'; if ($sale_only) { $sale_query_sql = " AND {$wpdb->posts}.ID IN $sale_ids_sql"; } else { $sale_query_sql = ''; } if ($price) { $meta_query = array( array( 'key' => '_price', 'value' => $price, 'compare' => 'BETWEEN', 'type' => 'NUMERIC' ), ); } else { $meta_query = []; } $meta_query = new WP_Meta_Query( $meta_query ); $meta_query_sql = $meta_query->get_sql( 'post', $wpdb->posts, 'ID' ); if ($search) { $search_query_sql = " AND (({$wpdb->posts}.post_title LIKE '%".$search."%') OR ({$wpdb->posts}.post_excerpt LIKE '%".$search."%') OR ({$wpdb->posts}.post_content LIKE '%".$search."%'))"; } else { $search_query_sql = ''; } if (($params['filter_by_categories'] == 'yes' || $params['filter_by_categories'] == '1')) { $filtersListid = get_terms('product_cat', ['fields' => 'ids']); if (!is_wp_error($filtersListid) && !empty($filtersListid)) { $term_ids_sql = '(' . implode( ',', array_map( 'absint', $filtersListid ) ) . ')'; $tax_query_cat = $tax_query; if (!empty($attributes_tax_query)) { $tax_query_cat[] = $attributes_tax_query; } $wp_tax_query = new WP_Tax_Query( $tax_query_cat ); $tax_query_sql = $wp_tax_query->get_sql( $wpdb->posts, 'ID' ); $query = "FROM {$wpdb->posts} INNER JOIN {$wpdb->term_relationships} AS term_relationships ON {$wpdb->posts}.ID = term_relationships.object_id INNER JOIN {$wpdb->term_taxonomy} AS term_taxonomy USING( term_taxonomy_id ) INNER JOIN {$wpdb->terms} AS terms USING( term_id ) " . $tax_query_sql['join'] . $meta_query_sql['join']." WHERE {$wpdb->posts}.post_type IN ( 'product' ) AND {$wpdb->posts}.post_status = 'publish' {$tax_query_sql['where']} {$meta_query_sql['where']} AND terms.term_id IN $term_ids_sql". $search_query_sql.$sale_query_sql; $query_sql = "SELECT COUNT( DISTINCT a.term_count ) AS term_count, a.term_count_id FROM (( SELECT {$wpdb->posts}.ID as term_count, term_taxonomy.term_id AS term_count_id ".$query." ) UNION ALL ( SELECT {$wpdb->posts}.ID as term_count, term_taxonomy.parent AS term_count_id ".$query." )) as a GROUP BY a.term_count_id"; $query_hash = md5( $query_sql ); $cache = apply_filters( 'thegem_extended_products_filters_count_maybe_cache', true ); if ( true === $cache ) { $cached_counts = (array) get_transient( 'thegem_extended_products_filters_counts_categories' ); } else { $cached_counts = array(); } if ( ! isset( $cached_counts[ $query_hash ] ) ) { $results = $wpdb->get_results( $query_sql, ARRAY_A ); $counts_cats = array_map( 'absint', wp_list_pluck( $results, 'term_count', 'term_count_id' ) ); $cached_counts[ $query_hash ] = $counts_cats; if ( true === $cache ) { set_transient( 'thegem_extended_products_filters_counts_categories', $cached_counts, DAY_IN_SECONDS ); } } foreach ($filtersListid as $id) { $counts[$id] = isset($cached_counts[ $query_hash ][$id]) ? $cached_counts[ $query_hash ][$id] : 0; } } } if ($params['filter_by_attribute'] == 'yes' || $params['filter_by_attribute'] == '1') { $filter_attr = vc_param_group_parse_atts($params['repeater_attributes']); foreach ($filter_attr as $index => $item) { if (!empty($item['attribute_name'])) { $filtersListid = get_terms('pa_' . $item['attribute_name'], ['fields' => 'ids','hide_empty' => false]); if (is_wp_error($filtersListid) || empty($filtersListid)) { continue; } $term_ids_sql = '(' . implode( ',', array_map( 'absint', $filtersListid ) ) . ')'; $attr_tax_query = []; if ($attributes) { foreach ($attributes as $attr => $attr_arr) { if (!in_array('0', $attr_arr, true) && !empty($attr_arr) && ($attr != $item['attribute_name'] /*|| strtolower($item['attribute_query_type']) == 'or'*/)) { $query_arr = array( 'taxonomy' => 'pa_' . $attr, 'field' => 'slug', 'terms' => $attr_arr, 'include_children' => false, 'operator' => !empty($attributes_query_type[$attr]) && $attributes_query_type[$attr] === 'and' ? 'AND' : 'IN', ); $attr_tax_query[] = $query_arr; } } } $tax_query_attr = $tax_query; if (!empty($cats_tax_query)) { $tax_query_attr[] = $cats_tax_query; } if (!empty($attr_tax_query)) { $tax_query_attr[] = $attr_tax_query; } $wp_tax_query = new WP_Tax_Query( $tax_query_attr ); $tax_query_sql = $wp_tax_query->get_sql( $wpdb->posts, 'ID' ); $query_sql = "SELECT COUNT( DISTINCT {$wpdb->posts}.ID ) AS term_count, term_taxonomy.term_id AS term_count_id FROM {$wpdb->posts} INNER JOIN {$wpdb->term_relationships} AS term_relationships ON {$wpdb->posts}.ID = term_relationships.object_id INNER JOIN {$wpdb->term_taxonomy} AS term_taxonomy USING( term_taxonomy_id ) INNER JOIN {$wpdb->terms} AS terms USING( term_id ) " . $tax_query_sql['join'] . $meta_query_sql['join']." WHERE {$wpdb->posts}.post_type IN ( 'product' ) AND {$wpdb->posts}.post_status = 'publish' {$tax_query_sql['where']} {$meta_query_sql['where']} AND terms.term_id IN $term_ids_sql". $search_query_sql.$sale_query_sql. " GROUP BY term_taxonomy.term_id"; $query_hash = md5( $query_sql ); $cache = apply_filters( 'thegem_extended_products_filters_count_maybe_cache', true ); if ( true === $cache ) { $cached_counts = (array) get_transient( 'thegem_extended_products_filters_counts_' . sanitize_title( $item['attribute_name'] ) ); } else { $cached_counts = array(); } if ( ! isset( $cached_counts[ $query_hash ] ) ) { $results = $wpdb->get_results( $query_sql, ARRAY_A ); $counts_attrs = array_map( 'absint', wp_list_pluck( $results, 'term_count', 'term_count_id' ) ); $cached_counts[ $query_hash ] = $counts_attrs; if ( true === $cache ) { set_transient( 'wc_layered_nav_counts_' . sanitize_title( $item['attribute_name'] ), $cached_counts, DAY_IN_SECONDS ); } } foreach ($filtersListid as $id) { $counts[$id] = isset($cached_counts[ $query_hash ][$id]) ? $cached_counts[ $query_hash ][$id] : 0; } } } } if ($params['filter_by_status'] == 'yes' || $params['filter_by_status'] == '1') { $tax_query_sale = $tax_query; if (!empty($cats_tax_query)) { $tax_query_sale[] = $cats_tax_query; } if (!empty($attributes_tax_query)) { $tax_query_sale[] = $attributes_tax_query; } $wp_tax_query = new WP_Tax_Query( $tax_query_sale ); $tax_query_sql = $wp_tax_query->get_sql( $wpdb->posts, 'ID' ); if ($params['filter_by_status_sale'] == 'yes' || $params['filter_by_status_sale'] == '1') { $query_sql = "SELECT COUNT(*) as count FROM {$wpdb->posts} " . $tax_query_sql['join'] . $meta_query_sql['join']." WHERE {$wpdb->posts}.post_type IN ( 'product' ) AND {$wpdb->posts}.post_status = 'publish' {$tax_query_sql['where']} {$meta_query_sql['where']} AND {$wpdb->posts}.ID IN $sale_ids_sql". $search_query_sql; $query_hash = md5( $query_sql ); $cache = apply_filters( 'thegem_extended_products_filters_count_maybe_cache', true ); if ( true === $cache ) { $cached_counts = (array) get_transient( 'thegem_extended_products_filters_sale' ); } else { $cached_counts = array(); } if ( ! isset( $cached_counts[ $query_hash ] ) ) { $results = $wpdb->get_results( $query_sql, ARRAY_A ); $counts_sale = intval($results[0]['count']); $cached_counts[ $query_hash ] = $counts_sale; if ( true === $cache ) { set_transient( 'thegem_extended_products_filters_sale' , $cached_counts, DAY_IN_SECONDS ); } } $counts['sale'] = $cached_counts[ $query_hash ]; } if ($params['filter_by_status_stock'] == 'yes' || $params['filter_by_status_stock'] == '1') { $query_sql = "SELECT COUNT(*) as count FROM {$wpdb->posts} " . $tax_query_sql['join'] . $meta_query_sql['join']." WHERE {$wpdb->posts}.post_type IN ( 'product' ) AND {$wpdb->posts}.post_status = 'publish' {$tax_query_sql['where']} {$meta_query_sql['where']} AND {$wpdb->posts}.ID NOT IN ( SELECT object_id FROM {$wpdb->term_relationships} AS term_relationships INNER JOIN {$wpdb->term_taxonomy} AS term_taxonomy USING( term_taxonomy_id ) INNER JOIN {$wpdb->terms} AS terms USING( term_id ) WHERE terms.name = 'outofstock' )". $search_query_sql.$sale_query_sql; $query_hash = md5( $query_sql ); $cache = apply_filters( 'thegem_extended_products_filters_count_maybe_cache', true ); if ( true === $cache ) { $cached_counts = (array) get_transient( 'thegem_extended_products_filters_stock' ); } else { $cached_counts = array(); } if ( ! isset( $cached_counts[ $query_hash ] ) ) { $results = $wpdb->get_results( $query_sql, ARRAY_A ); $counts_stock = intval($results[0]['count']); $cached_counts[ $query_hash ] = $counts_stock; if ( true === $cache ) { set_transient( 'thegem_extended_products_filters_stock' , $cached_counts, DAY_IN_SECONDS ); } } $counts['stock'] = $cached_counts[ $query_hash ]; } } return $counts; } } if (!function_exists('get_thegem_extended_products_render_item_classes')) { function get_thegem_extended_products_render_item_classes($params, $thegem_highlight_type = 'disabled') { $thegem_classes = []; if ($params['columns_mobile'] == '1x') { $thegem_classes = array_merge($thegem_classes, array('col-xs-12')); } else if ($params['columns_mobile'] == '2x') { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') $thegem_classes = array_merge($thegem_classes, array('col-xs-12')); else $thegem_classes = array_merge($thegem_classes, array('col-xs-6')); } if ($params['columns_tablet'] == '1x') { $thegem_classes = array_merge($thegem_classes, array('col-sm-12')); } else if ($params['columns_tablet'] == '2x') { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') $thegem_classes = array_merge($thegem_classes, array('col-sm-12')); else $thegem_classes = array_merge($thegem_classes, array('col-sm-6')); } else if ($params['columns_tablet'] == '3x') { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') $thegem_classes = array_merge($thegem_classes, array('col-sm-8')); else $thegem_classes = array_merge($thegem_classes, array('col-sm-4')); } else if ($params['columns_tablet'] == '4x') { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') $thegem_classes = array_merge($thegem_classes, array('col-sm-6')); else $thegem_classes = array_merge($thegem_classes, array('col-sm-3')); } if ($params['columns_desktop'] == '1x') { $thegem_classes = array_merge($thegem_classes, array('col-md-12')); if ($params['caption_position'] == 'hover' && $params['font_size_preset'] != 'normal') $thegem_classes = array_merge($thegem_classes, array('bigger')); } else if ($params['columns_desktop'] == '2x') { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') $thegem_classes = array_merge($thegem_classes, array('col-md-12')); else $thegem_classes = array_merge($thegem_classes, array('col-md-6')); if ($params['caption_position'] == 'hover' && $params['font_size_preset'] != 'normal') $thegem_classes = array_merge($thegem_classes, array('bigger')); } else if ($params['columns_desktop'] == '3x') { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') $thegem_classes = array_merge($thegem_classes, array('col-md-8')); else $thegem_classes = array_merge($thegem_classes, array('col-md-4')); } else if ($params['columns_desktop'] == '4x' || ($params['columns_desktop'] == '100%' && $params['columns_100'] == '4')) { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') $thegem_classes = array_merge($thegem_classes, array('col-md-6')); else $thegem_classes = array_merge($thegem_classes, array('col-md-3')); } else if ($params['columns_desktop'] == '5x' || ($params['columns_desktop'] == '100%' && $params['columns_100'] == '5')) { $thegem_classes = array_merge($thegem_classes, array('columns-desktop-5')); } else if ($params['columns_desktop'] == '6x' || ($params['columns_desktop'] == '100%' && $params['columns_100'] == '6')) { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') $thegem_classes = array_merge($thegem_classes, array('col-md-4')); else $thegem_classes = array_merge($thegem_classes, array('col-md-2')); } return $thegem_classes; } } if (!function_exists('get_thegem_extended_products_render_item_image_sizes')) { function get_thegem_extended_products_render_item_image_sizes($params, $thegem_highlight_type = 'disabled') { if ($params['columns_desktop'] == '5x' || $params['columns_desktop'] == '6x') { $columns_desktop = '4x'; } else if ($params['columns_desktop'] == '1x') { $columns_desktop = '2x'; } else { $columns_desktop = $params['columns_desktop']; } $thegem_sources = array(); if (isset($params['layout']) && $params['layout'] == 'masonry') { $thegem_size = 'thegem-portfolio-masonry'; $base_size = $thegem_size; if ($thegem_highlight_type != 'disabled') { $thegem_size .= '-double'; if ($thegem_highlight_type != 'squared') { $thegem_size .= '-' . $thegem_highlight_type; } } if ($thegem_highlight_type == 'disabled' || $thegem_highlight_type == 'vertical') { $retina_size = $params['layout'] == 'justified' ? $thegem_size : 'thegem-portfolio-masonry-double'; if ($params['columns_desktop'] == '100%') { if ($params['layout'] == 'justified' || $params['layout'] == 'masonry') { if ($params['columns_100'] == '6') { $columns100 = '5x'; } else { $columns100 = $params['columns_100'] . 'x'; } $thegem_sources = array( array('media' => '(max-width: 550px)', 'srcset' => array('1x' => $base_size . '-' . $params['columns_mobile'] . '-500', '2x' => $retina_size)), array('media' => '(min-width: 1280px) and (max-width: 1495px)', 'srcset' => array('1x' => $base_size . '-fullwidth-' . $params['columns_tablet'], '2x' => $retina_size)), array('media' => '(max-width: 1920px)', 'srcset' => array('1x' => $base_size . '-fullwidth-' . $columns100, '2x' => $retina_size)) ); } } else { if ($params['layout'] == 'justified' || $params['layout'] == 'masonry') { $thegem_sources = array( array('media' => '(max-width: 550px)', 'srcset' => array('1x' => $base_size . '-' . $params['columns_mobile'] . '-500', '2x' => $retina_size)), array('media' => '(max-width: 1100px)', 'srcset' => array('1x' => $base_size . '-' . $params['columns_tablet'], '2x' => $retina_size)), array('media' => '(max-width: 1920px)', 'srcset' => array('1x' => $base_size . '-' . $columns_desktop, '2x' => $retina_size)) ); } } } if ($thegem_highlight_type == 'horizontal') { $thegem_sources = array( array('media' => '(max-width: 550px)', 'srcset' => array('1x' => $base_size . '-2x-500', '2x' => $base_size)) ); } } elseif (isset($params['layout']) && $params['layout'] == 'metro') { $thegem_size = 'thegem-portfolio-metro'; $retina_size = 'thegem-portfolio-metro-retina'; $base_size = $thegem_size; if ($params['columns_desktop'] == '2x' || $params['columns_desktop'] == '1x') { $thegem_size = 'thegem-portfolio-metro-large'; } if ($params['columns_tablet'] == '4x') { $image_size_tablet = 'thegem-portfolio-metro-medium'; } else if ($params['columns_tablet'] == '1x') { $image_size_tablet = 'thegem-portfolio-metro-large'; } else { $image_size_tablet = 'thegem-portfolio-metro'; } if ($params['columns_mobile'] == '2x') { $image_size_mobile = 'thegem-portfolio-metro'; } else { $image_size_mobile = 'thegem-portfolio-metro-large'; } $thegem_sources = array( array('media' => '(max-width: 767px)', 'srcset' => array('1x' => $image_size_mobile, '2x' => $retina_size)), array('media' => '(max-width: 992px)', 'srcset' => array('1x' => $image_size_tablet, '2x' => $retina_size)), array('srcset' => array('1x' => $thegem_size, '2x' => $retina_size)), array('media' => '(min-width: 550px) and (max-width: 1100px)', 'srcset' => array('1x' => 'thegem-portfolio-metro-medium', '2x' => 'thegem-portfolio-metro-retina')) ); } else { if (isset($params['fullwidth_section_images']) && $params['fullwidth_section_images'] == '1') { if ($params['columns_desktop'] == '6x' || $params['columns_desktop'] == '5x' || ($params['columns_desktop'] == '100%' && ($params['columns_100'] == '5' || $params['columns_100'] == '6'))) { $image_size = 'm'; } else if ($params['columns_desktop'] == '4x' || ($params['columns_desktop'] == '100%' && $params['columns_100'] == '4')) { $image_size = 'l'; } else if ($params['columns_desktop'] == '3x') { $image_size = 'xl'; } else { $image_size = 'xxl'; } } else { if ($params['columns_desktop'] == '6x') { $image_size = 'xs'; } else if ($params['columns_desktop'] == '4x' || $params['columns_desktop'] == '5x') { $image_size = 's'; } else if ($params['columns_desktop'] == '3x' || ($params['columns_desktop'] == '100%' && ($params['columns_100'] == '5' || $params['columns_100'] == '6'))) { $image_size = 'm'; } else if ($params['columns_desktop'] == '100%' && $params['columns_100'] == '4') { $image_size = 'l'; } else { $image_size = 'xl'; } } if ($params['columns_tablet'] == '4x') { $image_size_tablet = 's'; } else if ($params['columns_tablet'] == '3x') { $image_size_tablet = 'm'; } else { $image_size_tablet = 'l'; } if ($params['columns_mobile'] == '2x') { $image_size_mobile = 'm'; } else { $image_size_mobile = ''; } $thegem_size = 'thegem-product-justified-' . $params['image_aspect_ratio']; $base_size = $thegem_size; if ($thegem_highlight_type != 'disabled') { $thegem_size .= '-double'; if ($params['caption_position'] == 'page' && $thegem_highlight_type != 'horizontal') { $thegem_size .= '-page'; } if ($thegem_highlight_type != 'squared') { $thegem_size .= '-' . $thegem_highlight_type; } $retina_size = $thegem_size; } else { $retina_size = $thegem_size . '-double'; } if ($params['columns_mobile'] == '1x') { $thegem_size_mobile = $base_size; $retina_size_mobile = $base_size . '-double'; } else { $thegem_size_mobile = $thegem_size . '-' . $image_size_mobile; $retina_size_mobile = $retina_size . '-' . $image_size_mobile; } $thegem_size_tablet = $thegem_size . '-' . $image_size_tablet; $retina_size_tablet = $retina_size . '-' . $image_size_tablet; $thegem_size .= '-' . $image_size; $retina_size .= '-' . $image_size; $thegem_sources = array( array('media' => '(max-width: 767px)', 'srcset' => array('1x' => $thegem_size_mobile, '2x' => $retina_size_mobile)), array('media' => '(max-width: 992px)', 'srcset' => array('1x' => $thegem_size_tablet, '2x' => $retina_size_tablet)), array('srcset' => array('1x' => $thegem_size, '2x' => $retina_size)), ); } return array($thegem_size, $thegem_sources); } } if (!function_exists('thegem_extended_products_render_item')) { function thegem_extended_products_render_item($params, $item_classes, $thegem_sizes = null, $post_id = false, $is_cat = false) { global $post, $product, $woocommerce_loop; if ($is_cat) { $category = $post_id; $slugs = array(); $thegem_highlight_type = 'disabled'; } else if ($post_id) { $slugs = wp_get_object_terms($post_id, 'product_cat', array('fields' => 'slugs')); $thegem_product_featured_data = thegem_get_sanitize_product_featured_data(get_the_ID()); if ($params['ignore_highlights'] != '1' && !empty($thegem_product_featured_data['highlight'])) { $thegem_highlight_type = $thegem_product_featured_data['highlight_type']; } else { $thegem_highlight_type = 'disabled'; } } else { $slugs = array(); $product_grid_item_size = true; $thegem_highlight_type = 'disabled'; } $thegem_classes = array('portfolio-item', 'product'); $thegem_classes = array_merge($thegem_classes, $slugs); if ($params['layout'] != 'metro' || isset($product_grid_item_size)) { if ($thegem_highlight_type != 'disabled' && $thegem_highlight_type != 'vertical') { $thegem_classes = array_merge($thegem_classes, get_thegem_extended_products_render_item_classes($params, $thegem_highlight_type)); } else { $thegem_classes = array_merge($thegem_classes, $item_classes); } } if ($thegem_highlight_type != 'disabled') { $thegem_classes[] = 'double-item'; $thegem_classes[] = 'double-item-' . $thegem_highlight_type; $thegem_sizes = get_thegem_extended_products_render_item_image_sizes($params, $thegem_highlight_type); } if ($params['loading_animation'] === '1') { $thegem_classes[] = 'item-animations-not-inited'; } $add_to_cart_class = ''; $product_bottom_class = ''; if ($params['product_show_add_to_cart_mobiles'] != '1') { $add_to_cart_class = 'hide-tablet hide-mobile'; if ($params['product_show_wishlist'] != '1' && $params['social_sharing'] != '1') { $product_bottom_class = 'empty-mobile'; } } if ($is_cat) { include(locate_template(array('gem-templates/products-extended/content-product-cat.php'))); } else { include(locate_template(array('gem-templates/products-extended/content-product-grid-item.php'))); } } } if (!function_exists('thegem_extended_products_get_product_price_range')) { function thegem_extended_products_get_product_price_range($featured_only = false, $sale_only = false, $products_cat = null, $attributes = null) { global $wpdb; if (!$products_cat && !$attributes) { return null; } $tax_query = []; if ($products_cat && !in_array('0', $products_cat, true)) { $tax_query[] = array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => $products_cat ); } if ($attributes) { foreach ($attributes as $attr => $attr_arr) { if (!empty($attr_arr)) { $tax_query[] = array( 'taxonomy' => 'pa_' . $attr, 'field' => 'slug', 'terms' => $attr_arr ); } } } if ($featured_only) { $tax_query[] = array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ); } $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1, 'fields' => 'ids' ); if (!empty($tax_query)) { $args['tax_query'] = $tax_query; } if ($sale_only) { $args['post__in'] = array_merge(array(0), wc_get_product_ids_on_sale()); } $portfolio_loop = new WP_Query($args); $product_query_sql = $portfolio_loop->request; $price_filter_sql = " SELECT min( min_price ) as min_price, MAX( max_price ) as max_price FROM {$wpdb->wc_product_meta_lookup} WHERE product_id IN ( {$product_query_sql} ) "; $price_obj = $wpdb->get_row($price_filter_sql); $price['min'] = $price_obj->min_price; $price['max'] = $price_obj->max_price; return $price; } } if (!function_exists('thegem_extended_products_render_styles')) { function thegem_extended_products_render_styles($params, $carousel = false) { $widget_styles = false; if (isset($params['style_uid']) && $params['style_uid'] != '') { $wrapper = '.extended-products-grid[data-style-uid="' . $params['style_uid'] . '"]'; $wrapper_skeleton = '.preloader[data-style-uid="' . $params['style_uid'] . '"]'; $wrapper_notification = '.thegem-popup-notification-wrap[data-style-uid="' . $params['style_uid'] . '"]'; $widget_styles = true; } else { $wrapper = '.portfolio.extended-products-grid.to-extended-products'; $wrapper_skeleton = '.preloader[data-style-uid="to_products"]'; $wrapper_notification = '.thegem-popup-notification-wrap[data-style-uid="to_products"]'; } $image_gaps = $params['image_gaps']; $image_gaps_tablet = $params['image_gaps_tablet']; $image_gaps_mobile = $params['image_gaps_mobile']; if ($widget_styles) { $style = "<style>"; } else { $style = ""; }; if ($carousel) { $style .= $wrapper . ".item-separator .portfolio-item { padding: calc(" . $image_gaps_mobile . "px/2) !important; }". $wrapper . ":not(.item-separator) .fullwidth-block { padding: 0 calc(" . $image_gaps_mobile . "px) !important; }". $wrapper_skeleton . " .portfolio-item { padding: calc(" . $image_gaps_mobile . "px/2); }" . $wrapper_skeleton . " .skeleton-posts.portfolio-row { margin: calc(-" . $image_gaps_mobile . "px/2); }" ; $style .= "@media (min-width: 768px) { " . $wrapper . ".item-separator .portfolio-item { padding: calc(" . $image_gaps_tablet . "px/2) !important; }". $wrapper . ":not(.item-separator) .fullwidth-block { padding: 0 calc(" . $image_gaps_tablet . "px) !important; }". $wrapper_skeleton . " .portfolio-item { padding: calc(" . $image_gaps_tablet . "px/2); }" . $wrapper_skeleton . " .skeleton-posts.portfolio-row { margin: calc(-" . $image_gaps_tablet . "px/2); } }"; $style .= "@media (min-width: 992px) { " . $wrapper . ".item-separator .portfolio-item { padding: calc(" . $image_gaps . "px/2) !important; }". $wrapper . ":not(.item-separator) .fullwidth-block { padding: 0 calc(" . $image_gaps . "px) !important; }". $wrapper_skeleton . " .portfolio-item { padding: calc(" . $image_gaps . "px/2); }" . $wrapper_skeleton . " .skeleton-posts.portfolio-row { margin: calc(-" . $image_gaps . "px/2); } }"; } else { $style .= $wrapper . " .portfolio-item:not(.size-item) { padding: calc(" . $image_gaps_mobile . "px/2) !important; }" . $wrapper . " .portfolio-item.size-item { padding: 0 calc(" . $image_gaps_mobile . "px/2) !important; }" . $wrapper . ":not(.item-separator) .portfolio-row { margin: calc(-" . $image_gaps_mobile . "px/2); }" . $wrapper . ".item-separator .portfolio-row { margin: 0 calc(-" . $image_gaps_mobile . "px/2); }" . $wrapper . ".fullwidth-columns:not(.item-separator) .portfolio-row { margin: calc(-" . $image_gaps_mobile . "px/2) 0; }" . $wrapper . ".fullwidth-columns.item-separator .portfolio-row { margin: 0; }" . $wrapper . " .fullwidth-block:not(.no-paddings) { padding-left: " . $image_gaps_mobile . "px; padding-right: " . $image_gaps_mobile . "px; }" . $wrapper . " .fullwidth-block .portfolio-row { padding-left: calc(" . $image_gaps_mobile . "px/2); padding-right: calc(" . $image_gaps_mobile . "px/2); }" . $wrapper . ":not(.item-separator) .fullwidth-block .portfolio-top-panel { padding-left: " . $image_gaps_mobile . "px; padding-right: " . $image_gaps_mobile . "px; }" . $wrapper . ".item-separator .fullwidth-block .portfolio-top-panel { padding-left: calc(" . $image_gaps_mobile . "px/2); padding-right: calc(" . $image_gaps_mobile . "px/2); }" . $wrapper . ".fullwidth-columns .with-filter-sidebar .filter-sidebar { padding-left: " . $image_gaps_mobile . "px; }". $wrapper . ".list-style.with-divider .portfolio-set .portfolio-item .wrap:before { top: calc(-" . $image_gaps_mobile . "px/2); }". $wrapper_skeleton . " .portfolio-item { padding: calc(" . $image_gaps_mobile . "px/2); }" . $wrapper_skeleton . " .skeleton-posts.portfolio-row { margin: calc(-" . $image_gaps_mobile . "px/2); }"; $style .= "@media (min-width: 768px) { " . $wrapper . " .portfolio-item:not(.size-item) { padding: calc(" . $image_gaps_tablet . "px/2) !important; }" . $wrapper . " .portfolio-item.size-item { padding: 0 calc(" . $image_gaps_tablet . "px/2) !important; }" . $wrapper . ":not(.item-separator) .portfolio-row { margin: calc(-" . $image_gaps_tablet . "px/2); }" . $wrapper . ".item-separator .portfolio-row { margin: 0 calc(-" . $image_gaps_tablet . "px/2); }" . $wrapper . ".fullwidth-columns:not(.item-separator) .portfolio-row { margin: calc(-" . $image_gaps_tablet . "px/2) 0; }" . $wrapper . ".fullwidth-columns.item-separator .portfolio-row { margin: 0; }" . $wrapper . " .fullwidth-block:not(.no-paddings) { padding-left: " . $image_gaps_tablet . "px; padding-right: " . $image_gaps_tablet . "px; }" . $wrapper . " .fullwidth-block .portfolio-row { padding-left: calc(" . $image_gaps_tablet . "px/2); padding-right: calc(" . $image_gaps_tablet . "px/2); }" . $wrapper . ":not(.item-separator) .fullwidth-block .portfolio-top-panel { padding-left: " . $image_gaps_tablet . "px; padding-right: " . $image_gaps_tablet . "px; }" . $wrapper . ".item-separator .fullwidth-block .portfolio-top-panel { padding-left: calc(" . $image_gaps_tablet . "px/2); padding-right: calc(" . $image_gaps_tablet . "px/2); }" . $wrapper . ".fullwidth-columns .with-filter-sidebar .filter-sidebar { padding-left: " . $image_gaps_tablet . "px; }". $wrapper . ".list-style.with-divider .portfolio-set .portfolio-item .wrap:before { top: calc(-" . $image_gaps_tablet . "px/2); }". $wrapper_skeleton . " .portfolio-item { padding: calc(" . $image_gaps_tablet . "px/2); }" . $wrapper_skeleton . " .skeleton-posts.portfolio-row { margin: calc(-" . $image_gaps_tablet . "px/2); } }"; $style .= "@media (min-width: 992px) { " . $wrapper . " .portfolio-item:not(.size-item) { padding: calc(" . $image_gaps . "px/2) !important; }" . $wrapper . " .portfolio-item.size-item { padding: 0 calc(" . $image_gaps . "px/2) !important; }" . $wrapper . ":not(.item-separator) .portfolio-row { margin: calc(-" . $image_gaps . "px/2); }" . $wrapper . ".item-separator .portfolio-row { margin: 0 calc(-" . $image_gaps . "px/2); }" . $wrapper . ".fullwidth-columns:not(.item-separator) .portfolio-row { margin: calc(-" . $image_gaps . "px/2) 0; }" . $wrapper . ".fullwidth-columns.item-separator .portfolio-row { margin: 0; }" . $wrapper . " .fullwidth-block:not(.no-paddings) { padding-left: " . $image_gaps . "px; padding-right: " . $image_gaps . "px; }" . $wrapper . " .fullwidth-block .portfolio-row { padding-left: calc(" . $image_gaps . "px/2); padding-right: calc(" . $image_gaps . "px/2); }" . $wrapper . ":not(.item-separator) .fullwidth-block .portfolio-top-panel { padding-left: " . $image_gaps . "px; padding-right: " . $image_gaps . "px; }" . $wrapper . ".item-separator .fullwidth-block .portfolio-top-panel { padding-left: calc(" . $image_gaps . "px/2); padding-right: calc(" . $image_gaps . "px/2); }" . $wrapper . ".fullwidth-columns .with-filter-sidebar .filter-sidebar { padding-left: " . $image_gaps . "px; }". $wrapper . ".list-style.with-divider .portfolio-set .portfolio-item .wrap:before { top: calc(-" . $image_gaps . "px/2); }". $wrapper_skeleton . " .portfolio-item { padding: calc(" . $image_gaps . "px/2); }" . $wrapper_skeleton . " .skeleton-posts.portfolio-row { margin: calc(-" . $image_gaps . "px/2); } }"; if ((isset($params['columns_desktop']) && $params['columns_desktop'] == '100%') || (isset($params['fullwidth_section_sorting']) && $params['fullwidth_section_sorting'] == '1') || (!$widget_styles && thegem_get_option('product_archive_content_width') === 'fullwidth-nogaps')) { if ($image_gaps_mobile < 21) { $style .= $wrapper . " .portfolio-row-outer.fullwidth-block .portfolio-top-panel, " . $wrapper . " .portfolio-item.not-found .wrap { padding-left: 21px; padding-right: 21px; }" . $wrapper . ".fullwidth-columns .with-filter-sidebar .filter-sidebar { padding-left: 21px;}"; } if ($image_gaps_tablet < 21) { $style .= "@media (min-width: 768px) { " . $wrapper . " .portfolio-row-outer.fullwidth-block .portfolio-top-panel, " . $wrapper . " .portfolio-item.not-found .wrap { padding-left: 21px; padding-right: 21px; }" . $wrapper . ".fullwidth-columns .with-filter-sidebar .filter-sidebar { padding-left: 21px;}}"; } if ($image_gaps < 21) { $style .= "@media (min-width: 992px) { " . $wrapper . " .portfolio-row-outer.fullwidth-block .portfolio-top-panel, " . $wrapper . " .portfolio-item.not-found .wrap { padding-left: 21px; padding-right: 21px; }" . $wrapper . ".fullwidth-columns .with-filter-sidebar .filter-sidebar { padding-left: 21px;}}"; } } } if (isset($params['product_show_categories']) && ($params['product_show_categories'] === '' || $params['product_show_categories'] === '0')) { $style .= $wrapper . " .categories { display: none }"; } if (isset($params['product_show_categories_tablet'])) { if ($params['product_show_categories_tablet'] === '' || $params['product_show_categories_tablet'] === '0') { $style .= "@media (max-width: 991px) { " . $wrapper . " .categories { display: none } }"; } else { $style .= "@media (max-width: 991px) { " . $wrapper . " .categories { display: block } }"; } } if (isset($params['product_show_categories_mobile'])) { if ($params['product_show_categories_mobile'] === '' || $params['product_show_categories_mobile'] === '0') { $style .= "@media (max-width: 767px) { " . $wrapper . " .categories { display: none } }"; } else { $style .= "@media (max-width: 767px) { " . $wrapper . " .categories { display: block } }"; } } if (isset($params['product_show_reviews']) && ($params['product_show_reviews'] === '' || $params['product_show_reviews'] === '0')) { $style .= $wrapper . " .reviews { display: none }"; } if (isset($params['product_show_reviews_tablet'])) { if ($params['product_show_reviews_tablet'] === '' || $params['product_show_reviews_tablet'] === '0') { $style .= "@media (max-width: 991px) { " . $wrapper . " .reviews { display: none } }"; } else { $style .= "@media (max-width: 991px) { " . $wrapper . " .reviews { display: block } }"; } } if (isset($params['product_show_reviews_mobile'])) { if ($params['product_show_reviews_mobile'] === '' || $params['product_show_reviews_mobile'] === '0') { $style .= "@media (max-width: 767px) { " . $wrapper . " .reviews { display: none } }"; } else { $style .= "@media (max-width: 767px) { " . $wrapper . " .reviews { display: block } }"; } } if (isset($params['product_separator']) && $params['product_separator'] === '1' && $params['product_separator_width'] !== '') { $style .= $wrapper . ".item-separator .portfolio-item:before," . $wrapper . ".item-separator .portfolio-item:after," . $wrapper . ".item-separator .portfolio-item .item-separator-box:before," . $wrapper . ".item-separator .portfolio-item .item-separator-box:after { border-width: " . $params['product_separator_width'] . "px; border-color: " . $params['product_separator_color'] . ";}"; $style .= $wrapper . ".item-separator .portfolio-item .item-separator-box:before," . $wrapper . ".item-separator .portfolio-item .item-separator-box:after { width: calc(100% + " . $params['product_separator_width'] . "px); left: calc(-" . $params['product_separator_width'] . "px/2);}"; $style .= $wrapper . ".item-separator .portfolio-item:before," . $wrapper . ".item-separator .portfolio-item:after { height: calc(100% + " . $params['product_separator_width'] . "px); top: calc(-" . $params['product_separator_width'] . "px/2);}"; if ($carousel) { $style .= $wrapper . ".item-separator .owl-carousel .owl-stage-outer { padding: calc(" . $params['product_separator_width'] . "px/2); width: calc(100% + " . $params['product_separator_width'] . "px); margin-left: calc(-" . $params['product_separator_width'] . "px/2);}"; } if ($params['product_separator_width'] % 2 !== 0 ) { $floor = floor($params['product_separator_width']/2); $ceil = ceil($params['product_separator_width']/2); $style .= $wrapper . ".item-separator .portfolio-item:before { transform: translateX(-" . $floor . "px) !important; top: -" . $floor . "px !important;}"; $style .= $wrapper . ".item-separator .portfolio-item:after { transform: translateX(" . $ceil . "px) !important; top: -" . $floor . "px !important;}"; $style .= $wrapper . ".item-separator .portfolio-item .item-separator-box:before { transform: translateY(-" . $floor . "px) !important; left: -" . $floor . "px !important;}"; $style .= $wrapper . " .portfolio-item .item-separator-box:after { transform: translateY(" . $ceil . "px) !important; left: -" . $floor . "px !important;}"; if ($carousel) { $style .= $wrapper . ".item-separator .owl-carousel .owl-stage-outer { padding: " . $ceil . "px !important; width: calc(100% + " . $ceil . "px * 2) !important; margin-left: calc(-" . $ceil . "px) !important; }"; } } } if (isset($params['image_border_width']) && $params['image_border_width'] != '') { if (isset($params['border_caption_container']) && $params['border_caption_container'] === '1') { $style .= $wrapper . " .portfolio-item.product .wrap > .image { border-width: " . $params['image_border_width'] . "px; border-style: solid; border-bottom: 0; }"; $style .= $wrapper . " .portfolio-item.product .wrap > .caption { border-width: " . $params['image_border_width'] . "px; border-style: solid; border-top: 0; }"; } else { $style .= $wrapper . " .portfolio-item.product .wrap > .image { border-width: " . $params['image_border_width'] . "px; border-style: solid; }"; } if (isset($params['image_border_color']) && $params['image_border_color'] != '') { $style .= $wrapper . " .portfolio-item.product .wrap > .image, " . $wrapper . " .portfolio-item.product .wrap > .caption { border-color: " . $params['image_border_color'] . "; }"; } if (isset($params['image_border_color_hover']) && $params['image_border_color_hover'] != '') { $style .= $wrapper . " .portfolio-item:hover.product .wrap > .image, " . $wrapper . " .portfolio-item:hover.product .wrap > .caption { border-color: " . $params['image_border_color_hover'] . "; }"; } } if (isset($params['image_border_radius']) && $params['image_border_radius'] != '') { if (isset($params['border_caption_container']) && $params['border_caption_container'] === '1') { $style .= $wrapper . " .portfolio-item .wrap { border-radius: " . $params['image_border_radius'] . "px; }"; $style .= $wrapper . " .portfolio-item .wrap .image," . $wrapper . " .portfolio-item .wrap .image-inner { border-top-left-radius: " . $params['image_border_radius'] . "px; border-top-right-radius: " . $params['image_border_radius'] . "px; }"; $style .= $wrapper . " .portfolio-item .wrap .caption { border-bottom-left-radius: " . $params['image_border_radius'] . "px; border-bottom-right-radius: " . $params['image_border_radius'] . "px; }"; } else { $style .= $wrapper . " .portfolio-item .image," . $wrapper . " .portfolio-item .image .image-inner," . $wrapper . " .portfolio-item .image .overlay," . $wrapper . " .portfolio-item .image .variations-notification," . $wrapper . ".caption-position-hover .portfolio-item .wrap," . $wrapper . ".caption-position-image .portfolio-item .wrap { border-radius: " . $params['image_border_radius'] . "px }"; $style .= $wrapper . ".caption-position-page .portfolio-item .wrap { border-radius: " . $params['image_border_radius'] . "px " . $params['image_border_radius'] . "px 0 0 }"; } } if ( !empty( $params['enable_shadow'] ) ) { $shadow_position = ''; if ( $params['shadow_position'] == 'inset' ) { $shadow_position = 'inset'; } $shadow_horizontal = $params['shadow_horizontal'] ?: 0; $shadow_vertical = $params['shadow_vertical'] ?: 0; $shadow_blur = $params['shadow_blur'] ?: 0; $shadow_spread = $params['shadow_spread'] ?: 0; $shadow_color = $params['shadow_color'] ?: '#000'; if ( !empty( $params['shadowed_container'] ) ) { $style .= $wrapper . ".shadowed-container .portfolio-item .wrap { box-shadow: " . $shadow_position . " " . $shadow_horizontal . "px " . $shadow_vertical . "px " . $shadow_blur . "px " . $shadow_spread . "px " . $shadow_color . "; }"; } else { $style .= $wrapper . ":not(.shadowed-container) .portfolio-item .image { box-shadow: " . $shadow_position . " " . $shadow_horizontal . "px " . $shadow_vertical . "px " . $shadow_blur . "px " . $shadow_spread . "px " . $shadow_color . " !important; }"; } } if (isset($params['caption_container_preset_hover_background_color']) && $params['caption_container_preset_hover_background_color'] != '') { if (isset($params['caption_container_preset_hover']) && $params['caption_container_preset_hover'] == 'solid') { $style .= $wrapper . ".caption-container-preset-solid .portfolio-item .image .overlay .links-wrapper .links { background: " . $params['caption_container_preset_hover_background_color'] . " }"; } else { $style .= $wrapper . ".caption-container-preset-light .portfolio-item .image .overlay .links-wrapper .links," . $wrapper . ".caption-container-preset-dark .portfolio-item .image .overlay .links-wrapper .links { background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, " . $params['caption_container_preset_hover_background_color'] . " 100%) }"; } } if (isset($params['categories_color_normal']) && $params['categories_color_normal'] != '') { $style .= $wrapper . " .portfolio-item.product .caption .categories," . $wrapper . " .portfolio-item.product .caption .categories a { color: " . $params['categories_color_normal'] . " }"; } if (isset($params['categories_color_hover']) && $params['categories_color_hover'] != '') { $style .= $wrapper . " .portfolio-item.product .caption .categories a:hover { color: " . $params['categories_color_hover'] . " }"; } if (isset($params['title_transform']) && $params['title_transform'] != '') { $style .= $wrapper . " .portfolio-item .wrap .caption .title, " . $wrapper . " .portfolio-item .wrap .caption .title a { text-transform: " . $params['title_transform'] . "; }"; } if (isset($params['title_color_normal']) && $params['title_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .caption .title, " . $wrapper . " .portfolio-item .wrap .caption .title a { color: " . $params['title_color_normal'] . " }"; } if (isset($params['title_color_hover']) && $params['title_color_hover'] != '') { $style .= $wrapper . " .portfolio-item:hover .wrap .caption .title," . $wrapper . " .portfolio-item.hover-effect .wrap .caption .title," . $wrapper . " .portfolio-item:hover .wrap .caption .title a," . $wrapper . " .portfolio-item.hover-effect .wrap .caption .title a { color: " . $params['title_color_hover'] . " }"; } if (isset($params['truncate_description']) && $params['truncate_description'] != '') { $style .= $wrapper . " .portfolio-item .caption .description .subtitle span { max-height: initial; display: -webkit-box; -webkit-line-clamp: " . $params['truncate_description'] . "; line-clamp: " . $params['truncate_description'] . "; -webkit-box-orient: vertical; }"; } if (isset($params['description_color_normal']) && $params['description_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .caption .description .subtitle, " . $wrapper . " .portfolio-item .wrap .caption .title a { color: " . $params['description_color_normal'] . " }"; } if (isset($params['description_color_hover']) && $params['description_color_hover'] != '') { $style .= $wrapper . " .portfolio-item:hover .wrap .caption .description .subtitle," . $wrapper . " .portfolio-item.hover-effect .wrap .caption .description .subtitle { color: " . $params['description_color_hover'] . " }"; } if (isset($params['description_max_width']) && $params['description_max_width'] != '') { $style .= $wrapper . " .portfolio-item .wrap > .caption .description { display: inline-block; max-width: " . $params['description_max_width'] . "px }"; } if (isset($params['price_color_normal']) && $params['price_color_normal'] != '') { $style .= $wrapper . " .portfolio-item.product .caption .product-price .price { color: " . $params['price_color_normal'] . " }"; } if (isset($params['price_color_hover']) && $params['price_color_hover'] != '') { $style .= $wrapper . " .portfolio-item.product:hover .caption .product-price .price," . $wrapper . " .portfolio-item.product.hover-effect .caption .product-price .price { color: " . $params['price_color_hover'] . " }"; } if (isset($params['rated_color_normal']) && $params['rated_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .star-rating > span:before { color: " . $params['rated_color_normal'] . " !important }"; } if (isset($params['rated_color_hover']) && $params['rated_color_hover'] != '') { $style .= $wrapper . " .portfolio-item:hover .star-rating > span:before," . $wrapper . " .portfolio-item.hover-effect .star-rating > span:before { color: " . $params['rated_color_hover'] . " !important }"; } if (isset($params['base_color_normal']) && $params['base_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .star-rating:before { color: " . $params['base_color_normal'] . " !important }"; } if (isset($params['base_color_hover']) && $params['base_color_hover'] != '') { $style .= $wrapper . " .portfolio-item:hover .star-rating:before," . $wrapper . " .portfolio-item.hover-effect .star-rating:before { color: " . $params['base_color_hover'] . " !important }"; } if (isset($params['caption_container_alignment']) && $params['caption_container_alignment'] != '') { $style .= $wrapper . " .portfolio-item .wrap > .caption { text-align: " . $params['caption_container_alignment'] . " }"; $style .= $wrapper . " .portfolio-item .wrap > .caption .star-rating," . $wrapper . " .portfolio-item .wrap > .caption .product-rating .empty-rating:before," . $wrapper . " .portfolio-item .wrap > .caption .categories," . $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption { margin-" . $params['caption_container_alignment'] . ": 0 !important} "; } if (isset($params['caption_container_alignment_tablet']) && $params['caption_container_alignment_tablet'] != '') { $style .= "@media (max-width: 991px) { " . $wrapper . " .portfolio-item .wrap > .caption { text-align: " . $params['caption_container_alignment_tablet'] . " }"; $style .= $wrapper . " .portfolio-item .wrap > .caption .star-rating," . $wrapper . " .portfolio-item .wrap > .caption .product-rating .empty-rating:before," . $wrapper . " .portfolio-item .wrap > .caption .categories," . $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption { margin-" . $params['caption_container_alignment_tablet'] . ": 0 }}"; } if (isset($params['caption_container_alignment_mobile']) && $params['caption_container_alignment_mobile'] != '') { $style .= "@media (max-width: 767px) { " . $wrapper . " .portfolio-item .wrap > .caption { text-align: " . $params['caption_container_alignment_mobile'] . " }"; $style .= $wrapper . " .portfolio-item .wrap > .caption .star-rating," . $wrapper . " .portfolio-item .wrap > .caption .product-rating .empty-rating:before," . $wrapper . " .portfolio-item .wrap > .caption .categories," . $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption { margin-" . $params['caption_container_alignment_mobile'] . ": 0 }}"; } if (isset($params['caption_background']) && $params['caption_background'] != '') { $style .= $wrapper . " .portfolio-item .wrap > .caption { background-color: " . $params['caption_background'] . " }"; } if (isset($params['caption_background_hover']) && $params['caption_background_hover'] != '') { $style .= $wrapper . " .portfolio-item:hover .wrap > .caption," . $wrapper . " .portfolio-item.hover-effect .wrap > .caption { background-color: " . $params['caption_background_hover'] . " }"; } if (isset($params['spacing_separator_weight']) && $params['spacing_separator_weight'] != '') { $style .= $wrapper . " .portfolio-item .product-info .product-rating .empty-rating:before { border-width: " . $params['spacing_separator_weight'] . "px }"; } if (isset($params['spacing_separator_color']) && $params['spacing_separator_color'] != '') { $style .= $wrapper . " .portfolio-item .product-info .product-rating .empty-rating:before { border-color: " . $params['spacing_separator_color'] . " }"; } if (isset($params['spacing_separator_color_hover']) && $params['spacing_separator_color_hover'] != '') { $style .= $wrapper . " .portfolio-item:hover .product-info .product-rating .empty-rating:before," . $wrapper . " .portfolio-item.hover-effect .product-info .product-rating .empty-rating:before { border-color: " . $params['spacing_separator_color_hover'] . " }"; } if (isset($params['icons_color_normal']) && $params['icons_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption a.icon," . $wrapper . " .portfolio-item .image .overlay .links .portfolio-icons .portfolio-icons-inner a.icon { color: " . $params['icons_color_normal'] . " }"; } if (isset($params['icons_color_hover']) && $params['icons_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption a.icon:hover," . $wrapper . " .portfolio-item .image .overlay .links .portfolio-icons .portfolio-icons-inner a.icon:hover { color: " . $params['icons_color_hover'] . " }"; } if (isset($params['icons_background_color_normal']) && $params['icons_background_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption a.icon," . $wrapper . " .portfolio-item .image .overlay .links .portfolio-icons .portfolio-icons-inner a.icon { background-color: " . $params['icons_background_color_normal'] . " }"; } if (isset($params['icons_background_color_hover']) && $params['icons_background_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption a.icon:hover," . $wrapper . " .portfolio-item .image .overlay .links .portfolio-icons .portfolio-icons-inner a.icon:hover { background-color: " . $params['icons_background_color_hover'] . " }"; } if (isset($params['icons_border_color_normal']) && $params['icons_border_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption a.icon," . $wrapper . " .portfolio-item .image .overlay .links .portfolio-icons .portfolio-icons-inner a.icon { border-color: " . $params['icons_border_color_normal'] . " }"; } if (isset($params['icons_border_color_hover']) && $params['icons_border_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption a.icon:hover," . $wrapper . " .portfolio-item .image .overlay .links .portfolio-icons .portfolio-icons-inner a.icon:hover { border-color: " . $params['icons_border_color_hover'] . " }"; } if (isset($params['icons_border_width']) && $params['icons_border_width'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption a.icon," . $wrapper . " .portfolio-item .image .overlay .links .portfolio-icons .portfolio-icons-inner a.icon { border-width: " . $params['icons_border_width'] . "px; border-style: solid }"; } if (isset($params['buttons_border_width']) && $params['buttons_border_width'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button," . $wrapper . " .portfolio-item .image .overlay .links .caption .add_to_cart_button.type_button," . $wrapper_notification . " .thegem-popup-notification .notification-message a.button," . $wrapper . " .portfolio-item.product .actions .button { border-width: " . $params['buttons_border_width'] . "px }"; } if (isset($params['buttons_border_width_tablet']) && $params['buttons_border_width_tablet'] != '') { $style .= "@media (max-width: 991px) { " . $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button," . $wrapper . " .portfolio-item .image .overlay .links .caption .add_to_cart_button.type_button," . $wrapper_notification . " .thegem-popup-notification .notification-message a.button," . $wrapper . " .portfolio-item.product .actions .button { border-width: " . $params['buttons_border_width_tablet'] . "px }}"; } if (isset($params['buttons_border_width_mobile']) && $params['buttons_border_width_mobile'] != '') { $style .= "@media (max-width: 767px) { " . $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button," . $wrapper . " .portfolio-item .image .overlay .links .caption .add_to_cart_button.type_button," . $wrapper_notification . " .thegem-popup-notification .notification-message a.button," . $wrapper . " .portfolio-item.product .actions .button { border-width: " . $params['buttons_border_width_mobile'] . "px }}"; } if (isset($params['buttons_border_radius']) && $params['buttons_border_radius'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button," . $wrapper . " .portfolio-item .image .overlay .links .caption .add_to_cart_button.type_button," . $wrapper_notification . " .thegem-popup-notification .notification-message a.button," . $wrapper . " .portfolio-item.product .actions .button { border-radius: " . $params['buttons_border_radius'] . "px }"; } if (isset($params['buttons_border_radius_tablet']) && $params['buttons_border_radius_tablet'] != '') { $style .= "@media (max-width: 991px) { " . $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button," . $wrapper . " .portfolio-item .image .overlay .links .caption .add_to_cart_button.type_button," . $wrapper_notification . " .thegem-popup-notification .notification-message a.button," . $wrapper . " .portfolio-item.product .actions .button { border-radius: " . $params['buttons_border_radius_tablet'] . "px }}"; } if (isset($params['buttons_border_radius_mobile']) && $params['buttons_border_radius_mobile'] != '') { $style .= "@media (max-width: 767px) { " . $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button," . $wrapper . " .portfolio-item .image .overlay .links .caption .add_to_cart_button.type_button," . $wrapper_notification . " .thegem-popup-notification .notification-message a.button," . $wrapper . " .portfolio-item.product .actions .button { border-radius: " . $params['buttons_border_radius_mobile'] . "px }}"; } if (isset($params['buttons_icon_alignment']) && $params['buttons_icon_alignment'] != '' ) { if ($params['buttons_icon_alignment'] === 'left') { $direction = 'row'; } else { $direction = 'row-reverse'; } $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button," . $wrapper . " .portfolio-item .image .overlay .links .caption .add_to_cart_button.type_button { flex-direction: " . $direction . " }"; } if (isset($params['button_cart_color_normal']) && $params['button_cart_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_simple, " . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_simple, " . $wrapper . " .portfolio-item.product .actions .button { color: " . $params['button_cart_color_normal'] . " }"; } if (isset($params['button_cart_color_hover']) && $params['button_cart_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_simple:hover, " . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_simple:hover, " . $wrapper . " .portfolio-item.product .actions .button:hover { color: " . $params['button_cart_color_hover'] . " }"; } if (isset($params['button_cart_background_color_normal']) && $params['button_cart_background_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_simple, " . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_simple, " . $wrapper . " .portfolio-item.product .actions .button { background-color: " . $params['button_cart_background_color_normal'] . " }"; } if (isset($params['button_cart_background_color_hover']) && $params['button_cart_background_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_simple:hover, " . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_simple:hover, " . $wrapper . " .portfolio-item.product .actions .button:hover { background-color: " . $params['button_cart_background_color_hover'] . " }"; } if (isset($params['button_cart_border_color_normal']) && $params['button_cart_border_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_simple," . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_simple," . $wrapper . " .portfolio-item.product .actions .button { border-color: " . $params['button_cart_border_color_normal'] . " }"; } if (isset($params['button_cart_border_color_hover']) && $params['button_cart_border_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_simple:hover," . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_simple:hover," . $wrapper . " .portfolio-item.product .actions .button:hover { border-color: " . $params['button_cart_border_color_hover'] . " }"; } if (isset($params['button_options_color_normal']) && $params['button_options_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_variable," . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_variable { color: " . $params['button_options_color_normal'] . " }"; } if (isset($params['button_options_color_hover']) && $params['button_options_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_variable:hover," . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_variable:hover { color: " . $params['button_options_color_hover'] . " }"; } if (isset($params['button_options_background_color_normal']) && $params['button_options_background_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_variable," . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_variable { background-color: " . $params['button_options_background_color_normal'] . " }"; } if (isset($params['button_options_background_color_hover']) && $params['button_options_background_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_variable:hover," . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_variable:hover { background-color: " . $params['button_options_background_color_hover'] . " }"; } if (isset($params['button_options_border_color_normal']) && $params['button_options_border_color_normal'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_variable," . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_variable { border-color: " . $params['button_options_border_color_normal'] . " }"; } if (isset($params['button_options_border_color_hover']) && $params['button_options_border_color_hover'] != '') { $style .= $wrapper . " .portfolio-item .wrap .product-bottom.on-page-caption .add_to_cart_button.type_button.product_type_variable:hover," . $wrapper . " .portfolio-item .image .overlay .links .caption a.add_to_cart_button.product_type_variable:hover { border-color: " . $params['button_options_border_color_hover'] . " }"; } if (isset($params['pagination_spacing']) && $params['pagination_spacing'] != '') { $style .= $wrapper . " .portfolio-row + .gem-pagination { margin-top: " . $params['pagination_spacing'] . "px }"; } if (isset($params['pagination_numbers_border_width']) && $params['pagination_numbers_border_width'] != '') { $style .= $wrapper . " .gem-pagination a { border-width: " . $params['pagination_numbers_border_width'] . "px }"; } if (isset($params['pagination_numbers_border_radius']) && $params['pagination_numbers_border_radius'] != '') { $style .= $wrapper . " .gem-pagination a { border-radius: " . $params['pagination_numbers_border_radius'] . "px }"; } if (isset($params['pagination_numbers_background_color_normal']) && $params['pagination_numbers_background_color_normal'] != '') { $style .= $wrapper . " .gem-pagination a { background-color: " . $params['pagination_numbers_background_color_normal'] . " }"; } if (isset($params['pagination_numbers_background_color_hover']) && $params['pagination_numbers_background_color_hover'] != '') { $style .= $wrapper . " .gem-pagination a:hover { background-color: " . $params['pagination_numbers_background_color_hover'] . " }"; } if (isset($params['pagination_numbers_background_color_active']) && $params['pagination_numbers_background_color_active'] != '') { $style .= $wrapper . " .gem-pagination a.current { background-color: " . $params['pagination_numbers_background_color_active'] . " }"; } if (isset($params['pagination_numbers_text_color_normal']) && $params['pagination_numbers_text_color_normal'] != '') { $style .= $wrapper . " .gem-pagination a { color: " . $params['pagination_numbers_text_color_normal'] . " }"; } if (isset($params['pagination_numbers_text_color_hover']) && $params['pagination_numbers_text_color_hover'] != '') { $style .= $wrapper . " .gem-pagination a:hover { color: " . $params['pagination_numbers_text_color_hover'] . " }"; } if (isset($params['pagination_numbers_text_color_active']) && $params['pagination_numbers_text_color_active'] != '') { $style .= $wrapper . " .gem-pagination a.current { color: " . $params['pagination_numbers_text_color_active'] . " }"; } if (isset($params['pagination_numbers_border_color_normal']) && $params['pagination_numbers_border_color_normal'] != '') { $style .= $wrapper . " .gem-pagination a { border-color: " . $params['pagination_numbers_border_color_normal'] . " }"; } if (isset($params['pagination_numbers_border_color_hover']) && $params['pagination_numbers_border_color_hover'] != '') { $style .= $wrapper . " .gem-pagination a:hover { border-color: " . $params['pagination_numbers_border_color_hover'] . " }"; } if (isset($params['pagination_numbers_border_color_active']) && $params['pagination_numbers_border_color_active'] != '') { $style .= $wrapper . " .gem-pagination a.current { border-color: " . $params['pagination_numbers_border_color_active'] . " }"; } if (isset($params['pagination_arrows_background_color_normal']) && $params['pagination_arrows_background_color_normal'] != '') { $style .= $wrapper . " .gem-pagination .prev, " . $wrapper . " .gem-pagination .next { background-color: " . $params['pagination_arrows_background_color_normal'] . " }"; } if (isset($params['pagination_arrows_background_color_hover']) && $params['pagination_arrows_background_color_hover'] != '') { $style .= $wrapper . " .gem-pagination .prev:hover, " . $wrapper . " .gem-pagination .next:hover { background-color: " . $params['pagination_arrows_background_color_hover'] . " }"; } if (isset($params['pagination_arrows_border_color_normal']) && $params['pagination_arrows_border_color_normal'] != '') { $style .= $wrapper . " .gem-pagination .prev, " . $wrapper . " .gem-pagination .next { border-color: " . $params['pagination_arrows_border_color_normal'] . " }"; } if (isset($params['pagination_arrows_border_color_hover']) && $params['pagination_arrows_border_color_hover'] != '') { $style .= $wrapper . " .gem-pagination .prev:hover, " . $wrapper . " .gem-pagination .next:hover { border-color: " . $params['pagination_arrows_border_color_hover'] . " }"; } if (isset($params['pagination_arrows_icon_color_normal']) && $params['pagination_arrows_icon_color_normal'] != '') { $style .= $wrapper . " .gem-pagination .prev, " . $wrapper . " .gem-pagination .next { color: " . $params['pagination_arrows_icon_color_normal'] . " }"; } if (isset($params['pagination_arrows_icon_color_hover']) && $params['pagination_arrows_icon_color_hover'] != '') { $style .= $wrapper . " .gem-pagination .prev:hover, " . $wrapper . " .gem-pagination .next:hover { color: " . $params['pagination_arrows_icon_color_hover'] . " }"; } if (isset($params['pagination_more_spacing']) && $params['pagination_more_spacing'] != '') { $style .= $wrapper . " .portfolio-load-more { margin-top: " . $params['pagination_more_spacing'] . "px }"; } if (isset($params['pagination_more_button_no_uppercase']) && $params['pagination_more_button_no_uppercase'] === '1') { $style .= $wrapper . " .portfolio-load-more .gem-button { text-transform: initial; }"; } if (isset($params['pagination_more_button_border_radius']) && $params['pagination_more_button_border_radius'] != '') { $style .= $wrapper . " .portfolio-load-more .gem-button { border-radius: " . $params['pagination_more_button_border_radius'] . "px }"; } if (isset($params['pagination_more_button_border_width']) && $params['pagination_more_button_border_width'] != '') { $style .= $wrapper . " .portfolio-load-more .gem-button { border-width: " . $params['pagination_more_button_border_width'] . "px }"; } if (isset($params['pagination_more_button_text_color_normal']) && $params['pagination_more_button_text_color_normal'] != '') { $style .= $wrapper . " .portfolio-load-more .gem-button { color: " . $params['pagination_more_button_text_color_normal'] . " }"; } if (isset($params['pagination_more_button_text_color_hover']) && $params['pagination_more_button_text_color_hover'] != '') { $style .= $wrapper . " .portfolio-load-more .gem-button:hover { color: " . $params['pagination_more_button_text_color_hover'] . " }"; } if (isset($params['pagination_more_button_bg_color_normal']) && $params['pagination_more_button_bg_color_normal'] != '') { $style .= $wrapper . " .portfolio-load-more .gem-button { background-color: " . $params['pagination_more_button_bg_color_normal'] . " }"; } if (isset($params['pagination_more_button_bg_color_hover']) && $params['pagination_more_button_bg_color_hover'] != '') { $style .= $wrapper . " .portfolio-load-more .gem-button:hover { background-color: " . $params['pagination_more_button_bg_color_hover'] . " }"; } if (isset($params['pagination_more_button_border_color_normal']) && $params['pagination_more_button_border_color_normal'] != '') { $style .= $wrapper . " .portfolio-load-more .gem-button { border-color: " . $params['pagination_more_button_border_color_normal'] . " }"; } if (isset($params['pagination_more_button_border_color_hover']) && $params['pagination_more_button_border_color_hover'] != '') { $style .= $wrapper . " .portfolio-load-more .gem-button:hover { border-color: " . $params['pagination_more_button_border_color_hover'] . " }"; } if (isset($params['sorting_text_color']) && $params['sorting_text_color'] != '') { $style .= $wrapper . " .portfolio-sorting-select div.portfolio-sorting-select-current { color: " . $params['sorting_text_color'] . " }"; } if (isset($params['sorting_border_radius']) && $params['sorting_border_radius'] != '') { $style .= $wrapper . " .portfolio-sorting-select div.portfolio-sorting-select-current { border-radius: " . $params['sorting_border_radius'] . "px }"; } if (isset($params['sorting_border_width']) && $params['sorting_border_width'] != '') { $style .= $wrapper . " .portfolio-sorting-select div.portfolio-sorting-select-current { border-width: " . $params['sorting_border_width'] . "px }"; } if (isset($params['sorting_bottom_spacing']) && $params['sorting_bottom_spacing'] != '') { $style .= $wrapper . " .portfolio-top-panel { margin-bottom: " . $params['sorting_bottom_spacing'] . "px }"; } if (isset($params['sorting_dropdown_text_color_normal']) && $params['sorting_dropdown_text_color_normal'] != '') { $style .= $wrapper . " .portfolio-sorting-select ul li { color: " . $params['sorting_dropdown_text_color_normal'] . " }"; } if (isset($params['sorting_dropdown_text_color_hover']) && $params['sorting_dropdown_text_color_hover'] != '') { $style .= $wrapper . " .portfolio-sorting-select ul li:hover { color: " . $params['sorting_dropdown_text_color_hover'] . " }"; } if (isset($params['sorting_dropdown_text_color_active']) && $params['sorting_dropdown_text_color_active'] != '') { $style .= $wrapper . " .portfolio-sorting-select ul li.portfolio-sorting-select-current { color: " . $params['sorting_dropdown_text_color_active'] . " }"; } if (isset($params['sorting_dropdown_background_color']) && $params['sorting_dropdown_background_color'] != '') { $style .= $wrapper . " .portfolio-sorting-select ul { background-color: " . $params['sorting_dropdown_background_color'] . " }"; } if (isset($params['new_label_background']) && $params['new_label_background'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels .label.new-label { background-color: " . $params['new_label_background'] . " }"; $style .= $wrapper . " .portfolio-item.product .product-labels .label.new-label:after { border-left-color: " . $params['new_label_background'] . "; border-right-color: " . $params['new_label_background'] . " }"; } if (isset($params['new_label_text_color']) && $params['new_label_text_color'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels .label.new-label { color: " . $params['new_label_text_color'] . " }"; } if (isset($params['sale_label_background']) && $params['sale_label_background'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels .label.onsale { background-color: " . $params['sale_label_background'] . " }"; $style .= $wrapper . " .portfolio-item.product .product-labels .label.onsale:after { border-left-color: " . $params['sale_label_background'] . "; border-right-color: " . $params['sale_label_background'] . " }"; } if (isset($params['sale_label_text_color']) && $params['sale_label_text_color'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels .label.onsale { color: " . $params['sale_label_text_color'] . " }"; } if (isset($params['out_label_background']) && $params['out_label_background'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels .label.out-of-stock-label { background-color: " . $params['out_label_background'] . " }"; $style .= $wrapper . " .portfolio-item.product .product-labels .label.out-of-stock-label:after { border-left-color: " . $params['out_label_background'] . "; border-right-color: " . $params['out_label_background'] . " }"; } if (isset($params['out_label_text_color']) && $params['out_label_text_color'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels .label.out-of-stock-label { color: " . $params['out_label_text_color'] . " }"; } if (isset($params['labels_margin_top']) && $params['labels_margin_top'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels { margin-top: " . $params['labels_margin_top'] . "px }"; } if (isset($params['labels_margin_bottom']) && $params['labels_margin_bottom'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels { margin-bottom: " . $params['labels_margin_bottom'] . "px }"; } if (isset($params['labels_margin_left']) && $params['labels_margin_left'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels { margin-left: " . $params['labels_margin_left'] . "px }"; } if (isset($params['labels_margin_right']) && $params['labels_margin_right'] != '') { $style .= $wrapper . " .portfolio-item.product .product-labels { margin-right: " . $params['labels_margin_right'] . "px }"; } if ($widget_styles) { $style .= '</style><style>'; } if (isset($params['filter_buttons_standard_color']) && $params['filter_buttons_standard_color'] != '') { $style .= $wrapper . " .portfolio-filters-list.style-standard .portfolio-filter-item .name { color: " . $params['filter_buttons_standard_color'] . " }"; } if (isset($params['filter_buttons_standard_border_width']) && $params['filter_buttons_standard_border_width'] != '') { $style .= $wrapper . " .portfolio-filters-list.style-standard .portfolio-filter-item .name { border-width: " . $params['filter_buttons_standard_border_width'] . "px }"; } if (isset($params['filter_buttons_standard_border_radius']) && $params['filter_buttons_standard_border_radius'] != '') { $style .= $wrapper . " .portfolio-filters-list.style-standard .portfolio-filter-item .name { border-radius: " . $params['filter_buttons_standard_border_radius'] . "px }"; } if (isset($params['filter_buttons_standard_bottom_spacing']) && $params['filter_buttons_standard_bottom_spacing'] != '') { $style .= $wrapper . " .portfolio-top-panel { margin-bottom: " . $params['filter_buttons_standard_bottom_spacing'] . "px }"; } if (isset($params['filter_buttons_standard_dropdown_text_color_normal']) && $params['filter_buttons_standard_dropdown_text_color_normal'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a," . $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list .price-range-slider .slider-amount," . $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list .price-range-slider .slider-amount .slider-amount-text { color: " . $params['filter_buttons_standard_dropdown_text_color_normal'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_text_color_hover']) && $params['filter_buttons_standard_dropdown_text_color_hover'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a:hover { color: " . $params['filter_buttons_standard_dropdown_text_color_hover'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_text_color_active']) && $params['filter_buttons_standard_dropdown_text_color_active'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a.active { color: " . $params['filter_buttons_standard_dropdown_text_color_active'] . " }"; $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list .price-range-slider .slider-range .ui-slider-range," . $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list .price-range-slider .slider-range .ui-slider-handle + span," . $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list .price-range-slider .slider-range .ui-slider-handle { background-color: " . $params['filter_buttons_standard_dropdown_text_color_active'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_background_color']) && $params['filter_buttons_standard_dropdown_background_color'] != '') { $style .= $wrapper . " .portfolio-filters-list.style-standard:not(.single-filter) .portfolio-filter-item .portfolio-filter-item-list { background-color: " . $params['filter_buttons_standard_dropdown_background_color'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_counts_color_normal']) && $params['filter_buttons_standard_dropdown_counts_color_normal'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a .count { color: " . $params['filter_buttons_standard_dropdown_counts_color_normal'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_counts_color_hover']) && $params['filter_buttons_standard_dropdown_counts_color_hover'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a:hover .count { color: " . $params['filter_buttons_standard_dropdown_counts_color_hover'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_counts_color_active']) && $params['filter_buttons_standard_dropdown_counts_color_active'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a.active .count { color: " . $params['filter_buttons_standard_dropdown_counts_color_active'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_counts_background_color_normal']) && $params['filter_buttons_standard_dropdown_counts_background_color_normal'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a .count { background-color: " . $params['filter_buttons_standard_dropdown_counts_background_color_normal'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_counts_background_color_hover']) && $params['filter_buttons_standard_dropdown_counts_background_color_hover'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a:hover .count { background-color: " . $params['filter_buttons_standard_dropdown_counts_background_color_hover'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_counts_background_color_active']) && $params['filter_buttons_standard_dropdown_counts_background_color_active'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list ul li a.active .count { background-color: " . $params['filter_buttons_standard_dropdown_counts_background_color_active'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_price_range_background_color_normal']) && $params['filter_buttons_standard_dropdown_price_range_background_color_normal'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list .price-range-slider .slider-amount { background-color: " . $params['filter_buttons_standard_dropdown_price_range_background_color_normal'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_price_range_background_color_hover']) && $params['filter_buttons_standard_dropdown_price_range_background_color_hover'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list .price-range-slider .slider-amount:hover { background-color: " . $params['filter_buttons_standard_dropdown_price_range_background_color_hover'] . " }"; } if (isset($params['filter_buttons_standard_dropdown_price_range_background_color_active']) && $params['filter_buttons_standard_dropdown_price_range_background_color_active'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-filter-item .portfolio-filter-item-list .price-range-slider .slider-amount.active { background-color: " . $params['filter_buttons_standard_dropdown_price_range_background_color_active'] . " }"; } if (isset($params['filter_buttons_hidden_sidebar_separator_width']) && $params['filter_buttons_hidden_sidebar_separator_width'] != '') { $style .= $wrapper . " .portfolio-filters-list.style-hidden .portfolio-filter-item, " . $wrapper . " .portfolio-filters-list.style-sidebar .portfolio-filter-item { border-width: " . $params['filter_buttons_hidden_sidebar_separator_width'] . "px }"; $style .= "@media (max-width: 991px) { " . $wrapper . " .portfolio-filters-list.style-standard .portfolio-filter-item { border-width: " . $params['filter_buttons_hidden_sidebar_separator_width'] . "px }}"; } if (isset($params['filter_buttons_hidden_sidebar_separator_color']) && $params['filter_buttons_hidden_sidebar_separator_color'] != '') { $style .= $wrapper . " .portfolio-filters-list.style-hidden .portfolio-filter-item, " . $wrapper . " .portfolio-filters-list.style-sidebar .portfolio-filter-item { border-color: " . $params['filter_buttons_hidden_sidebar_separator_color'] . " }"; $style .= "@media (max-width: 991px) { " . $wrapper . " .portfolio-filters-list.style-standard .portfolio-filter-item { border-color: " . $params['filter_buttons_hidden_sidebar_separator_color'] . " }}"; } if (isset($params['filter_buttons_standard_selected_border_radius']) && $params['filter_buttons_standard_selected_border_radius'] != '') { $style .= $wrapper . " .portfolio-selected-filters .portfolio-selected-filter-item { border-radius: " . $params['filter_buttons_standard_selected_border_radius'] . "px }"; } if (isset($params['filter_buttons_standard_selected_text_color_normal']) && $params['filter_buttons_standard_selected_text_color_normal'] != '') { $style .= $wrapper . " .portfolio-selected-filters .portfolio-selected-filter-item { color: " . $params['filter_buttons_standard_selected_text_color_normal'] . " }"; } if (isset($params['filter_buttons_standard_selected_text_color_hover']) && $params['filter_buttons_standard_selected_text_color_hover'] != '') { $style .= $wrapper . " .portfolio-selected-filters .portfolio-selected-filter-item:hover { color: " . $params['filter_buttons_standard_selected_text_color_hover'] . " }"; } if (isset($params['filter_buttons_standard_selected_background_color_normal']) && $params['filter_buttons_standard_selected_background_color_normal'] != '') { $style .= $wrapper . " .portfolio-selected-filters .portfolio-selected-filter-item { background-color: " . $params['filter_buttons_standard_selected_background_color_normal'] . " }"; } if (isset($params['filter_buttons_standard_selected_background_color_hover']) && $params['filter_buttons_standard_selected_background_color_hover'] != '') { $style .= $wrapper . " .portfolio-selected-filters .portfolio-selected-filter-item:hover { background-color: " . $params['filter_buttons_standard_selected_background_color_hover'] . " }"; } if (isset($params['filter_buttons_sidebar_color']) && $params['filter_buttons_sidebar_color'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-show-filters-button { color: " . $params['filter_buttons_sidebar_color'] . " }"; } if (isset($params['filter_buttons_sidebar_border_radius']) && $params['filter_buttons_sidebar_border_radius'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-show-filters-button { border-radius: " . $params['filter_buttons_sidebar_border_radius'] . "px }"; } if (isset($params['filter_buttons_sidebar_border_width']) && $params['filter_buttons_sidebar_border_width'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-show-filters-button { border-width: " . $params['filter_buttons_sidebar_border_width'] . "px}"; } if (isset($params['filter_buttons_standard_background']) && $params['filter_buttons_standard_background'] != '') { $style .= $wrapper . " .portfolio-filters-list.style-hidden .portfolio-filters-outer .portfolio-filters-area { background-color: " . $params['filter_buttons_standard_background'] . " }"; $style .= "@media (max-width: 991px) { " . $wrapper . " .portfolio-filters-list.style-standard .portfolio-filters-outer .portfolio-filters-area," . $wrapper . " .portfolio-filters-list.style-sidebar .portfolio-filters-outer .portfolio-filters-area { background-color: " . $params['filter_buttons_standard_background'] . " }}"; } if (isset($params['filter_buttons_standard_overlay_color']) && $params['filter_buttons_standard_overlay_color'] != '') { $style .= $wrapper . " .portfolio-filters-list.style-hidden .portfolio-filters-outer { background-color: " . $params['filter_buttons_standard_overlay_color'] . " }"; $style .= "@media (max-width: 991px) { " . $wrapper . " .portfolio-filters-list.style-standard .portfolio-filters-outer," . $wrapper . " .portfolio-filters-list.style-sidebar .portfolio-filters-outer { background-color: " . $params['filter_buttons_standard_overlay_color'] . " }}"; } if (isset($params['filter_buttons_standard_close_icon_color']) && $params['filter_buttons_standard_close_icon_color'] != '') { $style .= $wrapper . " .portfolio-filters-list .portfolio-close-filters { color: " . $params['filter_buttons_standard_close_icon_color'] . " }"; } if (isset($params['filter_buttons_standard_search_icon_color']) && $params['filter_buttons_standard_search_icon_color'] != '') { $style .= $wrapper . " .portfolio-top-panel .portfolio-top-panel-right .portfolio-search-filter .portfolio-search-filter-button," . $wrapper . " .portfolio-filters-list .portfolio-filters-area .portfolio-search-filter .portfolio-search-filter-button { color: " . $params['filter_buttons_standard_search_icon_color'] . " }"; } if (isset($params['filter_buttons_standard_search_input_border_radius']) && $params['filter_buttons_standard_search_input_border_radius'] != '') { $style .= $wrapper . " .portfolio-top-panel .portfolio-top-panel-right .portfolio-search-filter .portfolio-search-filter-form input," . $wrapper . " .portfolio-filters-list .portfolio-filters-area .portfolio-search-filter input { border-radius: " . $params['filter_buttons_standard_search_input_border_radius'] . "px }"; } if (isset($params['filter_buttons_standard_search_input_color']) && $params['filter_buttons_standard_search_input_color'] != '') { $style .= $wrapper . " .portfolio-top-panel .portfolio-top-panel-right .portfolio-search-filter .portfolio-search-filter-form input," . $wrapper . " .portfolio-filters-list .portfolio-filters-area .portfolio-search-filter input { color: " . $params['filter_buttons_standard_search_input_color'] . " }"; } if (isset($params['filter_buttons_standard_search_input_background_color']) && $params['filter_buttons_standard_search_input_background_color'] != '') { $style .= $wrapper . " .portfolio-top-panel .portfolio-top-panel-right .portfolio-search-filter .portfolio-search-filter-form input," . $wrapper . " .portfolio-filters-list .portfolio-filters-area .portfolio-search-filter input { background-color: " . $params['filter_buttons_standard_search_input_background_color'] . " }"; } if (isset($params['quick_view_text_color']) && $params['quick_view_text_color'] != '') { $style .= $wrapper . " .portfolio-item .quick-view-button { color: " . $params['quick_view_text_color'] . " }"; } if (isset($params['quick_view_background_color']) && $params['quick_view_background_color'] != '') { $style .= $wrapper . " .portfolio-item .quick-view-button { background-color: " . $params['quick_view_background_color'] . " }"; } if (isset($params['notification_background_color']) && $params['notification_background_color'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message { background-color: " . $params['notification_background_color'] . " }"; } if (isset($params['notification_text_color']) && $params['notification_text_color'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message { color: " . $params['notification_text_color'] . " }"; } if (isset($params['notification_icon_color']) && $params['notification_icon_color'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message:before { color: " . $params['notification_icon_color'] . " }"; } if (isset($params['button_wishlist_color_normal']) && $params['button_wishlist_color_normal'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message a.button { color: " . $params['button_wishlist_color_normal'] . " }"; } if (isset($params['button_wishlist_color_hover']) && $params['button_wishlist_color_hover'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message a.button:hover { color: " . $params['button_wishlist_color_hover'] . " }"; } if (isset($params['button_wishlist_background_color_normal']) && $params['button_wishlist_background_color_normal'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message a.button { background-color: " . $params['button_wishlist_background_color_normal'] . " }"; } if (isset($params['button_wishlist_background_color_hover']) && $params['button_wishlist_background_color_hover'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message a.button:hover { background-color: " . $params['button_wishlist_background_color_hover'] . " }"; } if (isset($params['button_wishlist_border_color_normal']) && $params['button_wishlist_border_color_normal'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message a.button { border-color: " . $params['button_wishlist_border_color_normal'] . " }"; } if (isset($params['button_wishlist_border_color_hover']) && $params['button_wishlist_border_color_hover'] != '') { $style .= $wrapper_notification . " .thegem-popup-notification .notification-message a.button:hover { border-color: " . $params['button_wishlist_border_color_hover'] . " }"; } if (isset($params['product_tabs_title_bottom_spacing']) && $params['product_tabs_title_bottom_spacing'] != '') { $style .= $wrapper . " .portfolio-filter-tabs.style-default .portfolio-filter-tabs-title { margin-bottom: " . $params['product_tabs_title_bottom_spacing'] . "px }"; } if (isset($params['product_tabs_title_color']) && $params['product_tabs_title_color'] != '') { $style .= $wrapper . " .portfolio-filter-tabs .portfolio-filter-tabs-title { color: " . $params['product_tabs_title_color'] . " }"; } if (isset($params['product_tabs_tab_color_active']) && $params['product_tabs_tab_color_active'] != '') { $style .= $wrapper . " .portfolio-filter-tabs ul.portfolio-filter-tabs-list li.active { color: " . $params['product_tabs_tab_color_active'] . " }"; } if (isset($params['product_tabs_tab_color_normal']) && $params['product_tabs_tab_color_normal'] != '') { $style .= $wrapper . " .portfolio-filter-tabs ul.portfolio-filter-tabs-list li:not(.active) { color: " . $params['product_tabs_tab_color_normal'] . " }"; } if (isset($params['product_tabs_tab_separator_width']) && $params['product_tabs_tab_separator_width'] != '') { $style .= $wrapper . " .portfolio-filter-tabs.style-alternative.separator, ". $wrapper ." .portfolio-filter-tabs.style-alternative.separator .portfolio-filter-tabs-list { border-width: " . $params['product_tabs_tab_separator_width'] . "px }"; } if (isset($params['product_tabs_tab_separator_color']) && $params['product_tabs_tab_separator_color'] != '') { $style .= $wrapper . " .portfolio-filter-tabs.style-alternative.separator, ". $wrapper ." .portfolio-filter-tabs.style-alternative.separator .portfolio-filter-tabs-list { border-color: " . $params['product_tabs_tab_separator_color'] . " }"; } if (isset($params['pagination_arrows_color_normal']) && $params['pagination_arrows_color_normal'] != '') { $style .= $wrapper . " .gem-pagination.gem-pagination-arrows a.prev, ". $wrapper ." .gem-pagination.gem-pagination-arrows a.next { color: " . $params['pagination_arrows_color_normal'] . " }"; } if (isset($params['pagination_arrows_color_hover']) && $params['pagination_arrows_color_hover'] != '') { $style .= $wrapper . " .gem-pagination.gem-pagination-arrows a.prev:not(.disabled):hover, ". $wrapper ." .gem-pagination.gem-pagination-arrows a.next:not(.disabled):hover { color: " . $params['pagination_arrows_color_hover'] . " }"; } if ($carousel) { if (isset($params['navigation_arrows_icon_color_normal']) && $params['navigation_arrows_icon_color_normal'] != '') { $style .= $wrapper . " .product-gallery-slider .owl-nav .owl-prev div, ". $wrapper ." .product-gallery-slider .owl-nav .owl-next div { color: " . $params['navigation_arrows_icon_color_normal'] . " }"; } if (isset($params['navigation_arrows_icon_color_hover']) && $params['navigation_arrows_icon_color_hover'] != '') { $style .= $wrapper . " .product-gallery-slider .owl-nav .owl-prev:hover div, ". $wrapper ." .product-gallery-slider .owl-nav .owl-next:hover div { color: " . $params['navigation_arrows_icon_color_hover'] . " }"; } if (isset($params['navigation_arrows_border_width']) && $params['navigation_arrows_border_width'] != '') { $style .= $wrapper . " .product-gallery-slider .owl-nav .owl-prev, ". $wrapper ." .product-gallery-slider .owl-nav .owl-next { border-width: " . $params['navigation_arrows_border_width'] . "px }"; } if (isset($params['navigation_arrows_border_radius']) && $params['navigation_arrows_border_radius'] != '') { $style .= $wrapper . " .product-gallery-slider .owl-nav .owl-prev, ". $wrapper ." .product-gallery-slider .owl-nav .owl-next { border-radius: " . $params['navigation_arrows_border_radius'] . "px }"; } if (isset($params['navigation_arrows_border_color_normal']) && $params['navigation_arrows_border_color_normal'] != '') { $style .= $wrapper . " .product-gallery-slider .owl-nav .owl-prev, ". $wrapper ." .product-gallery-slider .owl-nav .owl-next { border-color: " . $params['navigation_arrows_border_color_normal'] . " }"; } if (isset($params['navigation_arrows_border_color_hover']) && $params['navigation_arrows_border_color_hover'] != '') { $style .= $wrapper . " .product-gallery-slider .owl-nav .owl-prev:hover, ". $wrapper ." .product-gallery-slider .owl-nav .owl-next:hover { border-color: " . $params['navigation_arrows_border_color_hover'] . " }"; } if (isset($params['navigation_arrows_background_color_normal']) && $params['navigation_arrows_background_color_normal'] != '') { $style .= $wrapper . " .product-gallery-slider .owl-nav .owl-prev div.position-on, ". $wrapper ." .product-gallery-slider .owl-nav .owl-next div.position-on { background-color: " . $params['navigation_arrows_background_color_normal'] . " }"; } if (isset($params['navigation_arrows_background_color_hover']) && $params['navigation_arrows_background_color_hover'] != '') { $style .= $wrapper . " .product-gallery-slider .owl-nav .owl-prev:hover div.position-on, ". $wrapper ." .product-gallery-slider .owl-nav .owl-next:hover div.position-on { background-color: " . $params['navigation_arrows_background_color_hover'] . " }"; } if (isset($params['navigation_dots_spacing']) && $params['navigation_dots_spacing'] != '') { $style .= $wrapper . " .owl-dots { margin-top: " . $params['navigation_dots_spacing'] . "px }"; } if (isset($params['navigation_dots_border_width']) && $params['navigation_dots_border_width'] != '') { $style .= $wrapper . " .owl-dots .owl-dot span { border-width: " . $params['navigation_dots_border_width'] . "px }"; } if (isset($params['navigation_dots_border_color_normal']) && $params['navigation_dots_border_color_normal'] != '') { $style .= $wrapper . " .owl-dots .owl-dot span { border-color: " . $params['navigation_dots_border_color_normal'] . " }"; } if (isset($params['navigation_dots_border_color_active']) && $params['navigation_dots_border_color_active'] != '') { $style .= $wrapper . " .owl-dots .owl-dot.active span { border-color: " . $params['navigation_dots_border_color_active'] . " }"; } if (isset($params['navigation_dots_background_color_normal']) && $params['navigation_dots_background_color_normal'] != '') { $style .= $wrapper . " .owl-dots .owl-dot span { background-color: " . $params['navigation_dots_background_color_normal'] . " }"; } if (isset($params['navigation_dots_background_color_active']) && $params['navigation_dots_background_color_active'] != '') { $style .= $wrapper . " .owl-dots .owl-dot.active span { background-color: " . $params['navigation_dots_background_color_active'] . " }"; } } if (!empty($params['show_cross_sell_title'])) { if (!empty($params['cross_sell_title_alignment'])) { $style .= $wrapper . " .cross-sell-title { text-align: " . $params['cross_sell_title_alignment'] . " }"; } if (isset($params['cross_sell_title_letter_spacing']) && $params['cross_sell_title_letter_spacing'] != '') { $style .= $wrapper . " .cross-sell-title { letter-spacing: " . $params['cross_sell_title_letter_spacing'] . "px }"; } if (!empty($params['cross_sell_title_transform'])) { $style .= $wrapper . " .cross-sell-title { text-transform: " . $params['cross_sell_title_transform'] . " }"; } if (!empty($params['cross_sell_title_color'])) { $style .= $wrapper . " .cross-sell-title { color: " . $params['cross_sell_title_color'] . " }"; } if (isset($params['cross_sell_title_top_spacing_desktop']) && $params['cross_sell_title_top_spacing_desktop'] != '') { $style .= $wrapper . " .cross-sell-title { margin-top: " . $params['cross_sell_title_top_spacing_desktop'] . " }"; } if (isset($params['cross_sell_title_top_spacing_tablet']) && $params['cross_sell_title_top_spacing_tablet'] != '') { $style .= "@media (max-width: 991px) { " . $wrapper . " .cross-sell-title { margin-top: " . $params['cross_sell_title_top_spacing_tablet'] . " }}"; } if (isset($params['cross_sell_title_top_spacing_mobile']) && $params['cross_sell_title_top_spacing_mobile'] != '') { $style .= "@media (max-width: 767px) { " . $wrapper . " .cross-sell-title { margin-top: " . $params['cross_sell_title_top_spacing_mobile'] . " }}"; } if (isset($params['cross_sell_title_bottom_spacing_desktop']) && $params['cross_sell_title_bottom_spacing_desktop'] != '') { $style .= $wrapper . " .cross-sell-title { margin-bottom: " . $params['cross_sell_title_bottom_spacing_desktop'] . " }"; } if (isset($params['cross_sell_title_bottom_spacing_tablet']) && $params['cross_sell_title_bottom_spacing_tablet'] != '') { $style .= "@media (max-width: 991px) { " . $wrapper . " .cross-sell-title { margin-bottom: " . $params['cross_sell_title_bottom_spacing_tablet'] . " }}"; } if (isset($params['cross_sell_title_bottom_spacing_mobile']) && $params['cross_sell_title_bottom_spacing_mobile'] != '') { $style .= "@media (max-width: 767px) { " . $wrapper . " .cross-sell-title { margin-bottom: " . $params['cross_sell_title_bottom_spacing_mobile'] . " }}"; } } if (isset($params['divider_color']) && $params['divider_color'] != '') { $style .= $wrapper . ".list-style.with-divider .portfolio-item .wrap:before { border-color: " . $params['divider_color'] . " }"; } if (isset($params['image_column_width']) && $params['image_column_width'] != '') { $style .= $wrapper . ".list-style .portfolio-set .portfolio-item .wrap > .image { width: " . $params['image_column_width'] . "% }"; } if (isset($params['filter_by_categories_order']) && $params['filter_by_categories_order'] != '') { $style .= $wrapper . " .portfolio-filter-item.cats { order: " . $params['filter_by_categories_order'] . " }"; } if (isset($params['filter_by_attribute_order']) && $params['filter_by_attribute_order'] != '') { $style .= $wrapper . " .portfolio-filter-item.attribute { order: " . $params['filter_by_attribute_order'] . " }"; } if (isset($params['filter_by_price_order']) && $params['filter_by_price_order'] != '') { $style .= $wrapper . " .portfolio-filter-item.price { order: " . $params['filter_by_price_order'] . " }"; } if (isset($params['filter_by_status_order']) && $params['filter_by_status_order'] != '') { $style .= $wrapper . " .portfolio-filter-item.status { order: " . $params['filter_by_status_order'] . " }"; } if ($widget_styles) { $style .= "</style>"; } return $style; } } if (!function_exists('thegem_extended_products_get_preset_settings')) { function thegem_extended_products_get_preset_settings() { $presets = array( 'below-default-cart-button' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'buttons', 'product_show_add_to_cart_mobiles' => '1', 'cart_button_show_icon' => '1', 'product_show_categories' => '1', 'product_show_reviews' => '1', 'labels_design' => '1', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'transparent', 'caption_container_alignment' => '', 'caption_background_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'below-default-cart-icon' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '1', 'product_show_reviews' => '1', 'labels_design' => '4', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'transparent', 'caption_container_alignment' => '', 'caption_background_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'below-cart-disabled' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '', 'product_show_categories' => '1', 'product_show_reviews' => '', 'labels_design' => '3', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '22', 'image_gaps_tablet' => '22', 'image_gaps_mobile' => '22', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'gray', 'caption_container_alignment' => '', 'caption_background_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'below-border-cart-icon' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '1', 'product_show_reviews' => '1', 'labels_design' => '2', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '12', 'image_gaps_tablet' => '12', 'image_gaps_mobile' => '12', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '1', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '1', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'white', 'caption_container_alignment' => '', 'caption_background_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'below-shadow-hover-01' => array( 'caption_position' => 'page', 'social_sharing' => '1', 'product_show_add_to_cart' => '', 'product_show_categories' => '1', 'product_show_reviews' => '', 'labels_design' => '3', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'transparent', 'caption_container_alignment' => '', 'caption_background_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'below-shadow-hover-02' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'buttons', 'product_show_add_to_cart_mobiles' => '1', 'cart_button_show_icon' => '1', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '3', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '30', 'image_gaps_tablet' => '30', 'image_gaps_mobile' => '30', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '1', 'image_border_color' => '', 'image_border_color_hover' => '#02010100', 'image_border_radius' => '12', 'border_caption_container' => '1', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'transparent', 'caption_container_alignment' => '', 'caption_background_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '#99A9B5', 'icons_background_color_normal' => '#02010100', 'icons_border_color_normal' => '#99A9B5', 'icons_color_hover' => '#FFFFFF', 'icons_background_color_hover' => '#00BCD4', 'icons_border_color_hover' => '#00BCD4', 'icons_border_width' => '1', 'button_cart_color_normal' => '#99A9B5', 'button_cart_color_hover' => '#FFFFFF', 'button_cart_background_color_normal' => '#02010100', 'button_cart_background_color_hover' => '#00BCD4', 'button_cart_border_color_normal' => '#99A9B5', 'button_cart_border_color_hover' => '#00BCD4', 'button_options_color_normal' => '#99A9B5', 'button_options_color_hover' => '#FFFFFF', 'button_options_background_color_normal' => '#02010100', 'button_options_background_color_hover' => '#00BCD4', 'button_options_border_color_normal' => '#99A9B5', 'button_options_border_color_hover' => '#00BCD4', ), 'below-rounded-images' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '', 'product_show_categories' => '1', 'product_show_reviews' => '', 'labels_design' => '1', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '24', 'border_caption_container' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'transparent', 'caption_container_alignment' => '', 'caption_background_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'below-rectangle-button-01' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'buttons', 'product_show_add_to_cart_mobiles' => '1', 'cart_button_show_icon' => '', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '3', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '32', 'image_gaps_tablet' => '32', 'image_gaps_mobile' => '32', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'transparent', 'caption_container_alignment' => 'left', 'caption_background_hover' => '', 'buttons_border_radius' => '0', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'below-rectangle-button-02' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'buttons', 'product_show_add_to_cart_mobiles' => '1', 'cart_button_show_icon' => '1', 'product_show_categories' => '1', 'product_show_reviews' => '', 'labels_design' => '1', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '16', 'image_gaps_tablet' => '16', 'image_gaps_mobile' => '16', 'image_hover_effect_page' => 'fade', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'transparent', 'caption_container_alignment' => 'left', 'caption_background_hover' => '', 'buttons_border_radius' => '3', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '#DFE5E8', 'button_options_background_color_hover' => '#00BCD4', 'button_options_border_color_normal' => '#02010100', 'button_options_border_color_hover' => '#02010100', ), 'below-separator-01' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'buttons', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '4', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '36', 'image_gaps_tablet' => '36', 'image_gaps_mobile' => '36', 'image_hover_effect_page' => 'fade', 'product_separator' => '1', 'product_separator_width' => '2', 'product_separator_color' => thegem_get_option('styled_elements_background_color'), 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '', 'title_color_normal' => '#5F727F', 'price_color_normal' => '#5F727F', 'caption_container_preset' => 'gray', 'caption_container_alignment' => '', 'caption_background_hover' => '#FFFFFF', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'below-separator-02' => array( 'caption_position' => 'page', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '', 'product_show_reviews' => '1', 'labels_design' => '6', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '0', 'image_gaps_tablet' => '0', 'image_gaps_mobile' => '0', 'image_hover_effect_page' => 'fade', 'product_separator' => '1', 'product_separator_width' => '1', 'product_separator_color' => '#212227', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'border_caption_container' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset' => 'transparent', 'caption_container_alignment' => '', 'caption_background_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '#02010100', 'icons_border_color_normal' => '', 'icons_color_hover' => '#00BCD4', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'image-default-cart-button' => array( 'caption_position' => 'image', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'buttons', 'product_show_add_to_cart_mobiles' => '', 'cart_button_show_icon' => '1', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '3', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_image' => 'fade', 'caption_container_alignment_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'image-default-cart-icon' => array( 'caption_position' => 'image', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '4', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_image' => 'fade', 'caption_container_alignment_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'image-solid-background' => array( 'caption_position' => 'image', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '', 'product_show_categories' => '1', 'product_show_reviews' => '', 'labels_design' => '3', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'solid', 'image_hover_effect_image' => 'fade', 'caption_container_alignment_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'image-rounded-corners' => array( 'caption_position' => 'image', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '1', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '24', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_image' => 'fade', 'caption_container_alignment_hover' => 'center', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'image-shadow-hover-01' => array( 'caption_position' => 'image', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '2', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '22', 'image_gaps_tablet' => '22', 'image_gaps_mobile' => '22', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_image' => 'fade', 'caption_container_alignment_hover' => 'center', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'image-shadow' => array( 'caption_position' => 'image', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'buttons', 'product_show_add_to_cart_mobiles' => '', 'cart_button_show_icon' => '1', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '2', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '10', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_image' => 'fade', 'caption_container_alignment_hover' => 'right', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'image-separator-01' => array( 'caption_position' => 'image', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '3', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '0', 'image_gaps_tablet' => '0', 'image_gaps_mobile' => '0', 'product_separator' => '1', 'product_separator_width' => '4', 'product_separator_color' => '#DFE5E8', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_image' => 'fade', 'caption_container_alignment_hover' => 'center', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'image-separator-02' => array( 'caption_position' => 'image', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '', 'product_show_categories' => '', 'product_show_reviews' => '1', 'labels_design' => '5', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '0', 'image_gaps_tablet' => '0', 'image_gaps_mobile' => '0', 'product_separator' => '1', 'product_separator_width' => '1', 'product_separator_color' => '#212227', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'solid', 'image_hover_effect_image' => 'fade', 'caption_container_alignment_hover' => 'center', 'buttons_border_radius' => '', 'icons_color_normal' => '#212227', 'icons_background_color_normal' => '#02010100', 'icons_border_color_normal' => '', 'icons_color_hover' => '#212227', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'hover-default' => array( 'caption_position' => 'hover', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '4', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_hover' => 'fade', 'caption_container_alignment_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'hover-rounded-corners' => array( 'caption_position' => 'hover', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '', 'product_show_reviews' => '1', 'labels_design' => '1', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '42', 'image_gaps_tablet' => '42', 'image_gaps_mobile' => '42', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '24', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_hover' => 'zooming-blur', 'caption_container_alignment_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'hover-solid-background' => array( 'caption_position' => 'hover', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '', 'product_show_reviews' => '', 'labels_design' => '2', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '32', 'image_gaps_tablet' => '32', 'image_gaps_mobile' => '32', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'solid', 'image_hover_effect_hover' => 'fade', 'caption_container_alignment_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'hover-separator' => array( 'caption_position' => 'hover', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '', 'product_show_reviews' => '1', 'labels_design' => '3', 'sale_label_type' => 'text', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '0', 'image_gaps_tablet' => '0', 'image_gaps_mobile' => '0', 'product_separator' => '1', 'product_separator_width' => '1', 'product_separator_color' => '#dfe5e8', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_hover' => 'fade', 'caption_container_alignment_hover' => 'center', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'hover-centered-caption' => array( 'caption_position' => 'hover', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'buttons', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '', 'product_show_reviews' => '1', 'labels_design' => '1', 'product_show_new' => '', 'product_show_sale' => '', 'product_show_out' => '', 'image_gaps' => '6', 'image_gaps_tablet' => '6', 'image_gaps_mobile' => '6', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_hover' => 'fade', 'caption_container_alignment_hover' => 'center', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'hover-shadow-hover' => array( 'caption_position' => 'hover', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '1', 'product_show_reviews' => '1', 'labels_design' => '1', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '26', 'image_gaps_tablet' => '26', 'image_gaps_mobile' => '26', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_hover' => 'zooming-blur', 'caption_container_alignment_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ), 'hover-gradient-hover' => array( 'caption_position' => 'hover', 'social_sharing' => '', 'product_show_add_to_cart' => '1', 'add_to_cart_type' => 'icon', 'product_show_add_to_cart_mobiles' => '1', 'product_show_categories' => '1', 'product_show_reviews' => '1', 'labels_design' => '1', 'sale_label_type' => 'percentage', 'product_show_new' => '1', 'product_show_sale' => '1', 'product_show_out' => '1', 'image_gaps' => '16', 'image_gaps_tablet' => '16', 'image_gaps_mobile' => '16', 'product_separator' => '', 'image_border_width' => '', 'image_border_color' => '', 'image_border_radius' => '', 'title_color_normal' => '', 'price_color_normal' => '', 'caption_container_preset_hover' => 'light', 'image_hover_effect_hover' => 'gradient', 'caption_container_alignment_hover' => '', 'buttons_border_radius' => '', 'icons_color_normal' => '', 'icons_background_color_normal' => '', 'icons_border_color_normal' => '', 'icons_color_hover' => '', 'icons_background_color_hover' => '', 'icons_border_color_hover' => '', 'icons_border_width' => '', 'button_cart_color_normal' => '', 'button_cart_color_hover' => '', 'button_cart_background_color_normal' => '', 'button_cart_background_color_hover' => '', 'button_cart_border_color_normal' => '', 'button_cart_border_color_hover' => '', 'button_options_color_normal' => '', 'button_options_color_hover' => '', 'button_options_background_color_normal' => '', 'button_options_background_color_hover' => '', 'button_options_border_color_normal' => '', 'button_options_border_color_hover' => '', ) ); return $presets; } } if (!function_exists('thegem_extended_products_get_preset_settings_callback')) { function thegem_extended_products_get_preset_settings_callback() { $presets = thegem_extended_products_get_preset_settings(); $response = array('status' => 'success'); $response['presets'] = $presets; $response = json_encode($response); header("Content-Type: application/json"); echo $response; exit; } } add_action('wp_ajax_extended_products_get_preset_settings', 'thegem_extended_products_get_preset_settings_callback'); add_action('wp_ajax_nopriv_extended_products_get_preset_settings', 'thegem_extended_products_get_preset_settings_callback'); if (!function_exists('thegem_product_grid_categories_get_preset_settings_callback')) { function thegem_product_grid_categories_get_preset_settings_callback() { $presets = $presets = array( 'image-light-caption' => array( 'caption_position' => 'image', 'caption_separator' => '1', 'caption_container_preset' => 'solid', 'caption_container_preset_color' => 'light', 'caption_container_vertical_position' => 'bottom', 'caption_container_alignment' => 'center', ), 'image-dark-caption' => array( 'caption_position' => 'image', 'caption_separator' => '1', 'caption_container_preset' => 'solid', 'caption_container_preset_color' => 'dark', 'caption_container_vertical_position' => 'bottom', 'caption_container_alignment' => 'center', ), 'image-transparent-light-title' => array( 'caption_position' => 'image', 'caption_separator' => '', 'caption_container_preset' => 'transparent', 'caption_container_preset_color' => 'light', 'caption_container_vertical_position' => 'bottom', 'caption_container_alignment' => 'left', ), 'image-transparent-dark-title' => array( 'caption_position' => 'image', 'caption_separator' => '', 'caption_container_preset' => 'transparent', 'caption_container_preset_color' => 'dark', 'caption_container_vertical_position' => 'top', 'caption_container_alignment' => 'left', ), 'image-bold-title-light' => array( 'caption_position' => 'image', 'caption_separator' => '', 'caption_container_preset' => 'bold', 'caption_container_preset_color' => 'light', 'caption_container_vertical_position' => 'center', 'caption_container_alignment' => 'center', ), 'image-bold-title-dark' => array( 'caption_position' => 'image', 'caption_separator' => '', 'caption_container_preset' => 'bold', 'caption_container_preset_color' => 'dark', 'caption_container_vertical_position' => 'center', 'caption_container_alignment' => 'center', ), 'below-default' => array( 'caption_position' => 'below', 'caption_separator' => '', 'caption_container_preset_below' => 'transparent', 'caption_container_alignment_below' => 'center', ), 'below-bordered' => array( 'caption_position' => 'below', 'caption_separator' => '', 'caption_container_preset_below' => 'white', 'caption_container_alignment_below' => 'center', ), 'below-solid' => array( 'caption_position' => 'below', 'caption_separator' => '', 'caption_container_preset_below' => 'gray', 'caption_container_alignment_below' => 'center', ), ); $response = array('status' => 'success'); $response['presets'] = $presets; $response = json_encode($response); header("Content-Type: application/json"); echo $response; exit; } } add_action('wp_ajax_product_grid_categories_get_preset_settings', 'thegem_product_grid_categories_get_preset_settings_callback'); add_action('wp_ajax_nopriv_product_grid_categories_get_preset_settings', 'thegem_product_grid_categories_get_preset_settings_callback'); if(!function_exists('thegem_extended_products_get_woo_attributes')) { function thegem_extended_products_get_woo_attributes($select = 'attributes', $checkbox = false) { if ($checkbox) { $attributes = array(); } else { $attributes = array(__('Select attribute', 'thegem') => ''); } if ( class_exists( 'Woocommerce' ) ) { $attributes_taxonomy = wc_get_attribute_taxonomies(); foreach ( $attributes_taxonomy as $attribute ) { $attributes[$attribute->attribute_label] = $attribute->attribute_name; } } if($select == 'attributes') { return $attributes; } elseif($select == 'attribute_val') { $terms = $attribute_vall = array(); foreach ($attributes as $name => $attribute) { if(!empty($attribute)) { $terms[$name] = get_terms( 'pa_' . $attribute ); } } foreach ($terms as $key => $val) { foreach ($val as $value) { $attribute_vall[$value->name .' in '. $key] = $value->slug; } } return $attribute_vall; } } } /* CART */ function thegem_woocommerce_widget_shopping_cart_button_view_cart() { thegem_button(array( 'tag' => 'a', 'href' => esc_url(wc_get_cart_url()), 'text' => esc_html__( 'View cart', 'woocommerce' ), 'style' => 'flat', 'size' => 'tiny', 'text_color' => thegem_get_option('button_text_basic_color'), 'background_color' => thegem_get_option('styled_elements_color_1'), 'hover_text_color' => thegem_get_option('styled_elements_color_1'), 'hover_background_color' => 'transparent', 'hover_border_color' => thegem_get_option('styled_elements_color_1'), 'extra_class' => 'mini-cart-view-cart', ), true); } function thegem_woocommerce_widget_shopping_cart_proceed_to_checkout() { thegem_button(array( 'tag' => 'a', 'href' => esc_url( wc_get_checkout_url() ), 'text' => esc_html__( 'Checkout', 'woocommerce' ), 'style' => 'outline', 'size' => 'tiny', 'text_color' => thegem_get_option('styled_elements_color_4'), 'border_color' => thegem_get_option('styled_elements_color_4'), 'hover_text_color' => thegem_get_option('button_text_basic_color'), 'hover_background_color' => thegem_get_option('styled_elements_color_4'), 'hover_border_color' => thegem_get_option('styled_elements_color_4'), 'extra_class' => 'mini-cart-checkout', ), true); } function thegem_space_after_cart_item_name($cart_item, $cart_item_key) { echo '<span class="product-name-space"> </span>'; } function thegem_woocommerce_before_cart_wrap_start() { echo '<div class="woocommerce-before-cart clearfix">'; } function thegem_woocommerce_before_cart_wrap_end() { echo '</div>'; } function thegem_woocommerce_cart_scripts() { wp_enqueue_script('thegem-woocommerce'); } function thegem_woocommerce_cart_collaterals_start() { ?> <div class="row"> <div class="col-md-6 col-sm-12"><?php woocommerce_shipping_calculator(); ?></div> <div class="col-md-6 col-sm-12"> <?php } function thegem_woocommerce_cart_collaterals_end() { ?> </div> </div> <?php } function thegem_woocommerce_cross_sells_columns($columns) { return 4; } function thegem_add_cart_body_class($classes) { if(in_array('woocommerce-cart', $classes)) { $thegem_cart_layout = thegem_get_option('cart_layout', 'modern'); $classes[] = 'woocommerce-cart-layout-'.$thegem_cart_layout; } if(function_exists('thegem_get_template_type') && thegem_get_template_type(get_the_id()) == 'cart') { $classes[] = 'woocommerce-cart-layout-modern'; } return $classes; } function thegem_cart_checkout_steps() { $thegem_cart_layout = thegem_get_option('cart_layout', 'modern'); $thegem_cart_steps = thegem_get_option('modern_cart_steps', 1); $thegem_cart_steps_position = thegem_get_option('modern_cart_steps_position', 'content_area'); if($thegem_cart_layout == 'modern' && $thegem_cart_steps && $thegem_cart_steps_position == 'content_area') { ?> <div class="woocommerce-cart-checkout-steps woocommerce-cart-checkout-steps-content"> <div class="step step-cart title-h6<?php echo (is_cart() ? ' active' : ' light'); ?>"><?php esc_html_e('1. Shopping cart', 'thegem'); ?></div> <div class="step step-checkout title-h6<?php echo (is_checkout() && !is_wc_endpoint_url('order-received') ? ' active' : ' light'); ?>"><?php esc_html_e('2. Checkout', 'thegem'); ?></div> <div class="step step-order-complete title-h6<?php echo (is_checkout() && is_wc_endpoint_url('order-received') ? ' active' : ' light'); ?>"><?php esc_html_e('3. Order complete', 'thegem'); ?></div> </div> <?php } } function thegem_cart_checkout_title_steps($title) { if(thegem_is_plugin_active('woocommerce/woocommerce.php')) { if(is_cart() || is_checkout()) { $thegem_cart_layout = thegem_get_option('cart_layout', 'modern'); $thegem_cart_steps = thegem_get_option('modern_cart_steps', 1); $thegem_cart_steps_position = thegem_get_option('modern_cart_steps_position', 'content_area'); $admin_page_data = array(); $page_id = is_cart()? wc_get_page_id('cart') : wc_get_page_id('checkout'); $admin_page_data = thegem_get_sanitize_admin_page_data($page_id); if($admin_page_data['title_show'] != 'default') { return $title; } if($thegem_cart_layout == 'modern' && $thegem_cart_steps && $thegem_cart_steps_position == 'title_area') { ob_start(); ?> <div id="page-title" class="page-title-block page-title-alignment-center page-title-style-1 woocommerce-cart-checkout"> <div class="container"><div class="page-title-inner"><div class="woocommerce-cart-checkout-steps woocommerce-cart-checkout-steps-title"> <div class="step step-cart title-h2<?php echo (is_cart() ? ' active' : ' light'); ?>"><?php esc_html_e('Shopping cart', 'thegem'); ?></div> <div class="step step-checkout title-h2<?php echo (is_checkout() && !is_wc_endpoint_url('order-received') ? ' active' : ' light'); ?>"><?php esc_html_e('Checkout', 'thegem'); ?></div> <div class="step step-order-complete title-h2<?php echo (is_checkout() && is_wc_endpoint_url('order-received') ? ' active' : ' light'); ?>"><?php esc_html_e('Order complete', 'thegem'); ?></div> </div></div></div> </div> <?php $title = ob_get_clean(); } } } return $title; } function woocommerce_cart_totals_wrap_start() { echo '<div class="cart_totals-inner default-background">'; } function woocommerce_cart_totals_wrap_end() { echo '</div>'; } function thegem_woocommerce_wrap_cart_item_name($product_name, $cart_item, $cart_item_key) { return '<span class="product-title">'.$product_name.'</span>'; } function thegem_wc_empty_cart_message($text) { if(thegem_get_option('cart_layout', 'modern') == 'modern' && !empty(thegem_get_option('cart_empty_title'))) { $text = thegem_get_option('cart_empty_title'); } return $text; } remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_button_view_cart', 10 ); remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 ); add_action( 'woocommerce_widget_shopping_cart_buttons', 'thegem_woocommerce_widget_shopping_cart_button_view_cart', 10 ); add_action( 'woocommerce_widget_shopping_cart_buttons', 'thegem_woocommerce_widget_shopping_cart_proceed_to_checkout', 20 ); add_action( 'woocommerce_after_cart_item_name', 'thegem_space_after_cart_item_name', 5, 2 ); add_action( 'woocommerce_before_cart', 'thegem_woocommerce_before_cart_wrap_start', 1 ); add_action( 'woocommerce_before_cart', 'thegem_woocommerce_before_cart_wrap_end', 1000 ); add_action( 'woocommerce_before_cart', 'thegem_woocommerce_cart_scripts'); /*add_action( 'woocommerce_cart_collaterals', 'thegem_woocommerce_cart_collaterals_start', 1); add_action( 'woocommerce_cart_collaterals', 'thegem_woocommerce_cart_collaterals_end', 1000);*/ add_filter('woocommerce_cross_sells_columns', 'thegem_woocommerce_cross_sells_columns'); remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' ); add_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display', 11 ); add_filter('body_class', 'thegem_add_cart_body_class'); add_action('woocommerce_before_cart', 'thegem_cart_checkout_steps'); if(thegem_get_option('cart_layout', 'modern') == 'modern') { remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cart_totals' ); add_action( 'woocommerce_before_cart_collaterals', 'woocommerce_cart_totals', 1 ); add_action( 'woocommerce_before_cart_totals', 'woocommerce_cart_totals_wrap_start', 1 ); add_action( 'woocommerce_after_cart_totals', 'woocommerce_cart_totals_wrap_end', 100 ); remove_action('woocommerce_cart_is_empty', 'wc_empty_cart_message', 10); } add_filter('woocommerce_cart_item_name', 'thegem_woocommerce_wrap_cart_item_name', 10, 3); add_filter('thegem_page_title', 'thegem_cart_checkout_title_steps'); add_filter('wc_empty_cart_message', 'thegem_wc_empty_cart_message'); /* CHECKOUT */ function thegem_checkout_get_type() { $cart_layout = thegem_get_option('cart_layout', 'modern'); $checkout_type = thegem_get_option('checkout_type', 'multi-step'); if($cart_layout == 'modern') { return 'one-page-modern'; } return $checkout_type; } function thegem_woocommerce_checkout_scripts() { wp_enqueue_script('thegem-checkout'); wp_enqueue_script('thegem-woocommerce'); } function thegem_woocommerce_checkout_tabs() { $thegem_checkout_type = thegem_checkout_get_type(); ?> <?php if ($thegem_checkout_type == 'multi-step'): ?> <div class="checkout-steps <?php if(is_user_logged_in()): ?>user-logged<?php endif; ?> clearfix"> <?php if(is_user_logged_in() || 'no' === get_option( 'woocommerce_enable_checkout_login_reminder' )): ?> <div class="checkout-step active" data-tab-id="checkout-billing"><?php esc_html_e('1. Billing','thegem'); ?></div> <div class="checkout-step" data-tab-id="checkout-payment"><?php esc_html_e('2. Payment','thegem'); ?></div> <div class="checkout-step disabled" data-tab-id="checkout-confirmation"><?php esc_html_e('3. Confirmation','thegem'); ?></div> <?php else: ?> <div class="checkout-step active" data-tab-id="checkout-signin"><?php esc_html_e('1. Sign in','thegem'); ?></div> <div class="checkout-step" data-tab-id="checkout-billing"><?php esc_html_e('2. Billing','thegem'); ?></div> <div class="checkout-step" data-tab-id="checkout-payment"><?php esc_html_e('3. Payment','thegem'); ?></div> <div class="checkout-step disabled" data-tab-id="checkout-confirmation"><?php esc_html_e('4. Confirmation','thegem'); ?></div> <?php endif; ?> </div> <?php endif; ?> <?php if ($thegem_checkout_type == 'one-page'): ?> <div class="checkout-steps clearfix woocommerce-steps-<?php echo $thegem_checkout_type; ?>"> <div class="checkout-step disabled before-active"><?php esc_html_e('Shopping cart','thegem'); ?></div> <div class="checkout-step disabled active"><?php esc_html_e('Checkout details','thegem'); ?></div> <div class="checkout-step disabled"><?php esc_html_e('Order complete','thegem'); ?></div> </div> <?php endif; ?> <?php } function thegem_woocommerce_checkout_nav_buttons() { $thegem_checkout_type = thegem_checkout_get_type(); if ($thegem_checkout_type != 'multi-step') return ; ?> <div class="checkout-navigation-buttons"> <?php thegem_button(array( 'tag' => 'button', 'text' => esc_html__( 'Previous step', 'thegem' ), 'style' => 'outline', 'size' => 'medium', 'extra_class' => 'checkout-prev-step', 'attributes' => array( 'value' => esc_attr__( 'Previous step', 'thegem' ), 'type' => 'button', 'class' => 'gem-button-tablet-size-small' ) ), true); ?> <?php thegem_button(array( 'tag' => 'button', 'text' => esc_html__( 'Next step', 'thegem' ), 'style' => 'outline', 'size' => 'medium', 'extra_class' => 'checkout-next-step', 'attributes' => array( 'value' => esc_attr__( 'Next step', 'thegem' ), 'type' => 'button', 'class' => 'gem-button-tablet-size-small' ) ), true); ?> </div> <?php } function thegem_woocommerce_customer_details_start() { echo '<div class="checkout-contents" data-tab-content-id="checkout-billing">'; } function thegem_woocommerce_customer_details_end() { echo '</div>'; } function thegem_woocommerce_order_review_start() { echo '<div class="checkout-contents" data-tab-content-id="checkout-payment">'; $thegem_checkout_type = thegem_checkout_get_type(); if ($thegem_checkout_type == 'one-page-modern') { echo '<div class="order-review-inner default-background">'; }; } function thegem_woocommerce_order_review_end() { $thegem_checkout_type = thegem_checkout_get_type(); if ($thegem_checkout_type == 'one-page-modern') { echo '</div>'; }; echo '</div>'; } function thegem_woocommerce_checkout_form_steps_script() { $thegem_checkout_type = thegem_checkout_get_type(); if ($thegem_checkout_type != 'multi-step') return ; ?> <script> (function($) { function active_checkout_tab($tab, isinit) { if ($tab.length == 0 || ($tab.hasClass('active') && !isinit)) { return false; } $tab.parent().find('.checkout-step').removeClass('active before-active'); $tab.addClass('active'); $tab.prev('.checkout-step').addClass('before-active'); var tab_id = $tab.data('tab-id'); $('.checkout-contents').removeClass('active'); $('.checkout-contents[data-tab-content-id="' + tab_id + '"]').addClass('active'); window.location.hash = '#' + tab_id; } var m = window.location.hash.match(/#checkout\-(.+)/); if (m && $('.checkout-steps .checkout-step[data-tab-id="checkout-' + m[1] + '"]').length == 1) { active_checkout_tab($('.checkout-steps .checkout-step[data-tab-id="checkout-' + m[1] + '"]'), true); } else { active_checkout_tab($('.checkout-steps .checkout-step:first'), true); } $('.checkout-steps .checkout-step').not('.disabled').click(function() { active_checkout_tab($(this), false); }); })(jQuery); </script> <?php } function thegem_woocommerce_checkout_registration_buttons() { $thegem_checkout_type = thegem_checkout_get_type(); if ($thegem_checkout_type != 'multi-step') return ; echo '<div class="checkout-registration-buttons">'; thegem_button(array( 'tag' => 'button', 'text' => esc_html__( 'Cancel', 'woocommerce' ), 'style' => 'outline', 'size' => 'medium', 'extra_class' => 'checkout-cancel-create-account-button', 'attributes' => array( 'type' => 'button', ) ), true); thegem_button(array( 'tag' => 'button', 'text' => esc_html__( 'Register', 'woocommerce' ), 'style' => 'outline', 'size' => 'medium', 'extra_class' => 'checkout-create-account-button', 'attributes' => array( 'type' => 'button', ) ), true); echo '</div>'; } function thegem_woocommerce_order_review_table_start() { $thegem_checkout_type = thegem_checkout_get_type(); echo '<div class="gem-table checkout-payment">'; if ($thegem_checkout_type == 'one-page') { $pattern_id = 'pattern-'.time().'-'.rand(0, 100); echo '<div class="checkout-order-review-pattern"><svg width="100%" height="27" style="fill: '.thegem_get_option('styled_elements_background_color').';"><defs><pattern id="'.$pattern_id.'" x="10" y="0" width="20" height="28" patternUnits="userSpaceOnUse" ><path d="M20,8V0H0v8c3.314,0,6,2.687,6,6c0,3.313-2.686,6-6,6v8h20v-8c-3.313,0-6-2.687-6-6C14,10.687,16.687,8,20,8z" /></pattern></defs><rect x="0" y="0" width="100%" height="28" style="fill: url(#'.$pattern_id.');" /></svg></div>'; } } function thegem_woocommerce_order_review_table_end() { echo '</div>'; } function thegem_woocommerce_before_checkout_wrapper_start() { $thegem_checkout_type = thegem_checkout_get_type(); if ($thegem_checkout_type == 'multi-step') return ; echo '<div class="checkout-before-checkout-form">'; } function thegem_woocommerce_before_checkout_wrapper_end() { $thegem_checkout_type = thegem_checkout_get_type(); if ($thegem_checkout_type == 'multi-step') return ; echo '</div>'; } function thegem_add_checkout_body_class($classes) { if(in_array('woocommerce-checkout', $classes)) { $thegem_checkout_type = thegem_checkout_get_type(); $classes[] = 'woocommerce-checkout-layout-'.$thegem_checkout_type; } if(in_array('woocommerce-order-received', $classes)) { $thegem_cart_layout = thegem_get_option('cart_layout', 'modern'); $classes[] = 'woocommerce-cart-layout-'.$thegem_cart_layout; } return $classes; } function thegem_woocommerce_remove_checkout_template_notices() { if(is_checkout() && thegem_checkout_template()) { remove_action( 'woocommerce_before_checkout_form_cart_notices', 'woocommerce_output_all_notices', 10 ); remove_action( 'woocommerce_before_checkout_form', 'woocommerce_output_all_notices', 4 ); } } add_action( 'woocommerce_before_checkout_form', 'thegem_woocommerce_checkout_scripts', 1); add_action( 'woocommerce_before_checkout_form', 'thegem_woocommerce_checkout_tabs', 5); add_action('woocommerce_before_checkout_form', 'thegem_cart_checkout_steps', 5); add_action('woocommerce_before_thankyou', 'thegem_cart_checkout_steps', 5); remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 ); add_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', thegem_checkout_get_type() == 'multi-step' ? 9 : 11 ); remove_action( 'woocommerce_before_checkout_form', 'woocommerce_output_all_notices', 10 ); add_action( 'woocommerce_before_checkout_form', 'woocommerce_output_all_notices', 4 ); add_action( 'woocommerce_before_checkout_form_cart_notices', 'thegem_woocommerce_remove_checkout_template_notices', 1 ); add_action( 'woocommerce_before_checkout_form', 'thegem_woocommerce_before_checkout_wrapper_start', 6 ); add_action( 'woocommerce_before_checkout_form', 'thegem_woocommerce_before_checkout_wrapper_end', 100 ); add_action( 'woocommerce_checkout_after_customer_details', 'thegem_woocommerce_checkout_nav_buttons', 100); add_action( 'woocommerce_checkout_before_customer_details', 'thegem_woocommerce_customer_details_start', 1); add_action( 'woocommerce_checkout_after_customer_details', 'thegem_woocommerce_customer_details_end', 1000); add_action( 'woocommerce_checkout_before_order_review_heading', 'thegem_woocommerce_order_review_start', 1); add_action( 'woocommerce_checkout_after_order_review', 'thegem_woocommerce_order_review_end', 1000); add_action( 'woocommerce_after_checkout_form', 'thegem_woocommerce_checkout_form_steps_script'); add_action( 'woocommerce_after_checkout_registration_form', 'thegem_woocommerce_checkout_registration_buttons', 100); add_action( 'woocommerce_checkout_before_order_review', 'thegem_woocommerce_order_review_table_start', 1); add_action( 'woocommerce_checkout_after_order_review', 'thegem_woocommerce_order_review_table_end', 1000); add_filter('body_class', 'thegem_add_checkout_body_class'); if (!function_exists('thegem_woocommerce_short_grid_content')) { function thegem_woocommerce_short_grid_content($products = array(), $args = array()) { global $post; $portfolio_posttemp = $post; remove_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_content', 4); remove_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_loop_start', 11); remove_action('woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 15); remove_action('woocommerce_before_shop_loop', 'thegem_woocommerce_product_per_page_select', 30); remove_action('woocommerce_before_shop_loop', 'woocommerce_result_count', 40); remove_action('woocommerce_before_shop_loop', 'thegem_woocommerce_before_shop_loop_end', 45); do_action('woocommerce_before_shop_loop'); if (thegem_get_option('product_archive_preset_type') == 'on_image') { $hover_effect = thegem_get_option('product_archive_image_hover_effect_image'); $caption_position = 'image'; $preset = 'image-' . thegem_get_option('product_archive_preset_on_image'); } else if (thegem_get_option('product_archive_preset_type') == 'below') { $hover_effect = thegem_get_option('product_archive_image_hover_effect_page'); $caption_position = 'page'; $preset = 'below-' . thegem_get_option('product_archive_preset_below'); } else { $hover_effect = thegem_get_option('product_archive_image_hover_effect_hover'); $caption_position = 'hover'; $preset = 'hover-' . thegem_get_option('product_archive_preset_on_hover'); } $queried = get_queried_object(); $params = array_merge( array( 'portfolio_uid' => '', 'layout' => thegem_get_option('product_archive_layout'), 'image_gaps' => thegem_get_option('product_archive_size_desktop'), 'image_gaps_tablet' => thegem_get_option('product_archive_size_tablet'), 'image_gaps_mobile' => thegem_get_option('product_archive_size_mobile'), 'caption_position' => $caption_position, 'image_aspect_ratio' => thegem_get_option('product_archive_image_aspect_ratio'), 'quick_view' => 0, 'quick_view_text' => thegem_get_option('product_archive_quick_view_text'), 'orderby' => thegem_get_option('product_archive_orderby'), 'order' => thegem_get_option('product_archive_order'), 'product_show_categories' => thegem_get_option('product_archive_show_categories_desktop'), 'product_show_categories_tablet' => thegem_get_option('product_archive_show_categories_tablet'), 'product_show_categories_mobile' => thegem_get_option('product_archive_show_categories_mobile'), 'product_show_title' => thegem_get_option('product_archive_show_title'), 'product_show_price' => thegem_get_option('catalog_view') ? '' : thegem_get_option('product_archive_show_price'), 'product_show_reviews' => thegem_get_option('product_archive_show_reviews_desktop'), 'product_show_reviews_tablet' => thegem_get_option('product_archive_show_reviews_tablet'), 'product_show_reviews_mobile' => thegem_get_option('product_archive_show_reviews_mobile'), 'product_show_add_to_cart' => thegem_get_option('catalog_view') ? '' : thegem_get_option('product_archive_show_add_to_cart'), 'product_show_add_to_cart_mobiles' => thegem_get_option('catalog_view') ? '' : thegem_get_option('product_archive_show_add_to_cart'), 'add_to_cart_type' => thegem_get_option('product_archive_add_to_cart_type'), 'cart_button_show_icon' => thegem_get_option('product_archive_cart_button_show_icon'), 'cart_button_text' => thegem_get_option('product_archive_cart_button_text'), 'cart_button_pack' => thegem_get_option('product_archive_cart_icon_pack'), 'cart_icon_' . thegem_get_option('product_archive_cart_icon_pack') => thegem_get_option('product_archive_cart_icon'), 'select_options_button_text' => thegem_get_option('product_archive_select_options_button_text'), 'select_options_pack' => thegem_get_option('product_archive_select_options_icon_pack'), 'select_options_icon_' . thegem_get_option('product_archive_select_options_icon_pack') => thegem_get_option('product_archive_select_options_icon'), 'product_show_wishlist' => thegem_get_option('product_archive_show_wishlist'), 'add_wishlist_icon_pack' => thegem_get_option('product_archive_add_wishlist_icon_pack'), 'wishlist_icon_' . thegem_get_option('product_archive_add_wishlist_icon_pack') => thegem_get_option('product_archive_add_wishlist_icon'), 'added_wishlist_icon_pack' => thegem_get_option('product_archive_added_wishlist_icon_pack'), 'added_wishlist_icon_' . thegem_get_option('product_archive_added_wishlist_icon_pack') => thegem_get_option('product_archive_added_wishlist_icon'), 'loading_animation' => thegem_get_option('product_archive_loading_animation'), 'animation_effect' => thegem_get_option('product_archive_animation_effect'), 'ignore_highlights' => thegem_get_option('product_archive_ignore_highlights'), 'image_hover_effect_image' => thegem_get_option('product_archive_image_hover_effect_image'), 'image_hover_effect_page' => thegem_get_option('product_archive_image_hover_effect_page'), 'image_hover_effect_hover' => thegem_get_option('product_archive_image_hover_effect_hover'), 'image_hover_effect_fallback' => thegem_get_option('product_archive_image_hover_effect_fallback'), 'caption_container_preset' => thegem_get_option('product_archive_caption_container_preset'), 'product_separator' => thegem_get_option('product_archive_caption_container_separator'), 'caption_container_preset_hover' => thegem_get_option('product_archive_caption_container_preset_hover'), 'caption_container_alignment_hover' => thegem_get_option('product_archive_caption_container_alignment_hover'), 'buttons_icon_alignment' => thegem_get_option('product_archive_button_icon_alignment'), 'button_cart_color_normal' => thegem_get_option('product_archive_button_add_to_cart_text_color'), 'button_cart_color_hover' => thegem_get_option('product_archive_button_add_to_cart_text_color_hover'), 'button_cart_background_color_normal' => thegem_get_option('product_archive_button_add_to_cart_background_color'), 'button_cart_background_color_hover' => thegem_get_option('product_archive_button_add_to_cart_background_color_hover'), 'button_cart_border_color_normal' => thegem_get_option('product_archive_button_add_to_cart_border_color'), 'button_cart_border_color_hover' => thegem_get_option('product_archive_button_add_to_cart_border_color_hover'), 'button_options_color_normal' => thegem_get_option('product_archive_button_select_options_text_color'), 'button_options_color_hover' => thegem_get_option('product_archive_button_select_options_text_color_hover'), 'button_options_background_color_normal' => thegem_get_option('product_archive_button_select_options_background_color'), 'button_options_background_color_hover' => thegem_get_option('product_archive_button_select_options_background_color_hover'), 'button_options_border_color_normal' => thegem_get_option('product_archive_button_select_options_border_color'), 'button_options_border_color_hover' => thegem_get_option('product_archive_button_select_options_border_color_hover'), 'product_show_new' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_new') : '', 'product_show_sale' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_sale') : '', 'product_show_out' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_out_stock') : '', 'labels_design' => thegem_get_option('product_labels_style'), 'new_label_text' => thegem_get_option('product_label_new_text'), 'sale_label_type' => thegem_get_option('product_label_sale_type'), 'sale_label_prefix' => thegem_get_option('product_label_sale_prefix'), 'sale_label_suffix' => thegem_get_option('product_label_sale_suffix'), 'sale_label_text' => thegem_get_option('product_label_sale_text'), 'out_label_text' => thegem_get_option('product_label_out_of_stock_text'), 'social_sharing' => thegem_get_option('product_archive_social_sharing'), 'skeleton_loader' => thegem_get_option('product_archive_skeleton_loader'), 'fullwidth_section_images' => thegem_get_option( 'product_archive_used_in_fullwidth_section'), ), $args); wp_enqueue_style('thegem-portfolio-products-extended'); if (!wp_script_is('thegem-portfolio-grid-extended')) { wp_enqueue_script('thegem-portfolio-grid-extended'); wp_add_inline_script( 'thegem-portfolio-grid-extended', "jQuery('.extended-products-grid .yith-icon').each(function () { var addIcon = jQuery(this).children('.add-wishlist-icon').clone(); var addedIcon = jQuery(this).children('.added-wishlist-icon').clone(); jQuery(this).find('a i').remove(); jQuery(this).find('a svg').remove(); jQuery(this).find('.yith-wcwl-add-button a:not(.delete_item)').prepend(addIcon); jQuery(this).find('.yith-wcwl-add-button a.delete_item').prepend(addedIcon); jQuery(this).find('.yith-wcwl-wishlistexistsbrowse a').prepend(addedIcon); jQuery(this).find('a').addClass('icon'); jQuery(this).find('a.gem-button').removeAttr('class').removeAttr('style').removeAttr('onmouseleave').removeAttr('onmouseenter').addClass('icon'); jQuery(this).find('.yith-wcwl-wishlistaddedbrowse a').prepend(addedIcon); });" ); } $grid_uid = $params['portfolio_uid']; wp_enqueue_style('thegem-hovers-' . $hover_effect); if ($params['quick_view'] == '1') { wp_enqueue_script('wc-single-product'); wp_enqueue_script('wc-add-to-cart-variation'); wp_enqueue_script('thegem-product-quick-view'); if (!is_product() && thegem_is_quick_view_default()) { wp_enqueue_script('thegem-quick-view'); wp_enqueue_style('thegem-quick-view'); } if(thegem_get_option('product_page_layout') == 'default') { if(thegem_get_option('product_page_button_add_to_cart_icon') && thegem_get_option('product_page_button_add_to_cart_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_add_to_cart_icon_pack')); } if(thegem_get_option('product_page_button_add_to_wishlist_icon') && thegem_get_option('product_page_button_add_to_wishlist_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_add_to_wishlist_icon_pack')); } if(thegem_get_option('product_page_button_added_to_wishlist_icon') && thegem_get_option('product_page_button_added_to_wishlist_icon_pack')) { wp_enqueue_style('icons-'.thegem_get_option('product_page_button_added_to_wishlist_icon_pack')); } } if (thegem_get_option('product_gallery') != 'legacy') { wp_enqueue_style('thegem-product-gallery'); } else { wp_enqueue_style('thegem-hovers'); } } if ($params['loading_animation'] === '1') { wp_enqueue_style('thegem-animations'); wp_enqueue_script('thegem-items-animations'); wp_enqueue_script('thegem-scroll-monitor'); } if ($params['layout'] !== 'justified' || $params['ignore_highlights'] !== '1') { if ($params['layout'] == 'metro') { wp_enqueue_script('thegem-isotope-metro'); } else { wp_enqueue_script('thegem-isotope-masonry-custom'); } } $items_per_page = count($products); $item_classes = get_thegem_extended_products_render_item_classes($params); $thegem_sizes = get_thegem_extended_products_render_item_image_sizes($params); if ($params['columns_desktop'] == '100%' || (($params['ignore_highlights'] !== '1' || $params['layout'] !== 'justified') && $params['skeleton_loader'] !== '1')) { echo apply_filters('thegem_portfolio_preloader_html', '<div class="preloader save-space"><div class="preloader-spin"></div></div>'); } else if ($params['skeleton_loader'] == '1') { ?> <div class="preloader save-space shop-skeleton" data-style-uid="to_products"> <div class="skeleton"> <div class="skeleton-posts row portfolio-row"> <?php for ($x = 0; $x < $items_per_page; $x++) { echo thegem_extended_products_render_item($params, $item_classes); } ?> </div> </div> </div> <?php } ?> <div class="portfolio-preloader-wrapper"> <?php if ($params['caption_position'] == 'hover') { $title_on = 'hover'; } else { $title_on = 'page'; } $portfolio_classes = array( 'portfolio portfolio-grid extended-products-grid', 'to-extended-products', 'woocommerce', 'products', 'no-padding', 'portfolio-preset-' . $preset, 'portfolio-style-' . $params['layout'], 'background-style-' . $params['caption_container_preset'], (($params['caption_position'] == 'hover' && ($params['image_hover_effect_hover'] == 'slide' || $params['image_hover_effect_hover'] == 'fade')) || $params['caption_position'] == 'image') ? 'caption-container-preset-' . $params['caption_container_preset_hover'] : '', (($params['caption_position'] == 'hover' && ($params['image_hover_effect_hover'] == 'slide' || $params['image_hover_effect_hover'] == 'fade')) || $params['caption_position'] == 'image') ? 'caption-alignment-' . $params['caption_container_alignment_hover'] : '', 'caption-position-' . $params['caption_position'], 'aspect-ratio-' . $params['image_aspect_ratio'], 'hover-' . $hover_effect, 'title-on-' . $title_on, ($params['loading_animation'] == '1' ? 'loading-animation' : ''), ($params['loading_animation'] == '1' && $params['animation_effect'] ? 'item-animation-' . $params['animation_effect'] : ''), ($params['image_gaps'] == 0 ? 'no-gaps' : ''), ($params['columns_desktop'] == '100%' ? 'fullwidth-columns fullwidth-columns-desktop-' . $params['columns_100'] : ''), ($params['caption_position'] == 'image' && $params['image_hover_effect_image'] == 'gradient' ? 'hover-gradient-title' : ''), ($params['caption_position'] == 'image' && $params['image_hover_effect_image'] == 'circular' ? 'hover-circular-title' : ''), ($params['caption_position'] == 'hover' || $params['caption_position'] == 'image' ? 'hover-title' : ''), ($params['social_sharing'] != '1' ? 'portfolio-disable-socials' : ''), ($params['layout'] == 'masonry' ? 'portfolio-items-masonry' : ''), ($params['columns_desktop'] != '100%' ? 'columns-desktop-' . $params['columns_desktop'] : 'columns-desktop-' . $params['columns_100']), ('columns-tablet-' . $params['columns_tablet']), ('columns-mobile-' . $params['columns_mobile']), ($params['product_separator'] == '1' ? 'item-separator' : ''), ($params['layout'] == 'justified' && $params['ignore_highlights'] =='1' ? 'disable-isotope' : ''), ); ?> <div class="<?php echo esc_attr(implode(' ', $portfolio_classes)) ?>" data-per-page="-1" data-style-uid="to_products" data-portfolio-uid="<?php echo esc_attr($grid_uid) ?>" data-hover="<?php echo esc_attr($hover_effect) ?>"> <div class="portfolio-row-outer <?php if ($params['columns_desktop'] == '100%'): ?>fullwidth-block no-paddings<?php endif; ?>"> <input id="shop-page-url" type="hidden" <?php if (get_home_url()."/" == wc_get_page_permalink('shop')) {?>class="is-shop-home"<?php } ?> value="<?php echo (isset($queried->taxonomy) && $queried->taxonomy == 'product_cat') ? get_term_link($queried->slug, 'product_cat') : wc_get_page_permalink('shop'); ?>"> <div class="row portfolio-row clearfix"> <div class="portfolio-set" data-max-row-height=""> <?php if (!empty($products)) { remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10); remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10); remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); remove_action('woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10); remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); remove_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_link', 15); remove_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_wishlist', 20); $item_classes = get_thegem_extended_products_render_item_classes($params); $thegem_sizes = get_thegem_extended_products_render_item_image_sizes($params); foreach ($products as $product_item) : ?> <?php $post_object = get_post( $product_item->get_id() ); setup_postdata( $GLOBALS['post'] =& $post_object ); echo thegem_extended_products_render_item($params, $item_classes, $thegem_sizes, get_the_ID()); ?> <?php endforeach; wp_reset_postdata(); } ?> </div> <div class="portfolio-item-size-container"> <?php echo thegem_extended_products_render_item($params, $item_classes); ?> </div> </div><!-- .row--> </div><!-- .full-width --> </div><!-- .portfolio--> </div><!-- .portfolio-preloader-wrapper--> <?php $post = $portfolio_posttemp; } } if (!function_exists('thegem_woocommerce_search_grid_content')) { function thegem_woocommerce_search_grid_content($products = array()) { if (thegem_get_option('product_archive_preset_type') == 'on_image') { $hover_effect = thegem_get_option('product_archive_image_hover_effect_image'); $caption_position = 'image'; $preset = 'image-' . thegem_get_option('product_archive_preset_on_image'); } else if (thegem_get_option('product_archive_preset_type') == 'below') { $hover_effect = thegem_get_option('product_archive_image_hover_effect_page'); $caption_position = 'page'; $preset = 'below-' . thegem_get_option('product_archive_preset_below'); } else { $hover_effect = thegem_get_option('product_archive_image_hover_effect_hover'); $caption_position = 'hover'; $preset = 'hover-' . thegem_get_option('product_archive_preset_on_hover'); } $params = array( 'portfolio_uid' => 'search-products', 'style_uid' => 'search_products', 'layout' => thegem_get_option('product_archive_layout'), 'image_gaps' => '28', 'image_gaps_tablet' => '24', 'image_gaps_mobile' => '14', 'columns_desktop' => '100%', 'columns_tablet' => '4x', 'columns_mobile' => '2x', 'columns_100' => '6', 'caption_position' => $caption_position, 'image_aspect_ratio' => thegem_get_option('product_archive_image_aspect_ratio'), 'quick_view' => '', 'product_show_categories' => '', 'product_show_categories_tablet' => '', 'product_show_categories_mobile' => '', 'product_show_title' => thegem_get_option('product_archive_show_title'), 'product_show_price' => '1', 'product_show_reviews' => '', 'product_show_reviews_tablet' => '', 'product_show_reviews_mobile' => '', 'product_show_add_to_cart' => '', 'product_show_add_to_cart_mobiles' => '', 'product_show_wishlist' => '', 'loading_animation' => '', 'ignore_highlights' => '1', 'image_hover_effect_image' => thegem_get_option('product_archive_image_hover_effect_image'), 'image_hover_effect_page' => thegem_get_option('product_archive_image_hover_effect_page'), 'image_hover_effect_hover' => thegem_get_option('product_archive_image_hover_effect_hover'), 'image_hover_effect_fallback' => thegem_get_option('product_archive_image_hover_effect_fallback'), 'caption_container_preset' => thegem_get_option('product_archive_caption_container_preset'), 'product_separator' => thegem_get_option('product_archive_caption_container_separator'), 'caption_container_preset_hover' => thegem_get_option('product_archive_caption_container_preset_hover'), 'caption_container_alignment_hover' => thegem_get_option('product_archive_caption_container_alignment_hover'), 'product_show_new' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_new') : '', 'product_show_sale' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_sale') : '', 'product_show_out' => thegem_get_option('product_archive_labels') == '1' ? thegem_get_option('product_archive_label_out_stock') : '', 'labels_design' => thegem_get_option('product_labels_style'), 'new_label_text' => thegem_get_option('product_label_new_text'), 'sale_label_type' => thegem_get_option('product_label_sale_type'), 'sale_label_prefix' => thegem_get_option('product_label_sale_prefix'), 'sale_label_suffix' => thegem_get_option('product_label_sale_suffix'), 'sale_label_text' => thegem_get_option('product_label_sale_text'), 'out_label_text' => thegem_get_option('product_label_out_of_stock_text'), 'social_sharing' => thegem_get_option('product_archive_social_sharing'), 'skeleton_loader' => '', ); echo thegem_extended_products_render_styles($params); $grid_uid = $params['portfolio_uid']; ?> <div class="portfolio-preloader-wrapper"> <?php if ($params['caption_position'] == 'hover') { $title_on = 'hover'; } else { $title_on = 'page'; } $portfolio_classes = array( 'portfolio portfolio-grid extended-products-grid disable-isotope', 'woocommerce', 'products', 'no-padding', 'portfolio-preset-' . $preset, 'portfolio-style-' . $params['layout'], 'background-style-' . $params['caption_container_preset'], (($params['caption_position'] == 'hover' && ($params['image_hover_effect_hover'] == 'slide' || $params['image_hover_effect_hover'] == 'fade')) || $params['caption_position'] == 'image') ? 'caption-container-preset-' . $params['caption_container_preset_hover'] : '', (($params['caption_position'] == 'hover' && ($params['image_hover_effect_hover'] == 'slide' || $params['image_hover_effect_hover'] == 'fade')) || $params['caption_position'] == 'image') ? 'caption-alignment-' . $params['caption_container_alignment_hover'] : '', 'caption-position-' . $params['caption_position'], 'aspect-ratio-' . $params['image_aspect_ratio'], 'hover-' . $hover_effect, 'title-on-' . $title_on, ($params['image_gaps'] == 0 ? 'no-gaps' : ''), ($params['columns_desktop'] == '100%' ? 'fullwidth-columns fullwidth-columns-desktop-' . $params['columns_100'] : ''), ($params['caption_position'] == 'image' && $params['image_hover_effect_image'] == 'gradient' ? 'hover-gradient-title' : ''), ($params['caption_position'] == 'image' && $params['image_hover_effect_image'] == 'circular' ? 'hover-circular-title' : ''), ($params['caption_position'] == 'hover' || $params['caption_position'] == 'image' ? 'hover-title' : ''), ($params['social_sharing'] != '1' ? 'portfolio-disable-socials' : ''), ($params['columns_desktop'] != '100%' ? 'columns-desktop-' . $params['columns_desktop'] : 'columns-desktop-' . $params['columns_100']), ('columns-tablet-' . $params['columns_tablet']), ('columns-mobile-' . $params['columns_mobile']), ($params['product_separator'] == '1' ? 'item-separator' : ''), ); ?> <div class="<?php echo esc_attr(implode(' ', $portfolio_classes)) ?>" data-per-page="-1" data-style-uid="search_products" data-portfolio-uid="<?php echo esc_attr($grid_uid) ?>" data-hover="<?php echo esc_attr($hover_effect) ?>"> <div class="portfolio-row-outer <?php if ($params['columns_desktop'] == '100%'): ?>fullwidth-block no-paddings<?php endif; ?>"> <div class="row portfolio-row clearfix"> <div class="portfolio-set" data-max-row-height=""> <?php if (!empty($products)) { remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10); remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10); remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); remove_action('woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10); remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); remove_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_link', 15); remove_action('woocommerce_after_shop_loop_item', 'thegem_woocommerce_after_shop_loop_item_wishlist', 20); $item_classes = get_thegem_extended_products_render_item_classes($params); $thegem_sizes = get_thegem_extended_products_render_item_image_sizes($params); while ($products->have_posts()) : $products->the_post(); ?> <?php echo thegem_extended_products_render_item($params, $item_classes, $thegem_sizes, get_the_ID()); ?> <?php endwhile; wp_reset_postdata(); } ?> </div> <div class="portfolio-item-size-container"> <?php echo thegem_extended_products_render_item($params, $item_classes); ?> </div> </div><!-- .row--> </div><!-- .full-width --> </div><!-- .portfolio--> </div><!-- .portfolio-preloader-wrapper--> <?php } } function thegem_woocommerce_widget_swatches( $term_html, $term, $link, $count ) { if (thegem_get_option('product_archive_type') == 'grid') { $attribute_data = wc_get_attribute(wc_attribute_taxonomy_id_by_name($term->taxonomy)); $attribute_type_class = $attribute_data->type == 'color' || $attribute_data->type == 'label' ? ' attribute-type-'.$attribute_data->type : ''; $term_title = $term->name; if ($attribute_data->type == 'label') { $attribute_label = get_term_meta( $term->term_id, 'thegem_label', true ); $term_title = !empty($attribute_label) ? $attribute_label : $term_title; } $term_html = '<a href="'.$link.'" class="' . esc_attr( $attribute_type_class ) . '" rel="nofollow">'; if($attribute_data->type == 'color') { $attribute_color = get_term_meta( $term->term_id, 'thegem_color', true ); $term_html .= '<span class="color"' . (!empty($attribute_color) ? ' style="background-color: ' . esc_attr($attribute_color).';"' : '') . '></span>'; } $term_html .= '<span class="title">' . esc_html( $term_title ) . '</span>'; $term_html .= ' ' . apply_filters( 'woocommerce_layered_nav_count', '<span class="count">(' . absint( $count ) . ')</span>', $count, $term ); $term_html .= '</a>'; } return $term_html; } add_filter( 'woocommerce_layered_nav_term_html', 'thegem_woocommerce_widget_swatches', 10, 4 ); function thegem_woocommerce_widget_swatches_title($title, $instance = array(), $id_base = '') { if($id_base == 'woocommerce_layered_nav' && $instance['display_type'] == 'list') { $attribute_data = wc_get_attribute(wc_attribute_taxonomy_id_by_name('pa_'.$instance['attribute'])); if ($attribute_data->type == 'label') { echo '<div class="attribute-type-label-list"></div>'; } } return $title; } add_action( 'widget_title', 'thegem_woocommerce_widget_swatches_title', 10, 3 ); function thegem_woocommerce_quantity_buttons() { global $product, $thegem_product_data; if ( !empty($thegem_product_data) && $thegem_product_data['product_page_layout'] === 'legacy' ) return; ?> <script> (function($) { $('form.cart div.quantity:not(.buttons_added)').addClass('buttons_added').append('<button type="button" class="plus" >+</button>').prepend('<button type="button" class="minus" >-</button>'); })(jQuery); </script> <?php } add_action( 'woocommerce_after_quantity_input_field', 'thegem_woocommerce_quantity_buttons', 10, 3 ); function thegem_single_product_template() { if(!function_exists('thegem_get_template_type') || !is_singular( 'product' )) return false; $product_id = get_the_ID(); $product_data = thegem_get_output_product_page_data($product_id); if($product_data['product_layout_source'] !== 'builder') return false; $template_id = intval($product_data['product_builder_template']); if($template_id < 1) return false; $template = get_post($template_id); if($template && thegem_get_template_type($template_id) == 'single-product') { return $template_id; } return false; } function thegem_archive_product_template() { if(!function_exists('thegem_get_template_type') || !(thegem_get_template_type( get_the_ID() ) === 'product-archive' || is_tax( 'product_cat' ) || is_tax( 'product_tag' ) || is_post_type_archive( 'product' ))) return false; $term_id = isset(get_queried_object()->term_id) ? get_queried_object()->term_id : 0; $product_archive_data = thegem_get_output_product_archive_data($term_id); if($product_archive_data['product_archive_layout_source'] !== 'builder') return false; $template_id = intval($product_archive_data['product_archive_builder_template']); if($template_id < 1) return false; $template = get_post($template_id); if($template && thegem_get_template_type($template_id) == 'product-archive') { return $template_id; } return false; } function thegem_cart_template() { if(!function_exists('thegem_get_template_type') || thegem_get_option('cart_layout_source') != 'builder') return false; $template = thegem_get_option('cart_builder_template'); $template_id = intval($template); if(thegem_get_template_type($template_id) == 'cart') { return $template_id; } return false; } function thegem_cart_empty_template() { if(!function_exists('thegem_get_template_type') || thegem_get_option('cart_empty_layout_source') != 'builder') return false; $template = thegem_get_option('cart_empty_builder_template'); $template_id = intval($template); if(thegem_get_template_type($template_id) == 'content') { return $template_id; } return false; } function thegem_checkout_template() { if(!function_exists('thegem_get_template_type') || thegem_get_option('checkout_layout_source') != 'builder') return false; $template = thegem_get_option('checkout_builder_template'); $template_id = intval($template); if(thegem_get_template_type($template_id) == 'checkout') { return $template_id; } return false; } function thegem_checkout_thanks_template() { if(!function_exists('thegem_get_template_type') || thegem_get_option('checkout_thanks_layout_source') != 'builder') return false; $template = thegem_get_option('checkout_thanks_builder_template'); $template_id = intval($template); if(thegem_get_template_type($template_id) == 'checkout-thanks') { return $template_id; } return false; } function thegem_template_cart_layout($value) { if(thegem_cart_template()) { $value = 'modern'; } if(thegem_checkout_template()) { $value = 'modern'; } if(function_exists('thegem_get_template_type') && (thegem_get_template_type(get_the_id()) == 'cart' || thegem_get_template_type(get_the_id()) == 'checkout')) { $value = 'modern'; } return $value; } add_filter('thegem_option_cart_layout', 'thegem_template_cart_layout'); function thegem_page_template_cart_checkout($template, $type, $templates) { if (defined( 'WC_PLUGIN_FILE' )) { if((is_cart() && thegem_cart_template()) || (is_checkout() && thegem_checkout_template())) { $template = locate_template( 'woocommerce/cart-checkout-page-template.php' ); } } return $template; } add_filter('page_template', 'thegem_page_template_cart_checkout', 10,3); function thegem_admin_page_data_checkout_thanks( $page_data, $post_id, $item_data, $type) { if (defined('WC_PLUGIN_FILE')) { if(is_checkout() && is_wc_endpoint_url('order-received')) { if(thegem_cart_template()) { $page_data['title_show'] = 'disabled'; } if(thegem_checkout_template() && !thegem_checkout_thanks_template()) { $page_data['content_area_options'] = 'default'; } } } return $page_data; } add_filter('thegem_admin_page_data', 'thegem_admin_page_data_checkout_thanks', 10, 4); function thegem_admin_page_data_cart_empty( $page_data, $post_id, $item_data, $type) { if (defined('WC_PLUGIN_FILE')) { if(is_cart() && thegem_cart_template()) { $page_data['content_area_options'] = 'default'; } } return $page_data; } add_filter('thegem_admin_page_data', 'thegem_admin_page_data_cart_empty', 10, 4);