web-dev-qa-db-ja.com

チェックアウトページのサイドバーにWoocommerceミニカートウィジェットを表示しますか?そして、どのようにウィジェットを上書きすることによってこの更新を安全にするには?

ここで質問する前に、私はすでにstackoverflowとwordpressフォーラムで質問をしましたが、まだ答えがないことを伝えたいです。それで、ついに私はここに来ました。

wopressコマースプラグイン を自分の wordpress 3.5.2。 にインストールしました。 woocommerceというフォルダを作成し、そのテンプレートフォルダ内のwoocommerceテンプレートファイル内のすべてのファイルを貼り付けました。しかし、私が全く動けなくなっていることがあります。 woocommerceチェックアウトページで、サイドバーにカートの合計を表示したいです。しかし、それは見えていません。他のページでそれはうまく働いています。それで、誰かがここで何が悪いのか親切に私に言うことができますか?任意の助けや提案は本当に感謝されます。ありがとう

更新

これは、チェックアウトページを除くすべてのページに表示できるサイドバーのwoocommerceカートウィジェットのスクリーンショットです。

enter image description here

編集する
その他、この変更を更新から安全にする方法

3
NewUser

カートウィジェットはcart and checkout pageに表示されないように設定されているため表示されません。 class-wc-widget-cart.phpを見て変更したい場合は、次の行があります。

if ( is_cart() || is_checkout() ) return;  

次のように変更してください。

if ( is_cart() ) return;  

チェックアウトページにウィジェットを表示します。

注:これは、plugins/woocommerce/classes/widgetsフォルダーで行われた場合、更新時に上書きされます。


編集:ウィジェットを上書きして変更を安全にする方法の追加情報
情報源: http://www.skyverge.com/blog/overriddin-woocommerce-widgets/ /(オプション5)

  1. class-wc-widget-cart.phpが重複しています。
  2. 複製をテーマ内のフォルダにコピーします。例えば、cust_woo_widgets
  3. ファイルに上記の変更を加えます。
  4. さらに、ウィジェットに次の変更を加えて複製します。

    class Custom_WooCommerce_Widget_Cart extends WooCommerce_Widget_Cart {
      function widget( $args, $instance ) {
    // copy the widget function from woocommerce/classes/widgets/class-wc-widget-cart.php
      }
    }
    
  5. 以下のコードをあなたのfunctions.phpに入れてください:

    add_action( 'widgets_init', 'override_woocommerce_widgets', 15 );
    function override_woocommerce_widgets() { 
      if ( class_exists( 'WooCommerce_Widget_Cart' ) ) {
        unregister_widget( 'WooCommerce_Widget_Cart' ); 
        include_once( 'cust_woo_widgets/widget-cart.php' );
        register_widget( 'Custom_WooCommerce_Widget_Cart' );
      } 
    }
    

注:詳細についてはソースを参照してください。未テスト。

6
Nicolai

次のコードをfunctions.phpに追加したところ、カートはすべてのページに表示されています。

add_filter( 'woocommerce_widget_cart_is_hidden', 'always_show_cart', 40, 0 );
function always_show_cart() {
    return false;
}
1
Theunis

あなたの変更が失われることになるアップデートの時にプラグインのコアファイルを変更することはお勧めできません。以下のコードを使用して、チェックアウトページのサイドバーにカートウィジェットを表示する

add_filter('woocommerce_widget_cart_is_hidden', 'show_cart_on_checkout');

    function show_cart_on_checkout()
    {
        return is_cart();
    }
0
Mubashir