/** * Check if can use method * * @param Mage_Payment_Model_Method_Abstract $method * @return bool */ protected function _canUseMethod($method) { if (!in_array($method->getCode(), $this->_getAllowedCaptureMethods())) { return false; } if (!$method->canUseForCountry($this->getOrder()->getBillingAddress()->getCountry())) { return false; } if (!$method->canUseForCurrency(Mage::app()->getStore()->getBaseCurrencyCode())) { return false; } /** * Checking for min/max order total for assigned payment method */ $total = $this->getOrder()->getBaseGrandTotal(); $minTotal = $method->getConfigData('min_order_total'); $maxTotal = $method->getConfigData('max_order_total'); if (!empty($minTotal) && $total < $minTotal || !empty($maxTotal) && $total > $maxTotal) { return false; } return true; }
/** * Mollie Payment Methods are only active if 'EURO' is currency * * @param string $currencyCode * @return bool */ public function canUseForCurrency($currencyCode) { if (!parent::canUseForCurrency($currencyCode)) { return FALSE; } /** * Skip the check here. The order amount is converted to EUR automatically. * * @see Mollie_Mpm_ApiController */ // if ($currencyCode !== 'EUR') { // return FALSE; // } return TRUE; }
/** * @param string $currencyCode * * @return bool */ public function canUseForCurrency($currencyCode) { if (!parent::canUseForCurrency($currencyCode)) { return FALSE; } return TRUE; }