2017-12-21 38 views
1

私はwoocommerceの 'woocommerce_cart_item_name'フィルタにフックして、名前の後にプロダクトIDを表示したいと考えています。私は、この今のところ...Woocommerceカートページのカートアイテム名の後にプロダクトIDを追加します

add_filter('woocommerce_cart_item_name', 'justatest'); 

function justatest($productname) { 
    echo $productname; 
    // ideally echo name and product id here instead 
} 

これは、その周りにリンクして名前を返しますが、私は項目名の後に、製品の実際のIDを追加したいと働いています。

Woocommerceカートページのカートアイテム名の後にプロダクトIDを追加するにはどうすればよいですか?

私は関数から私を引き抜くので、私は最初に戻ってくる必要はないだろう知っているが、私はこれをやってどうやって行くのだろうかと不思議だ。

答えて

0

あり、あなたのフック機能で一部欠落している引数は、あなたがプロダクトIDをこのように取得するためにいくつかの変更を加える必要がある必要があります。

add_filter('woocommerce_cart_item_name', 'just_a_test', 10, 3); 
function just_a_test($item_name, $cart_item, $cart_item_key) { 
    // Display name and product id here instead 
    echo '$item_name.' ('.$cart_item['product_id'].')'; 
} 

このコードは、あなたのアクティブな子テーマのfunction.phpファイルに行きます(またはテーマ)または任意のプラグインファイルに保存されます。

テスト済みで動作します。

+0

これはまさに私が探していたものでした。ありがとう! – brunam

0

は、woocommerceの以下のページテンプレート

オーバーライド、

woocommerce/cart/cart.php in your theme 

を、このいずれかを試してみてください、あなたはそれでテーブルHTML /コードを見つけるでしょう。

<td class="product-name" data-title="<?php esc_attr_e('Product', 'woocommerce'); ?>" 
<?php 
if (!$product_permalink) { 
    echo apply_filters('woocommerce_cart_item_name', $_product->get_name(). $product_id, $cart_item, $cart_item_key) . '&nbsp;'; 
} else { 
    echo apply_filters('woocommerce_cart_item_name', sprintf('<a href="%s">%s</a>', esc_url($product_permalink), $_product->get_name() . $product_id), $cart_item, $cart_item_key); 
} 

// Meta data 
echo WC()->cart->get_item_data($cart_item); 

// Backorder notification 
if ($_product->backorders_require_notification() && $_product->is_on_backorder($cart_item['quantity'])) { 
    echo '<p class="backorder_notification">' . esc_html__('Available on backorder', 'woocommerce') . '</p>'; 
} 
?> 
</td> 

<td class="product-name">...</td> 

cart.phpにこのパーツを追加、この意志はあなたを助け願っています。

+0

これはうまくいきましたが、代わりにfunctions.phpルートを使ってこれを行うことに興味がありました。 – brunam

関連する問題