WooCommerce在结帐页面上显示购物车项目

时间:2013-11-27 17:39:01

标签: php wordpress woocommerce shortcode

我正在这个网站上工作,我被要求在结帐页面添加购物车项目列表。我决定添加

[woocommerce_cart] 

上方的结帐页面进行短代码
[woocommerce_checkout]

短代码,只需使用CSS隐藏“继续结账 - >”结帐页面上的购物车中的按钮。

然而,这引入了一个新问题。现在,在Checkout页面上选择送货时,它默认为在Cart页面上为购物车设置的任何送货...即使在结帐页面上选择了新送货。

显然,这不是将购物车输出添加到结帐页面的方式。

是否有一个短代码只是为了显示购物车项目?

我需要编辑哪些内容才能在结帐页面上显示购物车项目?

3 个答案:

答案 0 :(得分:16)

我将回答我自己的问题,因为我解决了一些额外的问题。希望它能在以后帮助别人。

我没有找到简短的代码,只需将购物车添加到结帐页面的顶部即可。我必须直接编辑模板文件。

所以,我复制了:

/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

我希望表单出现。

可能有更优雅的方式,但这解决了我的问题。

答案 1 :(得分:3)

您也可以使用钩子

// 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 模板,其中包含了jus the cart表格,并用 wc_get_template_part(' cart / cart')替换了代码' part');

答案 2 :(得分:0)

更简单的方法是将以下代码添加到子主题的 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');