如何修改WooCommerce购物车,结帐页面(主题部分)

时间:2014-10-09 22:07:47

标签: php wordpress woocommerce

我一直在研究和调整我的自定义Wordpress主题并覆盖WooCommerce模板,现在安装了WooCommerce以纠正WooCommerce页面上出现的一系列小格式问题。我现在购物车和结账,他们使用cart.php(以及任何结帐php),但也使用主要的Wordpress主题page.php。我已经能够在其他地方使用is_woocommerce()但不在此处,因为我已经了解到WooCommerce文档说不能在结帐和购物车上使用。

  

is_woocommerce() - 如果在使用WooCommerce模板的页面上,则返回true(购物车和结帐是带有短代码的标准页面,因此不包括在内)。   http://docs.woothemes.com/document/conditional-tags/

那我怎么能改变这些页面的外观呢?我有一个"查看所有帖子"还有一个日期/时间在顶部,以及page.php的类别侧边栏,我不想在结账和购物车上出现明显的原因,因为它们根本没有意义。我有什么选择?

我可以使用除page.php以外的其他模板吗?

这是一个选择吗?这是不好的做法......它是否会在这个循环的每个页面上造成更多负载?我把它放在哪里? http://saiyedfaishal.wordpress.com/2014/01/06/check-if-it-is-woocommerce-page/

最好的方法是什么?谢谢你的帮助! 这个问题与 - How to modify woocommerce_before_cart action

有些相关

6 个答案:

答案 0 :(得分:35)

完全覆盖cart.php的另一种方法是复制:

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

然后在yourtheme / woocommerce / cart / cart.php做任何你需要的事情

答案 1 :(得分:18)

您可以使用功能:wc_get_page_id( 'cart' )来获取页面的ID。此功能将页面设置用作“购物车”页面,而不是slug。这意味着当您在设置页面上为“购物车”设置不同的网址时,它也会继续有效。这适用于所有类型的Woocommerce专页,如“结账”,“商店”等。

示例:

if (wc_get_page_id( 'cart' ) == get_the_ID()) {
  // Do something.
}

答案 2 :(得分:8)

您可以使用is_cart()条件标记:

if (! is_cart() ) {
  // Do something.
}

答案 3 :(得分:3)

WooCommerce有许多选项可用于修改购物车和结帐页面。以下是我建议的三个:

使用WooCommerce Conditional Tags

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

答案 4 :(得分:2)

我发现这可以作为包含WooCommerce购物车和结帐屏幕的page.php条件。

!is_page(array('cart', 'checkout'))

答案 5 :(得分:1)

我使用page-checkout.php模板更改购物车页面的标题。我在/ wp-content / themes / childtheme / woocommerce /中将其重命名为page-cart.php。这使您可以更好地控制包装html,页眉和页脚。