2013-11-22 8 views
5

मैं कार्ट बटन में जोड़ने के बगल में निकालें आइटम बटन लागू कर रहा हूं, हालांकि मुझे एक उत्पाद के लिए परिवर्तनीय $ cart_item_key प्राप्त करने में समस्या है। मेरे पास ग्लोबल वैरिएबल $ woocommerce और $ product है, लेकिन एकमात्र तरीका $ cart_item_key का उपयोग किया जाता है, यह एक फोरच है जो मेरी मदद नहीं करता है क्योंकि मुझे एड-टू-कार्ट.एफ़.पी. में जोड़ने के लिए मेरे कोड की आवश्यकता है।

उत्तर

9

आप इस तरह पाश के भीतर प्रत्येक उत्पाद के लिए निकालें लिंक स्थापित करने के लिए,

foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item) { 

echo $cart_item_key; 
if($cart_item['product_id'] == $your_product_id_to_remove){ 
    //remove single product 
} 
} 

किसी भी स्थिति में आप गाड़ी आइटम लिस्टिंग है; उस से आपको हटाना होगा, इसलिए foreach आपकी आवश्यकता के साथ काम करेगा।

आशा है कि इसकी मदद करता है ..

+0

धन्यवाद! यह काम करता हैं! बस जिस चीज़ को मैं ढूंढ रहा था! –

+0

आपका स्वागत है :) –

+1

यह इसे प्राप्त करने के लिए एक बहुत ही अक्षम तरीका जैसा प्रतीत होता है। मुझे पता है कि WooCommerce की संरचना इस प्रकार के समाधान को कम या ज्यादा बल देती है - हालांकि, हम अनिवार्य रूप से कह रहे हैं: "कार्ट में प्रत्येक आइटम के लिए, कार्ट में अन्य सभी वस्तुओं के विरुद्ध इसे जांचें, अगर यह है एक मैच - कुछ करो "। मूल गणित करना हम स्पष्ट रूप से देख सकते हैं कि हमें अपने कार्ट आइटम 'वाई वर्ग' के समय (जहां वाई हमारे कार्ट में वस्तुओं की संख्या है) के माध्यम से फिर से शुरू करना है। 1 आइटम - 2 पुनरावृत्तियों 2 आइटम - 4 पुनरावृत्तियों 3 आइटम - 9 पुनरावृत्तियों 4 आइटम - 16 पुनरावृत्तियों –

2

इस कोड मेरे लिए काम किया। समाधान के लिए जॉबिन जोस (https://stackoverflow.com/users/1258004/jobin-jose) के लिए धन्यवाद!

foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item) { 
    if ($cart_item['product_id'] == $product->id) { 
     echo apply_filters('woocommerce_cart_item_remove_link', sprintf('<a href="%s" class="remove" title="%s">&times;</a>', esc_url($woocommerce->cart->get_remove_url($cart_item_key)), __('Remove this item', 'woocommerce')), $cart_item_key); 
} 
संबंधित मुद्दे