Magento: установите для canUseCheckout значение false способ оплаты

#magento #module #payment

#magento #модуль #оплата

Вопрос:

Я хочу запретить некоторые способы оплаты, пока проверка onepagecontroller находится в режиме indexAction. Я пробовал вот так:

 $payments = Mage::getSingleton('payment/config')->getAllMethods();
    foreach($payments as $payment)
    {
        $methodinstance = Mage::helper('payment')->getMethodInstance($payment->getCode());
        $methodinstance-> // here i want to set the protected $_canUseCheckout of the specific method class... maybe with __set(var, value) ? 
    }
  

Итак, есть ли способ временно установить для canUseCheckout каждого метода значение false? Возможно, мне не обязательно использовать переменные.. может быть, есть функция?
Я не нашел такого в классе методов оплаты Model_Abstract…

Ответ №1:

вы можете отключить любой способ оплаты. для отключения способа оплаты перейдите к модели способа оплаты, которую вы хотите отключить, и оштрафуйте protected $_canUseCheckout = true; пожалуйста, сделайте эту переменную false и проверьте ее.

Комментарии:

1. Конечно, но я хочу изменить эту переменную во время выполнения Magento. Итак, в режиме реального времени.

2. Возможно, вы можете добавить конфигурацию магазина. Затем перепишите класс, переопределите метод canUseCheckout, проверьте значение конфигурации хранилища и верните логическое значение true / false.