WooCommerce Показывать товары в корзине на странице оформления заказа


Я работаю на этом веб-сайте, где меня попросили добавить список товаров из корзины на страницу оформления заказа. Я решил добавить

[woocommerce_cart] 

Короткий код на странице оформления заказа, над

[woocommerce_checkout]

Шорткод и просто используйте CSS, чтобы скрыть кнопку "Перейти к оформлению заказа ->" в корзине на странице оформления заказа.

Однако это привело к возникновению новой проблемы. Теперь, когда доставка выбрана на странице оформления заказа, по умолчанию используется любая доставка, установленная для корзины в корзине страница... даже если на странице оформления заказа выбрана новая доставка.

Очевидно, что это не был способ добавить вывод корзины на страницу оформления заказа.

Есть ли шорткод только для отображения самих товаров в корзине?

Что мне нужно изменить, чтобы показать товары в корзине на странице оформления заказа?

Author: Yazmin, 2013-11-27

3 answers

Я собираюсь ответить на свой собственный вопрос, так как я решил его с помощью некоторых дополнительных поисков. Надеюсь, это поможет кому-то еще позже в будущем.

Я не нашел шорткода, чтобы просто добавить корзину в верхнюю часть страницы оформления заказа. Мне пришлось редактировать файл шаблона напрямую.

Итак, я скопировал:

/wp-content/plugins/woocommerce/templates/checkout/form-checkout.php

Кому:

/wp-content/mytheme/woocommerce/checkout/form-checkout.php

Чтобы внести свои изменения в этот файл напрямую, чтобы я не потерял их при обновлении WooCommerce. Затем я скопировал код формы от:

/wp-content/plugins/woocommerce/templates/cart/cart.php

И вставил его в файл, который я скопировал в свой каталог тем:

/wp-content/mytheme/woocommerce/checkout/form-checkout.php

Где я хотел, чтобы появилась форма.

Могут быть и более элегантные способы, но это исправило мою проблему.

 15
Author: Yazmin, 2013-12-04 00:53:07

Для этого также можно использовать крючок

// put this in functions.php, it will produce code before the form
add_action('woocommerce_before_checkout_form','show_cart_summary',9);

// gets the cart template and outputs it before the form
function show_cart_summary( ) {
  wc_get_template_part( 'cart/cart' );
}

Я создал cart-part.php шаблон, который содержит таблицу корзины и заменил код на wc_get_template_part('корзина/корзина', 'часть' );

 3
Author: adam, 2015-12-07 12:26:09

Более простой способ сделать это - добавить следующий код в ваш functions.php файл в вашей дочерней теме.

Таким образом, вам не нужно будет добавлять какие-либо шаблоны или изменять какой-либо основной код woocommerce.

function remove_cart_collaterals() {
    if (is_checkout()) {
        remove_action('woocommerce_cart_collaterals', 'woocommerce_cross_sell_display');
        remove_action('woocommerce_cart_collaterals', 'woocommerce_cart_totals', 10);
    }
}
add_action('wp', 'remove_cart_collaterals');  
 0
Author: Clyde Thomas, 2016-10-17 18:44:30