首页 文章

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

提问于
浏览
19

我一直在研究和调整我的自定义Wordpress主题并覆盖WooCommerce模板,现在安装了WooCommerce来纠正WooCommerce页面上发生的一系列小格式问题 . 我现在是购物车和结账,是的他们使用 cart.php (以及任何checkout php),但也使用主要的Wordpress主题 page.php . 我已经能够在其他地方使用 is_woocommerce() 而不是在这里,因为我在结帐和购物车上使用了've learned the WooCommerce docs say that can' .

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 回答

  • 1

    我发现这在 page.php 中是有条件的,包括WooCommerce购物车和结帐屏幕 .

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

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

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

    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 / / page- .php

    page-{slug}.php 是将通过WP仪表板手动分配的第二个模板 .

    这比我的其他解决方案更安全,因为如果您删除WooCommerce,但忘记删除此文件,内部代码(可能依赖于WooCommerce函数)赢得't break, because it' s从未调用过(除非因为您有一个带有slug {slug} 的页面) .

    例如:

    • wp-content/themes/{current-theme}/page-cart.php

    • wp-content/themes/{current-theme}/page-checkout.php

  • 30

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

  • 2

    您可以使用函数:wc_get_page_id( 'cart' )来获取页面的ID . 此功能将页面设置用作'cart'页面,而不是slug . 这意味着当您在设置页面上为'cart'设置不同的URL时,它也将继续有效 . 这适用于所有类型的Woocommerce特殊页面,如'checkout','shop'等 .

    例:

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

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

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

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

相关问题