2016-08-05 11 views
3

私が作業しているサイトでwoocommerceを使用しています。チェックアウトページの上部に現在の製品サムネイルを表示したいので、彼が買おうとしているものを見てみましょう。チェックアウト時に商品を受け取るWooCommerceのページ

しかし、私はそうする方法を見つけることができません。

もっとも近いのはWC::cart->get_cart()ですが、これはすべての製品の一覧を出力します。

どうすればこの問題を解決できますか?

ありがとうございました

+0

StackOverflowのへようこそ、あなたの質問についてのコンテキストを与えるために多くのコードを含めてください。 – FishStix

+0

ようこそStackoverflowへ、あなたは本当に何をしたいですか?チェックアウトページにはカート内の商品しかありません。 質問をクリアしてください –

+0

@LoicTheAztecあなたは、私は過去2日間少し忙しかったです。あなたのソリューションは機能し、私は答えを受け入れました。ありがとうございました – Avishay28

答えて

8

はい、カスタム関数の作成が可能です。

add_action('woocommerce_before_checkout_form', 'displays_cart_products_feature_image'); 
function displays_cart_products_feature_image() { 
    foreach (WC()->cart->get_cart() as $cart_item) { 
     $product = $cart_item['data']; 
     if(!empty($product)){ 
      // $image = wp_get_attachment_image_src(get_post_thumbnail_id($product->ID), 'single-post-thumbnail'); 
      echo $product->get_image(); 

      // to display only the first product image uncomment the line bellow 
      // break; 
     } 
    } 
} 

このコードスニペットは、あなたのアクティブな子テーマやテーマ

のfunction.phpファイルに行く:、ちょうどあなたのヘッダーのテーマの後にチェックアウトページの先頭にそれらの画像を表示するには、このコードを使用する

get_image()機能でいくつかのオプションを追加して、画像のプロパティを変更することができます。

このコードは、他のUSAGES


テストされ、完全に機能している - あなたはまた、それを使用することができます:

1)以下の他チェックアウト WooCommerce フックで(スニペットコードの最初の行をこれに置き換えます)

•前に顧客の詳細:

add_action('woocommerce_checkout_before_customer_details', 'displays_cart_products_feature_image'); 

顧客の詳細の後•:

add_action('woocommerce_checkout_after_customer_details', 'displays_cart_products_feature_image'); 

•順レビュー前:

add_action('woocommerce_checkout_before_order_review', 'displays_cart_products_feature_image'); 

2)直接あなたwoocommerce templates(このスニペットコードの内部機能し続ける。あなたのアクティブな子テーマやテーマのPHPファイル)<?php displays_cart_products_feature_image(); ?>

  • PHPコードの内部:HTMLコード内の

    • function displays_cart_products_feature_image() { 
          foreach (WC()->cart->get_cart() as $cart_item) { 
           $product = $cart_item['data']; 
           if(!empty($product)){ 
            // $image = wp_get_attachment_image_src(get_post_thumbnail_id($product->ID), 'single-post-thumbnail'); 
            echo $product->get_image(); 
      
            // to display only the first product image uncomment the line bellow 
            // break; 
           } 
          } 
      } 
      

      は次に、あなただけのtemplate file内でこれの1を貼り付けます: displays_cart_products_feature_image();

    参考文献:

  • +0

    最初の解決策は魅力のように働いています、ありがとうございます! – Avishay28

    +0

    '$ cart_item ['data']'はすでに 'WC_Product'オブジェクトを持っていますので、再度インスタンス化する必要はありません。 – rram

    +0

    @rramそうですね、ありがとう...コードを更新しました*(これは古い回答でした)* – LoicTheAztec

    関連する問題