File manager - Edit - /home/palg2351/public_html/wp-content/themes/blocksy/inc/components/woocommerce/single/single-modifications.php
Back
<?php function blocksy_woocommerce_has_flexy_view() { global $blocksy_is_quick_view; if ($blocksy_is_quick_view) { return true; } if (is_customize_preview() && wp_doing_ajax()) { return true; } $is_variations_action = (isset($_REQUEST['action']) && $_REQUEST['action'] === 'woocommerce_load_variations' ); if (isset($_REQUEST['wc-ajax']) && $_REQUEST['wc-ajax'] === 'get_variation') { $is_variations_action = true; } if ( ( blocksy_manager()->screen->is_product() || wp_doing_ajax() ) && ! blocksy_manager()->screen->uses_woo_default_template() && ! is_customize_preview() && ! $is_variations_action ) { return false; } return !apply_filters('blocksy:woocommerce:product-view:use-default', false); } add_action('init', function() { blocksy_manager()->woocommerce->single->register_translations(); }); 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 ); } }); } add_filter('blocksy_woo_single_options_layers:defaults', function ($opt) { return array_merge($opt, [ [ 'id' => 'product_tabs', 'enabled' => true, ], ]); }); add_filter('blocksy_woo_single_right_options_layers:defaults', function ($opt) { return array_merge($opt, [ [ 'id' => 'product_tabs', 'enabled' => true, ], ]); }); add_filter('blocksy_woo_single_options_layers:extra', function ($opt) { return array_merge($opt, [ 'product_tabs' => [ 'label' => __('Product Tabs', 'blocksy'), 'condition' => [ 'all' => [ 'woo_tabs_type' => 'type-3|type-4', 'woo_accordion_in_summary' => 'summary', ] ], 'options' => [ 'spacing' => [ 'label' => __('Bottom Spacing', 'blocksy'), 'type' => 'ct-slider', 'min' => 0, 'max' => 100, 'value' => 10, 'responsive' => true, 'sync' => [ 'id' => 'woo_single_layout_skip', ], ], ], ] ]); }); add_action( 'blocksy:woocommerce:product:custom:layer', function ($layer, $classes = 'ct-product-tabs') { if ( $layer['id'] === 'product_tabs' && blocksy_get_theme_mod('woo_accordion_in_summary', 'default') === 'summary' ) { $tabs_type = blocksy_get_theme_mod('woo_tabs_type', 'type-1'); $res = $tabs_type; $result = ''; ob_start(); if ($tabs_type === 'type-3') { $result = blocksy_custom_accordion_tabs(); } if ($tabs_type === 'type-4') { $result = blocksy_custom_simple_tabs(); } $result = ob_get_clean(); $res .= ':' . blocksy_get_theme_mod('woo_tabs_alignment', 'center'); echo str_replace( 'wc-tabs-wrapper"', 'wc-tabs-wrapper" data-type="' . $res . '"', $result ); } } ); $action_to_hook = 'wp'; if (wp_doing_ajax()) { $action_to_hook = 'init'; } add_action($action_to_hook, function () { blocksy_manager()->woocommerce->single->receive_initial_woo_behavior([ // Validation by priority might be needed to ensure consistency. // This way we can also validate if other plugins interfered with the // action. 'product_add_to_cart' => has_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart' ) ]); // Remove default WooCommerce actions a little later, so we can check if // someone else has removed them before us. // This way, we will skip the layers that are disabled by the user or some // plugin. remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50); if (blocksy_get_theme_mod('woo_has_product_tabs', 'yes') === 'no') { add_filter('woocommerce_product_tabs', function ($tabs) { return []; }, 99); } else { $tabs_type = blocksy_get_theme_mod('woo_tabs_type', 'type-1'); if ( blocksy_get_theme_mod('woo_has_product_tabs_description', 'no') === 'no' && $tabs_type !== 'type-4' ) { add_filter( 'woocommerce_product_description_heading', '__return_null' ); add_filter( 'woocommerce_product_additional_information_heading', '__return_null' ); } } add_action( 'woocommerce_before_single_product', function() { blocksy_manager()->get_hooks()->redirect_callbacks([ 'token' => 'single_product_before_title', 'source' => ['woocommerce_single_product_summary'], 'destination' => 'blocksy:woocommerce:product-single:title:before', 'priority_min' => 2, 'priority_max' => 4 ]); blocksy_manager()->get_hooks()->redirect_callbacks([ 'token' => 'single_product_after_title', 'source' => ['woocommerce_single_product_summary'], 'destination' => 'blocksy:woocommerce:product-single:title:after', 'priority_min' => 5, 'priority_max' => 10 ]); blocksy_manager()->get_hooks()->redirect_callbacks([ 'token' => 'single_product_after_price', 'source' => ['woocommerce_single_product_summary'], 'destination' => 'blocksy:woocommerce:product-single:price:after', 'priority_min' => 11, 'priority_max' => 20 ]); blocksy_manager()->get_hooks()->redirect_callbacks([ 'token' => 'single_product_after_excerpt', 'source' => ['woocommerce_single_product_summary'], 'destination' => 'blocksy:woocommerce:product-single:excerpt:after', 'priority_min' => 20, 'priority_max' => 30 ]); blocksy_manager()->get_hooks()->redirect_callbacks([ 'token' => 'single_product_after_add_to_cart', 'source' => ['woocommerce_single_product_summary'], 'destination' => 'blocksy:woocommerce:product-single:add_to_cart:after', 'priority_min' => 30, 'priority_max' => 40 ]); blocksy_manager()->get_hooks()->redirect_callbacks([ 'token' => 'single_product_after_meta', 'source' => ['woocommerce_single_product_summary'], 'destination' => 'blocksy:woocommerce:product-single:meta:after', 'priority_min' => 40, 'priority_max' => 50 ]); blocksy_manager()->get_hooks()->redirect_callbacks([ 'token' => 'single_product_sharing', 'source' => ['woocommerce_share'], 'destination' => 'blocksy:woocommerce:product-single:layout:after' ]); } ); $product_view_type = blocksy_get_product_view_type(); if ( $product_view_type === 'default-gallery' || $product_view_type === 'stacked-gallery' ) { add_action( 'woocommerce_single_product_summary', function () { blocksy_manager()->woocommerce->single->render_layout( [ 'defaults' => blocksy_get_woo_single_layout_defaults() ] ); }, 1 ); } }, 9000000000); 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 () { global $blocksy_single_product_summary_buffering_started; $blocksy_single_product_summary_buffering_started = true; echo '<div class="product-entry-wrapper is-width-constrained">'; ob_start(); }, 1 ); add_action('woocommerce_single_product_summary', function () { global $blocksy_single_product_summary_buffering_started; if (! $blocksy_single_product_summary_buffering_started) { return; } $product_view_type = blocksy_get_product_view_type(); $content = ob_get_clean(); $prefix = blocksy_manager()->screen->get_prefix(); $deep_link_args = [ 'prefix' => $prefix, 'suffix' => 'woo_product_elements', 'shortcut' => 'border' ]; $content = str_replace( 'class="summary', blocksy_generic_get_deep_link($deep_link_args) . ' class="summary', $content ); if ( $product_view_type !== 'top-gallery' && $product_view_type !== 'columns-top-gallery' ) { $content = str_replace( 'entry-summary', 'entry-summary entry-summary-items', $content ); } echo $content; }, 0); add_action( 'woocommerce_after_single_product_summary', function () { echo '</div>'; }, 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_before_single_product', function() { blocksy_manager()->get_hooks()->redirect_callbacks([ 'token' => 'single_product_after_ralated', 'source' => ['woocommerce_after_single_product'], 'destination' => 'blocksy:woocommerce:product-single:related:after', ]); } ); add_action( 'woocommerce_after_main_content', function() { blocksy_woo_single_product_after_main_content(); do_action('blocksy:woocommerce:product-single:related:after'); }, 5 ); if (! function_exists('blocksy_woo_single_product_after_main_content')) { function blocksy_woo_single_product_after_main_content() { if ( ! blocksy_manager()->screen->is_product() || blocksy_get_theme_mod('woo_has_related_upsells', 'yes') !== 'yes' ) { return; } if ( blocksy_some_device( blocksy_get_theme_mod( 'upsell_products_visibility', [ 'desktop' => true, 'tablet' => false, 'mobile' => false, ] ) ) || is_customize_preview() ) { woocommerce_upsell_display(); } if ( blocksy_some_device(blocksy_get_theme_mod( 'related_products_visibility', [ 'desktop' => true, 'tablet' => false, 'mobile' => false, ] )) || is_customize_preview() ) { woocommerce_output_related_products(); } } } add_filter('woocommerce_output_related_products_args', function ($args) { $columns = intval( blocksy_expand_responsive_value( blocksy_get_theme_mod( 'woo_product_related_cards_columns', [ 'desktop' => 4, 'tablet' => 3, 'mobile' => 1 ] ) )['desktop'] ); $args['columns'] = $columns; $args['posts_per_page'] = $columns * intval(blocksy_get_theme_mod( 'woo_product_related_cards_rows', 1 )); return $args; }, 10); add_filter('woocommerce_upsell_display_args', function ($args) { $columns = intval( blocksy_expand_responsive_value( blocksy_get_theme_mod( 'woo_product_related_cards_columns', [ 'desktop' => 4, 'tablet' => 3, 'mobile' => 1 ] ) )['desktop'] ); $args['columns'] = $columns; $args['posts_per_page'] = $columns * intval(blocksy_get_theme_mod( 'woo_product_related_cards_rows', 1 )); return $args; }, 10); add_filter('woocommerce_upsells_columns', function ($columns) { return intval( blocksy_expand_responsive_value( blocksy_get_theme_mod( 'woo_product_related_cards_columns', [ 'desktop' => 4, 'tablet' => 3, 'mobile' => 1 ] ) )['desktop'] ); }); add_filter('comment_class', function ($classes, $class, $comment_id, $comment) { if (! blocksy_manager()->screen->is_product()) { return $classes; } $has_avatar = get_option('show_avatars', 1); if ($has_avatar) { $classes[] = 'ct-has-avatar'; } return $classes; }, 10, 4);
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.18 |
proxy
|
phpinfo
|
Settings