मैं सोच रहा था कि कुछ विशिष्ट उत्पादों पर Add to Cart बटन को कैसे निष्क्रिय किया जाए, और मुझे यह करने के लिए एक परित्यक्त मार्गदर्शिका मिली, जिसने काम किया, लेकिन यह कुछ अधूरा था, क्योंकि यह केवल उत्पाद दृश्य पृष्ठों पर एक समाधान था, और श्रेणी सूची या ग्रिड पृष्ठों पर नहीं।
मैं अपने खुद के प्रश्न का उत्तर यहां 8 घंटे में दूंगा (क्योंकि मुझे 8 घंटे इंतजार करने की आवश्यकता है, क्योंकि मेरी प्रतिष्ठा एक निश्चित बिंदु से नीचे है), जब मैं पहले चरणों की व्याख्या करता हूं, और मेरा जवाब गायब होने वाला तीसरा चरण होगा जिसे मुझे समझाना था अपने लिए। मैं इस आसान का पालन करने की कोशिश करूंगा:
[चरण 1]
[1]
एक विशेषता बनाएं जो आप उन उत्पादों पर उपयोग करेंगे जिन्हें आप Add to Cart बटन नहीं चाहते हैं। व्यवस्थापक डैशबोर्ड में, पर जाएं ...
सूची> विशेषताएँ> विशेषताएँ प्रबंधित करें> नई विशेषता जोड़ें
अपनी विशेषता को नाम दें, जो भी आपको पसंद है, उदाहरण के लिए: "No_cart_button"
गुणों के साथ:
Attribute Code: No_cart_button
Catalog Input Type for Store Owner: Yes/No
Use in Quick Search: No
Use in Advanced Search: No
Comparable on Front-end: No
Visible on Product View Page on Front-end: No
Used in Product Listing: YES
Used for Sorting in Product Listing: No
लेबल / विकल्प प्रबंधित करें:
Admin: Disable Add to Cart
English: Disable Add to Cart
अब इस विशेषता को सहेजें।
[2]
एक समूह में अपनी नई विशेषता असाइन करें, ताकि आप इसका उपयोग कर सकें। मैंने "डिफ़ॉल्ट" का उपयोग किया। के लिए जाओ...
Catalog > Attributes > Manage Attributes Sets > Select Set
अब इस विशेषता सेट को सहेजें।
[चरण 2]
हम view.phtml में कुछ कोड जोड़ेंगे
app/design/frontend/default/theme/template/catalog/product/view.phtml
कोड के इस ब्लॉक का पता लगाएं:
<?php if (!$this->hasOptions()):?>
<div class="add-to-box">
<?php if($_product->isSaleable()): ?>
<?php echo $this->getChildHtml('addtocart') ?>
<?php if( $this->helper('wishlist')->isAllow() || $_compareUrl=$this->helper('catalog/product_compare')->getAddUrl($_product)): ?>
<span class="or"><?php echo $this->__('OR') ?></span>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php echo $this->getChildHtml('extra_buttons') ?>
<?php elseif (!$_product->isSaleable()): ?>
<div class="add-to-box">
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php endif; ?>
ठीक है, अब इसे कोड के इस ब्लॉक से बदलें:
<?php
//Checks if the "Disable Add to Cart" variable is set to 'Yes':
if(($_product->getAttributeText('No_cart_button')) == "Yes"){
//If set to Yes, tell PHP what to output:
echo "This Product is not available online, please call our representative if you wish to purchase this.";
}
//If set as No, then show the 'add to cart box' as usual.
else {
?>
<?php if (!$this->hasOptions()):?>
<div class="add-to-box">
<?php if($_product->isSaleable()): ?>
<?php echo $this->getChildHtml('addtocart') ?>
<?php if( $this->helper('wishlist')->isAllow() || $_compareUrl=$this->helper('catalog/product_compare')->getAddUrl($_product)): ?>
<span class="or"><?php echo $this->__('OR') ?></span>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php echo $this->getChildHtml('extra_buttons') ?>
<?php elseif (!$_product->isSaleable()): ?>
<div class="add-to-box">
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php endif; ?>
<?php
}
?>
यह कोड जांचता है कि क्या No_cart_button हां में सेट है। यदि यह हां में सेट है, तो यह कोड को आउटपुट करता है, जो ऐड टू कार्ट बटन को हटा देगा और इसके बजाय टेक्स्ट दिखाएगा जो कहता है, "यह उत्पाद ऑनलाइन उपलब्ध नहीं है, कृपया हमारे प्रतिनिधि को कॉल करें यदि आप इसे खरीदना चाहते हैं।"
ठीक है ये 2 चरण पूर्ण हैं, और उत्पाद दृश्य पृष्ठ पर Add to Cart को हटा देता है।
लेकिन, यह श्रेणी सूची पृष्ठों पर "कार्ट में जोड़ें" बटन को नहीं हटाता है। अब, हम "सूची में जोड़ें" बटन के बजाय, श्रेणी सूची पृष्ठों पर "विवरण देखें" बटन बनाना चाहते हैं।
[संपादित करें]
उत्तर:
kevinkirchner सही है, हम इस तर्क को list.phtml में जोड़ देंगे। हमने पहले ही सुनिश्चित कर लिया है कि "यूज़ इन प्रोडक्ट लिस्टिंग" के लिए विशेषता सेटिंग्स 'YES' पर सेट हैं।
ठीक है,
[चरण 3]
हम इसे तब बनायेंगे जब Disable Add to Cart को Yes पर सेट किया जाता है, यह श्रेणी सूची पृष्ठों पर "Add to Cart" बटन को भी निष्क्रिय कर देता है।
List.phtml पर जाएं
app/design/frontend/default/theme/template/catalog/product/list.phtml
और इसके लिए इस फ़ाइल को खोजें:
<?php if($_product->isSaleable()): ?>
यह इस फ़ाइल में 2 बार दिखाई देना चाहिए।
इस पंक्ति के ठीक नीचे, निम्न कोड डालें
<?php
if(($_product->getAttributeText('No_cart_button')) == "Yes"){ ?>
<p><button type="button" title="<?php echo $this->__('View Details') ?>" class="button btn-cart" onclick="location.href='<?php echo $_product->getProductUrl() ?>'"><span><span><?php echo $this->__('View Details') ?></span></span></button></p>
<?php
}
else {
?>
फिर अपने कोड के ठीक नीचे जो सामान्य 'Add to Cart' बटन बनाता है, आप देखेंगे
<?php
}
?>
इसके ठीक नीचे, समान बिट कोड में से एक और डालें:
<?php
}
?>
ठीक है, अब इस फ़ाइल में कोड के अन्य ब्लॉक में वही 2 चरण करें, जहाँ आप पाते हैं
<?php if($_product->isSaleable()): ?>
आपको इसे दो बार करना होगा, क्योंकि पहली बार सूची दृश्य के लिए है, और दूसरी बार ग्रिड दृश्य के लिए है।