限制magento 1.9.0中某些zip / pin码的默认货到付款

时间:2015-03-25 05:30:06

标签: magento payment-gateway zipcode

我们正在使用magento 1.9.0中的货到付款方式

我们只需要针对特定​​邮政编码/密码进行此付款选项。

这里有人得到解决方案:

How to restrict default COD in magento to certain zip codes only?

我真的无法用一些想法来实现这个解决方案。

任何人都可以逐步详细解释我的解决方案。

2 个答案:

答案 0 :(得分:1)

您只需编辑文件/app/code/core/Mage/Payment/Model/Method/Cashondelivery.php

打开它并将下面的代码添加到类的最末端(就在文件中的最后一个“}”之前):

public function isAvailable($quote = null)
{
    if ($quote) {

        // Here is the list of restricted Zip Codes
        $restrictedZips = array(
            '85001',
            '87965'
        );

        $address = $quote->isVirtual() ? $quote->getBillingAddress() : $quote->getShippingAddress();
        $customerZip = $address->getPostcode();

        if (in_array($customerZip, $restrictedZips)) {
            return false;
        }
    }

    return parent::isAvailable($quote);
}

P.S。:请注意,使用此解决方案,您需要在代码中输入zip-codes。如果您想避免这种情况,并且能够通过管理员面板输入zip范围,请与我们联系以获取更多详细信息。

答案 1 :(得分:1)

首先,您将在数据库中创建一个邮政编码表,并在您的产品页面上创建简单输入字段,现在为此创建验证,然后创建一个AJAX函数,用于检查邮政编码COD是否可用。