File: /homepages/35/d967185540/htdocs/clickandbuilds/GMS26/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');
}
}
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');
}
}
}
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() || 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');
add_filter('posts_join', 'thegem_sku_search_join');
add_filter('posts_where', 'thegem_sku_search_where');
add_filter('posts_groupby', 'thegem_sku_search_groupby');
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 (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');
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'];
}
?>
<?php if($size_guide_image) : ?>
<div class="size-guide"><a href="<?php echo esc_url($size_guide_image); ?>" class="fancybox"><?php esc_html_e('Size guide', 'thegem'); ?></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_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 ($products_tag) {
$tax_query[] = array(
'taxonomy' => 'product_tag',
'field' => 'slug',
'terms' => $products_tag
);
}
if ($products_tax) {
$tax_query[] = array(
'taxonomy' => $products_tax,
'field' => 'slug',
'terms' => $products_tax_value
);
}
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',
);
$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) {
if (is_numeric($search) && get_post_status(absint($search))) {
$args['p'] = $search;
} else {
$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) {
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,
'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);
$price['min'] = 1000000;
$price['max'] = 0;
while ($portfolio_loop->have_posts()) : $portfolio_loop->the_post();
global $product;
if ($product->get_price() && $product->get_price() > $price['max']) {
$price['max'] = $product->get_price();
}
if ($product->get_price() && $product->get_price() < $price['min']) {
$price['min'] = $product->get_price();
}
endwhile;
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);