Oh, I see! It’s at the edit product level. That’s helpful. Thank you for clarifying Hung. I don’t know why I didn’t look there!
Cheers.
Oh, I see! It’s at the edit product level. That’s helpful. Thank you for clarifying Hung. I don’t know why I didn’t look there!
Cheers.
Hi,
Thanks. This’ll give me some flex. I see there are 2 custom tabs available for products & 1 custom tab individual for every product. In the single product builder, there’s no option to add content to the 1 custom tab individual. Only allowance for 2 custom tabs.
Where is the 3rd tab? https://prnt.sc/q947m5
Hi Olga – can you make a mention in the release notes with the next theme update that this change has been updated? I’ll keep a lookout. Thanks again for all the great work you do on this forum!
re: xstore/woocommerce/content-widget-product.php (out of date)
Thank you Rose. This was a great suggestion and it worked. I placed the following code into child theme functions.php file however it seems a bit heavy to include this considering I’m only changing 1 line. Is there anyway I can slim this down?
// **********************************************************************//
// ! Template hooks
// **********************************************************************//
add_action('wp', 'etheme_template_hooks', 60);
if(!function_exists('etheme_template_hooks')) {
function etheme_template_hooks() {
// add_action( 'woocommerce_before_shop_loop', 'woocommerce_pagination', 40 ); // add pagination above the products
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_button_view_cart', 10 );
// ! Change single product main gallery image size
add_filter( 'woocommerce_gallery_image_size', function( $size ) {
return 'woocommerce_single';
} );
if ( ! class_exists( 'SB_WooCommerce_Infinite_Scroll' ) ) {
add_action( 'woocommerce_after_shop_loop', 'woocommerce_result_count', 5 );
}
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 );
add_action('woocommerce_before_shop_loop_item','woocommerce_show_product_loop_sale_flash', 10);
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' );
/* Remove link open and close on product content */
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 );
// Change rating position on the single product page
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 15 );
add_action('woocommerce_single_product_summary', 'etheme_product_share', 50);
if(etheme_get_option('tabs_location') == 'after_image' && etheme_get_option('tabs_type') != 'disable' && etheme_get_option('single_layout') != 'large') {
add_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs', 61 );
add_filter('et_option_tabs_type', function () { return "accordion"; });
if(etheme_get_option('reviews_position') == 'outside') {
add_action( 'woocommerce_single_product_summary', 'comments_template', 110 );
}
}
if( etheme_get_option('single_layout') == 'fixed' || etheme_get_custom_field('single_layout') == 'fixed' ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 15 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
} else if( etheme_get_option('single_layout') == 'center' || etheme_get_custom_field('single_layout') == 'center' ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
} else if( etheme_get_option('single_layout') == 'wide' || etheme_get_custom_field('single_layout') == 'wide' || etheme_get_option('single_layout') == 'right' || etheme_get_custom_field('single_layout') == 'right' ) {
if(is_singular('product')) remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );
add_action( 'woocommerce_single_product_summary', 'wc_print_notices', 1 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_breadcrumb', 3 );
add_action( 'woocommerce_single_product_summary', 'etheme_size_guide', 21 );
} else if( etheme_get_option('single_layout') == 'booking' || etheme_get_custom_field('single_layout') == 'booking' ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 15 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
if(etheme_get_option('tabs_location') == 'after_image' && etheme_get_option('tabs_type') != 'disable') {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs', 61 );
}
//remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
//remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50 );
} else {
// Add product categories after title
add_action( 'woocommerce_single_product_summary', 'etheme_size_guide', 21 );
}
if ( etheme_get_custom_field('sale_counter') == 'single' || etheme_get_custom_field('sale_counter') == 'single_list' ) {
add_action('woocommerce_single_product_summary', 'etheme_product_countdown', 29);
}
if(etheme_get_option('reviews_position') == 'outside') {
add_filter( 'woocommerce_product_tabs', 'etheme_remove_reviews_from_tabs', 98 );
add_action( 'woocommerce_after_single_product_summary', 'comments_template', 30 );
}
if( get_option('yith_wcwl_button_position') == 'shortcode' ) {
add_action( 'woocommerce_after_add_to_cart_button', 'etheme_wishlist_btn', 30 );
}
if ( etheme_get_option('enable_brands') && etheme_get_option('brands_location') == 'content' ) {
add_action('woocommerce_before_single_product', 'etheme_single_product_brands', 4);
}
if ( etheme_get_option('enable_brands') && etheme_get_option('brands_location') == 'under_content' ) {
add_action('woocommerce_product_meta_start', 'etheme_single_product_brands', 2);
}
remove_action( 'woocommerce_before_shop_loop', 'wc_print_notices', 10 );
/* Increase avatar size for reviews on product page */
add_filter( 'woocommerce_review_gravatar_size', function() {
return 80;
}, 30 );
// ! Remove empty cart message
remove_action( 'woocommerce_cart_is_empty', 'wc_empty_cart_message', 10 );
// Pagination shop
add_filter('woocommerce_pagination_args', 'et_woocommerce_pagination');
add_action( 'template_redirect', 'et_wc_track_product_view', 20 );
// 360 view plugin
if( class_exists( 'SmartProductPlugin' ) ) {
remove_filter('woocommerce_single_product_image_html', array('SmartProductPlugin', 'wooCommerceImage'), 999, 2 );
}
}
}
Thanks Olga. It seems to be working now in the child theme. Looks like it was a cache issue with WP Rocket that seemed to resolve. Can we remove the links above that are public? Thank you for your help once again!
Please see page list here. I’ve provided examples. Thank you!
@rosetyler – I’ve been following this thread. Are the changes made going to be released in a theme update?
Hi @bluehiveinteractive – did you figure this out? I’m getting the same errors and have my max execution time set to 6000.
@rosetyler Not sure about the ‘get_query_var()’ and ‘set_query_var()’ functions. Running on GoDaddy hosting. Where do we find this in cPanel?
Thank you Rose. I mean if you turn on show brands on product landing page, and then turn off show brands, it’s still showing brands and not unsetting off the page.
Also I came across a bug where if you turn this option on, then try and turn it off, it doesn’t save the settings.
Here’s another set. It also includes footer.php
[10-Dec-2018 13:24:01 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/footer.php on line 3
[10-Dec-2018 13:29:09 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 16
[10-Dec-2018 13:29:09 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 17
[10-Dec-2018 13:29:09 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 19
[10-Dec-2018 13:29:09 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 20
[10-Dec-2018 13:29:09 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/framework/theme-functions.php on line 129
[10-Dec-2018 13:29:09 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/footer.php on line 3
Hi Olga, yes – See private content.
Hi @olgabarlow
I’m running into same error:
[09-Dec-2018 06:17:18 UTC] PHP Notice: Uninitialized string offset: 0 in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 17
[09-Dec-2018 06:17:18 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 19
[09-Dec-2018 06:17:18 UTC] PHP Notice: Uninitialized string offset: 0 in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 19
[09-Dec-2018 06:17:18 UTC] PHP Warning: Illegal string offset 'id' in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 20
[09-Dec-2018 06:17:18 UTC] PHP Notice: Uninitialized string offset: 0 in /public_html/wp-content/themes/xstore/theme/custom-styles.php on line 20
Any update on when this issue will be resolved?
Please see my private content
Rose, please see my private content.
Hi Rose – please see pc.
Hi Rose – that is the FTP login access.
Hi @olgabarlow – any plans to reinclude fancy select back into the theme?
Hi Olga – can we pull the link off this please? Thanks.
I also noticed, for some bizarre season, if I have the css below this css –> body {font-family: “proxima-nova”, sans-serif !important; -webkit-font-smoothing: antialiased !important;}, the animation doesn’t work. it needs to be above the body css. Never seen that one before.
Rose/Olga, it worked! Thank you. I took your suggestion and swizzled it around. Don’t even need the jQuery I initially thought I did.
.nav-sublist-dropdown {
transition-duration: .5s;
animation: none;
display: block;
opacity: 1 !important;
visibility: hidden;
overflow-y: hidden;
max-height: 0;
transition-property: all;
transition-timing-function: cubic-bezier(0, 1, 0.5, 1);
}
.menu-item-has-children:hover .nav-sublist-dropdown, li:hover .nav-sublist-dropdown {
animation: none;
opacity: 1 !important;
visibility: visible;
max-height: 500px; /* approximate max height */
}
Thanks Rose. Can we pull the link off the last response. And then delete this message. Thanks!
Hi Olga, thank you. Still the ‘animation’ parameter for the .nav-sublist-dropdown can’t be overwritten. Were you albe to successfully do this on your end?
I’m still having no luck killing the fadeIn effect. It’s some how set in stone somewhere. What I’m trying to do is kill the fadein fadeout effect and make the menu slide down on hover but I can’t seem to get it working properly. Almost there but it’s a bit quirky. Thoughts?
jQuery(document).ready(function($){
$('.menu-wrapper>.menu-main-container>.menu>.item-with-block').on('mouseover', function() {
$('.menu-static-block.nav-sublist-dropdown').slideToggle();
});
$('.menu-wrapper>.menu-main-container>.menu>.item-with-block').on('mouseleave', function() {
$('.menu-static-block.nav-sublist-dropdown').slideToggle();
})
});
Hi Rose – I’ve had no success with above and can’t seem to overwrite it with !important; Can you take a look? I’ve like to kill the fadeIn/fadeOut all together and remove the delay. See private content.
Here’s the final solution.
XStore – How to make page darkening happen on menu (non-secondary menu) that have static blocks as mega-menu dropdown
CSS
body:before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.3);
z-index: -1;
display: none;
animation: slideOut;
}
.menu-item-hovered:before {
display: block;
z-index: 1002;
animation-name: fadeIn;
animation-duration: 0.2s;
}
.menu-item-hovered .page-wrapper {
z-index: auto;
}
.menu-item-hovered .header-wrapper {
z-index: 1003;
}
.menu-item-hovered {
position: relative;
}
JS
jQuery(document).ready(function($){
$('.menu-wrapper>.menu-main-container>.menu>.item-with-block').on('mouseover', function() {
$('body').addClass('menu-item-hovered');
});
$('.menu-wrapper>.menu-main-container>.menu>.item-with-block').on('mouseleave', function() {
$('body').removeClass('menu-item-hovered');
})
});
Did the trick.
Can we make the selection trigger on select pages. So we give users the option to choose whether it’s active on shop pages or non shop pages. That’s help from not calling the script unnecessarily 🙂
Hi Rose. I noticed that this doesn’t darken the whole page. As you scroll down, it only cover’s the height of the static block. What do I need to adjust in the css to push it full height?
This is great Rose. Thank you for your help. Once again!
Hi –
Yes, you have to specify what you want to link to in your menu. If it’s a ‘Page’ then you would need to create an actual page to link to, for instance, ‘Contact Us’.
If you want to link to a ‘Product Category’, then you need to create an actual product category by going to Products > Categories. Once you’ve created a category, you need to assign products to these categories.
Then, once that’s done, you can add this ‘Category’ to your menu and it’ll take you to a shop page with all the products in that category with your shop sidebar showing.
The category taxonomy is an important step. I’d give it some thought as to how you’d like to structure your site architecture.
Based on the example you shared, it looks like they’ve categorized it per animal, and then subcategories for that animal.
Giraffe (Main Category)
– Wet Food (Sub Category)
– Dry Food (Sub Category)
– Giraffe Roller Skates (Sub Category)
As for the slider, you can adjust this in the row settings I believe. The demo content might have set the row to full height but I’ll let Rose confirm.
Hope this helps a bit!