screen->uses_woo_default_template() && ! is_customize_preview() ) { return false; } return ! apply_filters('blocksy:woocommerce:product-view:use-default', false); } remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 ); if (! wp_doing_ajax()) { add_filter('template_include', function ($template) { if (blocksy_woocommerce_has_flexy_view()) { remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 ); } return $template; }, 900000009); } else { add_action('init', function () { if (blocksy_woocommerce_has_flexy_view()) { remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 ); } }); } $action_to_hook = 'wp'; if (wp_doing_ajax()) { $action_to_hook = 'init'; } add_action($action_to_hook, function () { if (get_theme_mod('woo_has_product_tabs', 'yes') === 'no') { add_filter('woocommerce_product_tabs', function ($tabs) { return []; }, 99); } if (get_theme_mod('has_product_single_rating', 'yes') === 'no') { remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 ); } if (get_theme_mod('has_product_single_title', 'yes') === 'no') { remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 ); } }, 9000000000); add_action( 'woocommerce_single_product_summary', function () { if (get_theme_mod('has_product_single_meta', 'yes') === 'yes') { woocommerce_template_single_meta(); } }, 39 ); add_action( 'woocommerce_single_product_summary', function () { do_action('blocksy:woocommerce:product-single:excerpt:before'); }, 19 ); add_action( 'woocommerce_single_product_summary', function () { do_action('blocksy:woocommerce:product-single:excerpt:after'); }, 21 ); add_action( 'woocommerce_after_single_product_summary', function () { do_action('blocksy:woocommerce:product-single:tabs:before'); }, 9 ); add_action( 'woocommerce_after_single_product_summary', function () { do_action('blocksy:woocommerce:product-single:tabs:after'); }, 11 ); add_action( 'woocommerce_before_single_product_summary', function () { echo '
'; }, 1 ); add_action( 'woocommerce_after_single_product_summary', function () { echo '
'; }, 1 ); remove_action('woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15); remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20); add_action( 'woocommerce_after_main_content', 'blocksy_woo_single_product_after_main_content', 5 ); if (! function_exists('blocksy_woo_single_product_after_main_content')) { function blocksy_woo_single_product_after_main_content() { if (is_product()) { woocommerce_upsell_display(); woocommerce_output_related_products(); } } } function blocksy_woo_single_post_class($classes, $product) { if (! is_product()) { return $classes; } if (blocksy_woocommerce_has_flexy_view()) { if (count($product->get_gallery_image_ids()) > 0) { if (get_theme_mod('gallery_style', 'horizontal') === 'vertical') { $classes[] = 'thumbs-left'; } else { $classes[] = 'thumbs-bottom'; } } } $product_view_type = get_theme_mod('product_view_type', 'default-gallery'); if ( $product_view_type === 'default-gallery' || $product_view_type === 'stacked-gallery' ) { if (get_theme_mod('has_product_sticky_gallery', 'no') === 'yes') { $classes[] = 'sticky-gallery'; } if (get_theme_mod('has_product_sticky_summary', 'no') === 'yes') { $classes[] = 'sticky-summary'; } } return $classes; } add_filter( 'woocommerce_post_class', 'blocksy_woo_single_post_class', 999, 2 ); add_action('woocommerce_post_class', function ($classes) { if (! is_product()) { return $classes; } global $blocksy_is_quick_view; if (! $blocksy_is_quick_view) { $classes[] = 'ct-default-gallery'; } return $classes; }); add_filter('woocommerce_output_related_products_args', function ($args) { $columns = intval(get_theme_mod( 'woo_product_related_cards_columns', [ 'desktop' => 4, 'tablet' => 3, 'mobile' => 1 ] )['desktop']); $args['columns'] = $columns; $args['posts_per_page'] = $columns * intval(get_theme_mod( 'woo_product_related_cards_rows', 1 )); return $args; }, 10); add_filter('woocommerce_upsell_display_args', function ($args) { $columns = intval(get_theme_mod( 'woo_product_related_cards_columns', [ 'desktop' => 4, 'tablet' => 3, 'mobile' => 1 ] )['desktop']); $args['columns'] = $columns; $args['posts_per_page'] = $columns * intval(get_theme_mod( 'woo_product_related_cards_rows', 1 )); return $args; }, 10); add_filter('woocommerce_upsells_columns', function ($columns) { return intval(get_theme_mod( 'woo_product_related_cards_columns', [ 'desktop' => 4, 'tablet' => 3, 'mobile' => 1 ] )['desktop']); });