web-dev-qa-db-ja.com

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/

これについて最善の方法は何ですか?助けてくれてありがとう!この質問は多少関連しています- woocommerce_before_cartアクションの変更方法

23
mikato

次の関数を使用できます: wc_get_page_id( 'cart') ページのIDを取得します。この関数は、ページ設定をスラッグではなく「カート」ページとして使用します。つまり、設定ページで「カート」の別のURLを設定した場合にも機能し続けます。これは、「チェックアウト」、「ショップ」など、あらゆる種類のWoocommerce特別ページで機能します。

例:

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

Cart.phpを完全にオーバーライドする別の方法は、コピーすることです。

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

その後、yourtheme/woocommerce/cart/cart.phpで必要なことをすべて行います

38
ken

is_cart() 条件タグを使用できます。

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

WooCommerceには、カートとチェックアウトページを変更するための多くのオプションがあります。ここに私がお勧めする3つがあります:

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は使用される2番目のテンプレートで、WPダッシュボードから手動で割り当てられたテンプレートの後に来ます。

WooCommerceを削除するが、このファイルを削除するのを忘れた場合、内部のコード(WooCommerce関数に依存する可能性がある)は呼び出されないため(ページがある場合を除き)壊れないため、これは他のソリューションよりも安全ですナメクジ{slug})。

例えば:

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

これは、WooCommerceカートとチェックアウト画面を含むpage.php内の条件として機能することがわかりました。

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

Page-checkout.phpテンプレートを使用して、カートページのヘッダーを変更しました。/wp-content/themes/childtheme/woocommerce /でpage-cart.phpに名前を変更しました。これにより、ラッピングhtml、ヘッダー、およびフッターをより詳細に制御できます。

1
fryvisuals