Как скрыть способ оплаты, например наложенный платеж и онлайн-платеж, с выбором способов доставки, таких как «наложенный платеж» или «Предоплата» в magento 1.9 - PullRequest
0 голосов
/ 06 июня 2018

Я использую magento 1.9 У меня есть два способа доставки наложенным платежом, а другой предоплата.Я хочу скрыть способ оплаты наложенным платежом, если клиент выбирает предоплаченную доставку или если клиент выбирает метод предоплаченной доставки -> Способ оплаты наложенным платежом должен быть скрыт, как нет выбора

enter image description here

Пожалуйста, дайте мнезнать как можно скорее

enter image description here

1 Ответ

0 голосов
/ 08 июня 2018

Вам необходимо изменить файлы классов модели методов оплаты из каталога 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.

...