Birkaç belirli üründe Sepete Ekle düğmesini nasıl devre dışı bırakacağımı merak ediyordum ve bunun nasıl yapılacağına dair terk edilmiş bir kılavuz buldum, bu da işe yaradı, ancak sadece ürün görünüm sayfalarında sadece bir çözüm olduğu için biraz eksikti, kategori listesinde veya ızgara sayfalarında değil.
8 saat içinde burada kendi soruma cevap vereceğim (ünüm belirli bir noktanın altında olduğu için 8 saat beklemem gerektiğinden), ilk adımları açıkladıktan sonra ve cevabım anlaması gereken eksik 3. Adım olacak kendim için. Bunu takip etmeyi kolaylaştırmaya çalışacağım:
[Aşama 1]
[1]
Sepete Ekle düğmesi istemediğiniz ürünlerde kullanacağınız bir özellik oluşturun. Yönetici kontrol panelinde şu adrese gidin:
Katalog> Özellikler> Özellikleri Yönet> Yeni Özellik Ekle
Özelliğinizi istediğiniz gibi adlandırın, örneğin: "No_cart_button"
Özellikler ile:
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
Etiketi / Seçenekleri Yönet ile:
Admin: Disable Add to Cart
English: Disable Add to Cart
Şimdi bu özelliği kaydedin.
[2]
Kullanabilmeniz için yeni özelliğinizi bir gruba atayın. "Varsayılan" ı kullandım. Git ...
Catalog > Attributes > Manage Attributes Sets > Select Set
Şimdi bu öznitelik kümesini kaydedin.
[Adım 2]
View.phtml dosyasına bir kod ekleyeceğiz
app/design/frontend/default/theme/template/catalog/product/view.phtml
Bu kod bloğunu bulun:
<?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; ?>
tamam, şimdi bu kod bloğuyla değiştirin:
<?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
}
?>
Bu kod, No_cart_button öğesinin yes olarak ayarlanıp ayarlanmadığını denetler. Evet olarak ayarlanırsa, sepete ekle düğmesini kaldıracak ve bunun yerine "Bu Ürün çevrimiçi olarak kullanılamıyor, lütfen bunu satın almak istiyorsanız lütfen temsilcimizi arayın" kodunu içeren kodu verir.
Tamam, bu 2 adım tamamlanmıştır ve ürün görünümü sayfasındaki Sepete Ekle'yi kaldırır.
Ancak, Kategori listesi sayfalarındaki "Sepete Ekle" düğmesi kaldırılmaz. Şimdi, kategori listesi sayfalarında "Sepete Ekle" düğmesi yerine "Ayrıntıları Görüntüle" düğmesi yapmak istiyoruz.
[DÜZENLE]
Cevap:
kevinkirchner doğru, bu mantığı list.phtml'ye şimdi ekleyeceğiz. "Ürün Listelemede Kullanıldı" özellik ayarlarının "EVET" olarak ayarlandığından emin olduk.
Tamam,
[Aşama 3]
Bunu, Sepete Ekle'yi Devre Dışı Bırak olarak ayarladığınızda Evet, Kategori listesi sayfalarındaki "Sepete Ekle" düğmesini de devre dışı bırakırız.
List.phtml adresine gidin
app/design/frontend/default/theme/template/catalog/product/list.phtml
ve bu dosyayı şurada ara:
<?php if($_product->isSaleable()): ?>
Bu dosyada 2 kez görünmelidir.
Bu satırın hemen altına, aşağıdaki kodu ekleyin
<?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 {
?>
Sonra normal 'Sepete Ekle' düğmesini oluşturan kodunuzun hemen altında,
<?php
}
?>
hemen altına, aynı kod parçasından bir tane daha ekleyin:
<?php
}
?>
Tamam, şimdi bu dosyada bulduğunuz diğer kod bloğuna aynı 2 adımı uygulayın
<?php if($_product->isSaleable()): ?>
Bunu iki kez yapmanız gerekir, çünkü ilk kez Liste Görünümü ve ikinci kez Kılavuz Görünümü içindir.