Поддержка Проблемы и решения Переход в товар по клинку картинке

  • Подскажите как сделать переход в товар по клику на картинку на витринах…

    Наверно тут надо что-то править?

    <?php
    /**
     * WooCommerce Compatibility File
     *
     * @link https://woocommerce.com/
     *
     * @package Shop_Elite
     */
    
    /**
     * WooCommerce setup function.
     *
     * @link https://docs.woocommerce.com/document/third-party-custom-theme-compatibility/
     * @link https://github.com/woocommerce/woocommerce/wiki/Enabling-product-gallery-features-(zoom,-swipe,-lightbox)-in-3.0.0
     *
     * @return void
     */
    function shop_elite_woocommerce_setup()
    {
        add_theme_support('woocommerce');
        add_theme_support('wc-product-gallery-zoom');
        add_theme_support('wc-product-gallery-lightbox');
        add_theme_support('wc-product-gallery-slider');
    }
    
    add_action('after_setup_theme', 'shop_elite_woocommerce_setup');
    
    if (!function_exists('shop_elite_remove_wc_breadcrumbs')) {
        /**
         * Removes Default WooCommerce breadcrumb.
         *
         * @return  void
         */
        function shop_elite_remove_wc_breadcrumbs()
        {
            remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);
        }
    }
    add_action('init', 'shop_elite_remove_wc_breadcrumbs');
    
    /**
     * WooCommerce specific scripts & stylesheets.
     *
     * @return void
     */
    function shop_elite_woocommerce_scripts()
    {
        wp_enqueue_style('shop-elite-woocommerce-style', get_template_directory_uri() . '/woocommerce.css');
    
        $font_path = WC()->plugin_url() . '/assets/fonts/';
        $inline_font = '@font-face {
    			font-family: "star";
    			src: url("' . $font_path . 'star.eot");
    			src: url("' . $font_path . 'star.eot?#iefix") format("embedded-opentype"),
    				url("' . $font_path . 'star.woff") format("woff"),
    				url("' . $font_path . 'star.ttf") format("truetype"),
    				url("' . $font_path . 'star.svg#star") format("svg");
    			font-weight: normal;
    			font-style: normal;
    		}';
    
        wp_add_inline_style('shop-elite-woocommerce-style', $inline_font);
    }
    
    add_action('wp_enqueue_scripts', 'shop_elite_woocommerce_scripts');
    
    /**
     * Add 'woocommerce-active' class to the body tag.
     *
     * @param  array $classes CSS classes applied to the body tag.
     * @return array $classes modified to include 'woocommerce-active' class.
     */
    function shop_elite_woocommerce_active_body_class($classes)
    {
        $classes[] = 'woocommerce-active';
    
        return $classes;
    }
    
    add_filter('body_class', 'shop_elite_woocommerce_active_body_class');
    
    /*Products Per Page*/
    if (!function_exists('shop_elite_woocommerce_products_per_page')) :
        /**
         * Products per page.
         *
         * @return integer number of products.
         */
        function shop_elite_woocommerce_products_per_page()
        {
            $products_per_page = shop_elite_get_option('shop_products_per_page', true);
            return absint($products_per_page);
        }
    endif;
    add_filter('loop_shop_per_page', 'shop_elite_woocommerce_products_per_page');
    
    /*Product gallery thumbnail columns.*/
    if (!function_exists('shop_elite_woocommerce_thumbnail_columns')) :
        /**
         * Product gallery thumbnail columns.
         *
         * @return integer number of columns.
         */
        function shop_elite_woocommerce_thumbnail_columns($product_thumbnails_per_row)
        {
            $product_thumbnails_per_row = shop_elite_get_option('product_thumbnails_per_row', true);
            return absint($product_thumbnails_per_row);
        }
    endif;
    add_filter('woocommerce_product_thumbnails_columns', 'shop_elite_woocommerce_thumbnail_columns');
    
    /*Products per row*/
    if (!function_exists('shop_elite_woocommerce_loop_columns')) :
        /**
         * Default loop columns on product archives.
         *
         * @return integer products per row.
         */
        function shop_elite_woocommerce_loop_columns()
        {
            $products_per_row = shop_elite_get_option('shop_products_per_row', true);
            if ($products_per_row < 1 || $products_per_row > 6) {
                return 4;
            } else {
                return absint($products_per_row);
            }
        }
    endif;
    add_filter('loop_shop_columns', 'shop_elite_woocommerce_loop_columns');
    
    /*Show related products*/
    $show_related_products = shop_elite_get_option('show_related_products', true);
    if (!$show_related_products) {
        remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
    }
    /**/
    
    /*Related Products Args.*/
    if (!function_exists('shop_elite_woocommerce_related_products_args')) :
        /**
         * Related Products Args.
         *
         * @param array $args related products args.
         * @return array $args related products args.
         */
        function shop_elite_woocommerce_related_products_args($args)
        {
            $no_of_related_products = absint(shop_elite_get_option('no_of_related_products', true));
            $related_products_per_row = absint(shop_elite_get_option('related_products_per_row', true));
            $defaults = array(
                'posts_per_page' => $no_of_related_products,
                'columns' => $related_products_per_row,
            );
    
            $args = wp_parse_args($defaults, $args);
    
            return $args;
        }
    endif;
    add_filter('woocommerce_output_related_products_args', 'shop_elite_woocommerce_related_products_args');
    /**/
    
    if (!function_exists('shop_elite_woocommerce_product_columns_wrapper')) {
        /**
         * Product columns wrapper.
         *
         * @return  void
         */
        function shop_elite_woocommerce_product_columns_wrapper()
        {
            $columns = shop_elite_woocommerce_loop_columns();
            echo '<div class="columns-' . absint($columns) . '">';
        }
    }
    add_action('woocommerce_before_shop_loop', 'shop_elite_woocommerce_product_columns_wrapper', 40);
    
    if (!function_exists('shop_elite_woocommerce_product_columns_wrapper_close')) {
        /**
         * Product columns wrapper close.
         *
         * @return  void
         */
        function shop_elite_woocommerce_product_columns_wrapper_close()
        {
            echo '</div>';
        }
    }
    add_action('woocommerce_after_shop_loop', 'shop_elite_woocommerce_product_columns_wrapper_close', 40);
    
    /**
     * Remove default WooCommerce wrapper.
     */
    remove_action('woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
    remove_action('woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);
    
    if (!function_exists('shop_elite_woocommerce_wrapper_before')) {
        /**
         * Before Content.
         *
         * Wraps all WooCommerce content in wrappers which match the theme markup.
         *
         * @return void
         */
        function shop_elite_woocommerce_wrapper_before()
        {
            ?>
            <div id="primary" class="content-area">
            <main id="main" class="site-main" role="main">
            <?php
        }
    }
    add_action('woocommerce_before_main_content', 'shop_elite_woocommerce_wrapper_before');
    
    if (!function_exists('shop_elite_woocommerce_wrapper_after')) {
        /**
         * After Content.
         *
         * Closes the wrapping divs.
         *
         * @return void
         */
        function shop_elite_woocommerce_wrapper_after()
        {
            ?>
            </main><!-- #main -->
            </div><!-- #primary -->
            <?php
        }
    }
    add_action('woocommerce_after_main_content', 'shop_elite_woocommerce_wrapper_after');
    
    if (!function_exists('shop_elite_woocommerce_cart_link_fragment')) {
        /**
         * Cart Fragments.
         *
         * Ensure cart contents update when products are added to the cart via AJAX.
         *
         * @param array $fragments Fragments to refresh via AJAX.
         * @return array Fragments to refresh via AJAX.
         */
        function shop_elite_woocommerce_cart_link_fragment($fragments)
        {
            ob_start();
            shop_elite_woocommerce_cart_link();
            $fragments['a.saga-mincart-trigger'] = ob_get_clean();
    
            return $fragments;
        }
    }
    add_filter('woocommerce_add_to_cart_fragments', 'shop_elite_woocommerce_cart_link_fragment');
    
    if (!function_exists('shop_elite_woocommerce_cart_link')) {
        /**
         * Cart Link.
         *
         * Displayed a link to the cart including the number of items present and the cart total.
         *
         * @return void
         */
        function shop_elite_woocommerce_cart_link()
        {
            ?>
            <a class="saga-mincart-trigger" href="javascript:void(0)">
                <?php
                $cart_icon = shop_elite_get_option('mini_cart_icon', true);
                if ($cart_icon) {
                    echo '<i class="' . esc_attr($cart_icon) . '"></i>';
                }
                ?>
                <span class="saga-woo-counter"><?php echo wp_kses_data(WC()->cart->get_cart_contents_count()); ?></span>
            </a>
            <?php
        }
    }
    
    if (!function_exists('shop_elite_woocommerce_header_cart')) {
        /**
         * Display Header Cart.
         *
         * @return void
         */
        function shop_elite_woocommerce_header_cart()
        {
            if (is_cart()) {
                $class = 'current-menu-item';
            } else {
                $class = '';
            }
            ?>
            <div class="saga-minicart saga-woo-nav">
                <div class="saga-wooicon <?php echo esc_attr($class); ?>">
                    <?php shop_elite_woocommerce_cart_link(); ?>
                </div>
                <div class="saga-mincart-items">
                    <?php
                    $instance = array(
                        'title' => '',
                    );
                    the_widget('WC_Widget_Cart', $instance);
                    ?>
                </div>
            </div>
            <?php
        }
    }
    
    /*Change product gallery thumbnail image size*/
    add_filter( 'woocommerce_gallery_thumbnail_size', function( $size ) {
        return 'woocommerce_thumbnail';
    } );
    
    /*============= For product Listing pages ==================== */
    
    /*Open wrapper for image section*/
    if (!function_exists('shop_elite_product_img_section_wrap_start')):
        function shop_elite_product_img_section_wrap_start()
        {
            echo '<div class="saga-product-wrapper">';
        }
    endif;
    add_action('woocommerce_before_shop_loop_item', 'shop_elite_product_img_section_wrap_start', 8);
    
    /*Open wrapper for image info*/
    if (!function_exists('shop_elite_product_img_info_wrap_start')):
        function shop_elite_product_img_info_wrap_start(){
            echo '<div class="saga-product-image">';
        }
    endif;
    add_action('woocommerce_before_shop_loop_item', 'shop_elite_product_img_info_wrap_start', 9);
    
    /* Remove anchor tag for the image*/
    remove_action('woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10);
    
    /*Open wrapper for image info*/
    if (!function_exists('shop_elite_product_img_info_wrap_end')):
        function shop_elite_product_img_info_wrap_end(){
            echo '</div>';
        }
    endif;
    add_action('woocommerce_before_shop_loop_item_title', 'shop_elite_product_img_info_wrap_end', 11);
    
    /*Open wrapper for the product buttons*/
    if (!function_exists('shop_elite_product_btn_wrap_start')):
        function shop_elite_product_btn_wrap_start(){
            echo '<div class="saga-product-buttons">';
        }
    endif;
    add_action('woocommerce_before_shop_loop_item_title', 'shop_elite_product_btn_wrap_start', 12);
    /**/
    
    /*Add wrapper for add to cart btn*/
    if (!function_exists('shop_elite_product_cart_wrap_start')):
        function shop_elite_product_cart_wrap_start(){
            echo '<div class="cart-btn">';
        }
    endif;
    add_action('woocommerce_before_shop_loop_item_title', 'shop_elite_product_cart_wrap_start', 13);
    
    /*Move add to cart button position to below the image*/
    remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);
    add_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_add_to_cart', 14);
    /**/
    
    /*Close wrapper for add to cart btn*/
    if (!function_exists('shop_elite_product_cart_wrap_end')):
        function shop_elite_product_cart_wrap_end(){
            echo '</div>';
        }
    endif;
    add_action('woocommerce_before_shop_loop_item_title', 'shop_elite_product_cart_wrap_end', 15);
    
    /*Yith wihslit btn is bind on priority 16*/
    
    /*Close wrapper for the product buttons*/
    if (!function_exists('shop_elite_product_btn_wrap_end')):
        function shop_elite_product_btn_wrap_end(){
            echo '</div>';
        }
    endif;
    add_action('woocommerce_before_shop_loop_item_title', 'shop_elite_product_btn_wrap_end', 17);
    /**/
    
    /*Close wrapper for the image section*/
    if (!function_exists('shop_elite_product_img_section_wrap_end')):
        function shop_elite_product_img_section_wrap_end(){
            echo '</div>';
        }
    endif;
    add_action('woocommerce_before_shop_loop_item_title', 'shop_elite_product_img_section_wrap_end', 18);
    /**/
    
    /*Open wrapper for the remaining info of the product*/
    if (!function_exists('shop_elite_product_info_wrap_start')):
        function shop_elite_product_info_wrap_start(){
            echo '<div class="saga-product-details">';
        }
    endif;
    add_action('woocommerce_shop_loop_item_title', 'shop_elite_product_info_wrap_start', 8);
    
    /*Open anchor tag for the remaining info of the product*/
    add_action('woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_link_open', 9);
    
    /*Close wrapper for the remaining info of the product*/
    if (!function_exists('shop_elite_product_info_wrap_end')):
        function shop_elite_product_info_wrap_end(){
            echo '</div>';
        }
    endif;
    add_action('woocommerce_after_shop_loop_item', 'shop_elite_product_info_wrap_end', 20);
    
    /*Change add to cart button for archive products*/
    if (!function_exists('shop_elite_change_loop_add_to_cart')){
        function shop_elite_change_loop_add_to_cart( $html, $product, $args ){
    
            /*Return html as it is if we're in wishlist page*/
            if (shop_elite_is_wishlist_active()){
                $wishlist_page_id = yith_wcwl_object_id( get_option( 'yith_wcwl_wishlist_page_id' ) );
                $current_page_id = get_queried_object_id();
                if($wishlist_page_id){
                    if($current_page_id == $wishlist_page_id){
                        return $html;
                    }
                }
            }
            /**/
    
            /*Add Cart Icon*/
            $add_to_cart_icon = shop_elite_get_option('loop_cart_icon', true);
            if( $add_to_cart_icon ){
                $add_to_cart = '<i class="' . esc_attr($add_to_cart_icon). ' add-icon saga-alt-icon"></i>';
            }else{
                $add_to_cart = '<i class="ion-ios-cart-outline add-icon saga-alt-icon"></i>';
            }
            /**/
    
            /*Added to Cart Icon*/
            $added_to_cart_icon = shop_elite_get_option('loop_added_to_cart_icon', true);
            if( $added_to_cart_icon ){
                $added_to_cart = '<i class="' . esc_attr($added_to_cart_icon). ' saga-alt-icon added-icon hidden"></i>';
            }else{
                $added_to_cart = '<i class="ion-ios-cart saga-alt-icon added-icon hidden"></i>';
            }
            /**/
    
            $html = sprintf( '<a href="%s" data-quantity="%s" class="%s" %s>%s</a>',
                esc_url( $product->add_to_cart_url() ),
                esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),
                esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),
                isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
                $add_to_cart.$added_to_cart
            );
    
            /*Add Tooltip*/
            $tooltip_start = '<div data-toggle="tooltip" data-placement="top" title="'.$product->add_to_cart_text().'">';
            $tooltip_end = '</div>';
            return $tooltip_start.$html.$tooltip_end;
        }
    }
    add_filter('woocommerce_loop_add_to_cart_link', 'shop_elite_change_loop_add_to_cart', 10, 3 );
    
    /*Add product added to cart message to fragment data*/
    if (!function_exists('shop_elite_add_to_cart_fragments')){
        function shop_elite_add_to_cart_fragments($data) {
            $product = isset( $_REQUEST['product_id'] ) ? wc_get_product( $_REQUEST['product_id'] ) : false;
            $product_image = $product_title = '' ;
    
            if( $product ){
                $product_image = $product->get_image();
                $product_title = sprintf(__('%s has been added to your cart.', 'shop-elite'), '<strong>'.$product->get_title().'</strong>');
            }else{
                $product_title =  __( 'Product Added to cart', 'shop-elite' );
            }
    
            ob_start();
            ?>
            <div class="saga-notification-header">
                <h3><?php _e('Cart Items', 'shop-elite')?></h3>
            </div>
            <div class="saga-notification">
                <div class="saga-notification-image">
                    <?php echo $product_image;?>
                </div>
                <div class="saga-notification-title">
                    <?php echo $product_title;?>
                </div>
            </div>
            <div class="saga-notification-button">
                <a href="<?php echo esc_url( get_permalink( wc_get_page_id( 'cart' )) );?>">
                    <?php _e('View Cart', 'shop-elite');?>
                </a>
            </div>
    
            <?php
            $data['shop_elite_added_to_cart_msg'] = ob_get_clean();
    
            return $data;
        }
    }
    add_filter( 'woocommerce_add_to_cart_fragments', 'shop_elite_add_to_cart_fragments' );
    /* ============================================= */
    

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 1 ответа (всего 1)
  • Прости, не сдержался… У тебя адски большие размеры фото. У меня отличный интернет и грузило сайт секунд 10. По твоей проблеме — у меня все с коробки работало, может я что-то упустил, но у меня норм.

Просмотр 1 ответа (всего 1)
  • Тема «Переход в товар по клинку картинке» закрыта для новых ответов.