Вам необходимо изменить файлы классов модели методов оплаты из каталога app / code / core / Mage / Payment / Model / Method, например Cashondelivery.php, для метода оплаты наложенным платежом.Чтобы перезаписать основные файлы, вы можете создать новый модуль для расширения этих классов методов оплаты или скопировать эти файлы в локальную папку, например, app / code / local / Mage / Payment / Model / Method.Затем вам нужно добавить новую функцию в эти файлы, чтобы проверить выбранные способы доставки и на основании этого вы можете показать / скрыть эти конкретные способы оплаты.Я добавил функцию в приведенном ниже коде для методов доставки наложенным платежом, как показано ниже: - класс Mage_Payment_Model_Method_Cashondelivery extends Mage_Payment_Model_Method_Abstract {
/**
* Payment method code
*
* @var string
*/
protected $_code = 'cashondelivery';
/**
* Cash On Delivery payment block paths
*
* @var string
*/
protected $_formBlockType = 'payment/form_cashondelivery';
protected $_infoBlockType = 'payment/info';
/**
* Get instructions text from config
*
* @return string
*/
public function getInstructions()
{
return trim($this->getConfigData('instructions'));
}
/* custom function to check shipping method and show/hide this payment methods*/
public function isApplicableToQuote($quote, $checksBitMask)
{
if ($quote->getShippingAddress()->getShippingMethod() == 'flatrate_flatrate') {
return false;
}
return parent::isApplicableToQuote($quote, $checksBitMask);
}
Вам необходимо найти код метода доставки вашего пользовательского метода доставки и заменить его в функциис кодом flatrate_flatrate.