Mubashir
Mubashir

Reputation: 567

Do not show cash on delivery methods for some specific cities

Is there any way to display/hide "Cash on delivery" payment method for some specific cities. Can anyone guide me how/where to start code for this to achieve this custom functionality.

Thanks

Upvotes: 0

Views: 2105

Answers (1)

MagePal Extensions
MagePal Extensions

Reputation: 17656

Take a look @ Disable payment options-only cash on delivery for particular product-magento

Using payment_method_is_active observer you could load the current checkout session quote and check what city the order is be ship to.

$checkout = Mage::getSingleton('checkout/session')->getQuote();
$shipping = $checkout->getShippingAddress();

$cashOnDeliveryCities = array('city name 1','city name 2',..)

if(in_array($shipping->getCity(), $cashOnDeliveryCities)){
    $result->isAvailable = true;
}else{
    $result->isAvailable = false;
}

Upvotes: 1

Related Questions