Как изменить корзину WooCommerce, страницы оформления заказа (основная часть темы)


Я исследовал и доработал свою пользовательскую тему Wordpress и переопределил шаблоны WooCommerce с помощью теперь установленной WooCommerce, чтобы исправить кучу небольших проблем с форматированием, возникающих на страницах WooCommerce. Я дошел до корзины и оформления заказа, которые, да, они используют cart.php (и любой другой php для оформления заказа), но также используют основную тему Wordpress page.php. Я смог использовать is_woocommerce() в условных обозначениях в других местах, но не здесь, поскольку я узнал, что в документах WooCommerce говорится, что это невозможно использоваться при оформлении заказа и в корзине.

Is_woocommerce() - Возвращает значение true, если на странице используются шаблоны WooCommerce (корзина и оформление заказа являются стандартными страницами с короткими кодами и, следовательно, не включены). http://docs .woothemes.com/document/conditional-tags/

Итак, как я могу изменить внешний вид этих страниц? У меня есть "Просмотреть все сообщения" и дата/время вверху, а также боковая панель категорий page.php что я не хочу показываться по очевидным причинам на кассе и в корзине, так как они вообще не имеют смысла. Какие у меня есть варианты?

Могу ли я заставить его использовать другой шаблон, отличный от page.php ?

Возможен ли такой вариант? Это плохая практика?.. вызывает ли это большую нагрузку на каждую страницу с этим циклом? Куда мне его положить? http://saiyedfaishal.wordpress.com/2014/01/06/check-if-it-is-woocommerce-page/

Как лучше всего поступить с этим? Спасибо за любую помощь! Этот вопрос в некоторой степени связан с - Как изменить действие woocommerce_before_cart

Author: Community, 2014-10-10

6 answers

Вы можете использовать функцию: wc_get_page_id('корзина'), чтобы получить идентификатор страницы. Эта функция будет использовать настройку страницы в качестве страницы "корзина", а не слизняка. Это означает, что он будет продолжать работать и тогда, когда вы настроите другой URL-адрес для своей "корзины" на странице настроек. Это работает для всех видов специальных страниц Woocommerce, таких как "оформление заказа", "магазин" и т.д.

Пример:

if (wc_get_page_id( 'cart' ) == get_the_ID()) {
  // Do something.
}
 16
Author: Patrick van Efferen, 2014-11-09 15:17:08

Еще один способ полностью переопределить cart.php состоит в том, чтобы скопировать:

woocommerce/templates/cart/cart.php to   
yourtheme/woocommerce/cart/cart.php

Затем делайте все, что вам нужно в yourtheme/woocommerce/cart/cart.php

 30
Author: ken, 2015-04-06 10:29:13

Вы можете использовать условный тег is_cart():

if (! is_cart() ) {
  // Do something.
}
 8
Author: PimPiet, 2016-12-02 11:18:32

Я обнаружил, что это хорошо работает как условие в page.php, которое включает в себя корзину WooCommerce и экраны оформления заказа.

!is_page(array('cart', 'checkout'))
 2
Author: mikato, 2014-10-10 19:27:27

В WooCommerce есть ряд опций для изменения корзины и страниц оформления заказа. Вот три, которые я бы рекомендовал:

Используйте Условные теги WooCommerce

is_cart() и функции is_checkout() возвращают значение true на своей странице. Пример:

if ( is_cart() || is_checkout() ) {
    echo "This is the cart, or checkout page!";
}

Измените файл шаблона

Основной файл шаблона корзины находится по адресу wp-content/themes/{current-theme}/woocommerce/cart/cart.php

Основной файл шаблона оформления заказа находится по адресу wp-content/themes/{current-theme}/woocommerce/checkout/form-checkout.php

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

Использовать wp-content/themes/{current-theme}/page-{slug}.php

page-{slug}.php это второй шаблон, который будет использоваться, после того, как он будет назначен вручную через панель управления WP.

Это безопаснее, чем другие мои решения, потому что если вы удалите WooCommerce, но забудете удалить этот файл, код внутри (который может зависеть от функций WooCommerce) не сломается, потому что он никогда не вызывается (если только у вас нет страницы с slug {slug}).

Для пример:

  • wp-content/themes/{current-theme}/page-cart.php
  • wp-content/themes/{current-theme}/page-checkout.php
 2
Author: Elliot Schep, 2018-02-07 22:10:14

Я использовал page-checkout.php шаблон для изменения заголовка страницы "Моя корзина". Я переименовал его в page-cart.php в моем /wp-контенте/темах/дочерней теме/woocommerce/. Это дает вам больше контроля над html-кодом, верхним и нижним колонтитулами.

 1
Author: fryvisuals, 2017-04-17 17:36:52