ฉันสงสัยว่าจะปิดใช้งานปุ่ม Add to Cart บนผลิตภัณฑ์บางอย่างได้อย่างไรและฉันพบแนวทางที่ถูกทอดทิ้งเกี่ยวกับวิธีการทำสิ่งนี้ซึ่งใช้งานได้ แต่มันก็ค่อนข้างไม่สมบูรณ์เนื่องจากมันเป็นเพียงวิธีการแก้ปัญหาในหน้าดูผลิตภัณฑ์ และไม่อยู่ในรายการหมวดหมู่หรือหน้ากริด
ฉันจะตอบคำถามของตัวเองที่นี่ใน 8 ชั่วโมง (เนื่องจากฉันต้องรอ 8 ชั่วโมงเนื่องจากชื่อเสียงของฉันต่ำกว่าจุดที่แน่นอน) หลังจากที่ฉันอธิบายขั้นตอนแรกและคำตอบของฉันจะเป็นขั้นตอนที่ 3 ที่หายไปที่ฉันต้องคิด ออกมาเพื่อตัวเอง ฉันจะพยายามทำให้สิ่งนี้ง่ายต่อการปฏิบัติตาม:
[ขั้นตอนที่ 1]
[1]
สร้างแอททริบิวที่คุณจะใช้กับผลิตภัณฑ์ที่คุณไม่ต้องการใช้ปุ่มเพิ่มลงในรถเข็น ในแดชบอร์ดผู้ดูแลระบบให้ไปที่ ...
แคตตาล็อก> คุณสมบัติ> จัดการคุณสมบัติ> เพิ่มคุณสมบัติใหม่
ตั้งชื่อแอตทริบิวต์ของคุณตามที่คุณต้องการตัวอย่างเช่น: "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
ด้วย Manage Label / Options:
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 ทันที เราได้แน่ใจแล้วว่าการตั้งค่าแอตทริบิวต์สำหรับ "ใช้ในรายการผลิตภัณฑ์" ถูกตั้งค่าเป็น 'ใช่'
ตกลง,
[ขั้นตอนที่ 3]
เราจะทำให้เป็นเช่นนั้นเมื่อปิดการใช้งานเพิ่มในรถเข็นเป็นใช่นอกจากนี้ยังปิดใช้งานปุ่ม "เพิ่มลงในรถเข็น" ในหน้ารายการหมวดหมู่
ไปที่ 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 {
?>
จากนั้นใต้รหัสของคุณซึ่งสร้างปุ่ม 'ใส่ในรถเข็น' ตามปกติคุณจะเห็น
<?php
}
?>
ด้านล่างนี้ให้แทรกโค้ดอื่นอีกบิต:
<?php
}
?>
ตกลงตอนนี้ทำตามขั้นตอน 2 ขั้นตอนเดียวกันกับรหัสอื่น ๆ ในไฟล์ที่คุณค้นหา
<?php if($_product->isSaleable()): ?>
คุณต้องทำสองครั้งเพราะครั้งแรกใช้สำหรับมุมมองรายการและครั้งที่สองใช้สำหรับมุมมองกริด