قاعدة سعر عربة التسوق لدول الاتحاد الأوروبي
-
29-09-2020 - |
سؤال
في قاعدة سعر عربة التسوق يمكنني تعيين الشرط باسم" بلد الشحن "" هو "أو"ليس".أحتاج إلى توسيع هذا الشرط ليشمل جميع دول الاتحاد الأوروبي.منذ الماجنتو لديه هذا التكوين في
system > configuration > general > countries options
هناك طريقة لاستخدامها في عربة التسوق سعر حالة السعر?
المحلول
لا توجد ميزة قياسية.لمثل هذه القاعدة يجب عليك استخدام أي نوع في الظروف:
في حال كنت ترغب في تمديد نموذج الشرط القياسي ، ثم يجب عليك القيام إعادة كتابة وإضافة الشرط المناسب مثل هذا:
في الفصل حيث إعادة الكتابة Mage_SalesRule_Model_Rule_Condition_Address
:
public function loadAttributeOptions()
{
$attributes = parent::loadAttributeOptions()->getAttributeOption();
$additionalAttributes = array(
'eu' => Mage::helper('salesrule')->__('Europe Union Country'),
);
$attributes = array_merge($attributes, $additionalAttributes);
$this->setAttributeOption($attributes);
return $this;
}
و
/**
* Validate Address Rule Condition
*
* @param Varien_Object $object
* @return bool
*/
public function validate(Varien_Object $object)
{
$address = $object;
if (!$address instanceof Mage_Sales_Model_Quote_Address) {
if ($object->getQuote()->isVirtual()) {
$address = $object->getQuote()->getBillingAddress();
}
else {
$address = $object->getQuote()->getShippingAddress();
}
}
// Eu check start
if ('eu' == $this->getAttribute() && !$address->getEu()) {
$this->setValue(boolval($this->getValue()));
$euCountries = explode(',', Mage::getStoreConfig('general/country/eu_countries'));
if (empty($euCountries)) {
$euCountries = array();
}
$isEu = in_array($address->getCountry(), $euCountries);
$address->setEu($isEu);
}
// Eu check end
return parent::validate($address);
}
لا تنتمي إلى magento.stackexchange