Как настроить расположение кнопки «добавить в корзину» WooCommerce на странице товара

18 сент. 2013 г., 22:50:19
Просмотры: 53.9K
Голосов: 2

Какой файл (или файлы, если их несколько) мне нужно отредактировать, чтобы изменить компоновку страницы товара?

Я хочу внести некоторые базовые изменения в макет стандартной страницы товара Woocommerce. В частности, я хочу разместить блок заказа сразу под ценой и сместить описание вниз. Другими словами, поменять местами краткое описание с блоком заказа (атрибуты, добавить в корзину, артикул и т.д.). Вот скриншот того, что я хочу сделать: http://d.pr/i/YGAY

3
Комментарии

Посмотрите мой ответ здесь: http://wordpress.stackexchange.com/a/113189/22534. Кстати, это много вопросов, концепция данного сайта заключается в задавании вопросов, касающихся одной решаемой проблемы.

Nicolai Grossherr Nicolai Grossherr
18 сент. 2013 г. 22:53:03

Спасибо @ialocin. Я уже видел эти "структурные" страницы и потратил немало времени, экспериментируя с различными файлами, но безрезультатно. Извините, если вы неправильно истолковали мой вопрос, но он был задуман как единичный (и конкретный):

Какой файл (или файлы, если их несколько) мне нужно редактировать, чтобы изменить расположение элементов на странице товара, как показано на моем скриншоте?

Я просто хочу переместить кнопку "Купить сейчас" и селектор атрибутов выше, над описанием товара.

Еще раз спасибо.

Blake Miller Blake Miller
21 сент. 2013 г. 17:04:49

Без проблем, я просто пытаюсь помочь. Видите, то что вы написали в комментарии - это проблема, с которой я - или кто-то другой - может работать. Я опубликую ответ для вас, как решить эту задачу. Не могли бы вы переформулировать свой вопрос, чтобы отразить это? Спасибо!

Nicolai Grossherr Nicolai Grossherr
21 сент. 2013 г. 17:44:24
Все ответы на вопрос 1
4

Вы можете сделать всё, что захотите, используя хук woocommerce_single_product_summary. Данное действие выполняется внутри файла content-single-product.php следующим образом:

    <?php
        /**
         * Хук woocommerce_single_product_summary
         *
         * @hooked woocommerce_template_single_title - 5 (заголовок товара)
         * @hooked woocommerce_template_single_price - 10 (цена товара)
         * @hooked woocommerce_template_single_excerpt - 20 (краткое описание)
         * @hooked woocommerce_template_single_add_to_cart - 30 (кнопка "Добавить в корзину")
         * @hooked woocommerce_template_single_meta - 40 (мета-данные товара)
         * @hooked woocommerce_template_single_sharing - 50 (кнопки поделиться)
         */
        do_action( 'woocommerce_single_product_summary' );
    ?>

Выше приведена документация о подключенных частях, где числа обозначают приоритет и/или порядок выполнения.

Вы можете изменить приоритет/порядок, удалив и заново добавив нужные части в желаемой позиции — вот так:

    /** Изменение позиции кнопки "Добавить в корзину" на странице товара в WooCommerce **/
    remove_action( 'woocommerce_single_product_summary', 
               'woocommerce_template_single_add_to_cart', 30 );
    add_action( 'woocommerce_single_product_summary', 
            'woocommerce_template_single_add_to_cart', 9 );

Поместите этот код в ваш файл functions.php, чтобы изменения вступили в силу. Теперь кнопка "Добавить в корзину" будет отображаться после заголовка, но до цены. Если вы хотите, чтобы она показывалась после цены — просто измените число в строке add_action() на значение между 11 и 19. Думаю, вы уже поняли принцип.

21 сент. 2013 г. 18:03:36
Комментарии

Прошло некоторое время, но я благодарю вас за вашу помощь. Это сработало! Как только я разобрался с методом, я внес еще несколько правок. Я также изменил свой первоначальный вопрос, чтобы он лучше соответствовал моей проблеме. Еще раз спасибо @ialocin

Blake Miller Blake Miller
5 окт. 2013 г. 15:02:45

@BlakeMiller Всегда пожалуйста, рад что вы разобрались и теперь можете использовать это дальше! Если это правильный ответ, отметьте его галочкой, чтобы все, кто придет к вопросу позже, знали что он верный.

Nicolai Grossherr Nicolai Grossherr
5 окт. 2013 г. 15:17:54

Как я могу разместить это над кнопкой "Добавить в корзину", но ниже вариаций?

MF1 MF1
20 янв. 2017 г. 21:30:26

@MF1 Я не уверен, тебе нужно проверить это самостоятельно. Удачи!

Nicolai Grossherr Nicolai Grossherr
23 янв. 2017 г. 15:08:26