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

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

[woocommerce_cart] 

шорткод на страницу оформления заказа, выше

[woocommerce_checkout]

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

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

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

есть ли шорткод, чтобы показать сами элементы корзины?

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

3 ответов


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

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

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

/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

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

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


вы также можете использовать крюк для этого

// 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' );
}

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


более простой способ сделать это, добавив следующий код в код функции.в 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');