/** * @param bool $isActive * @dataProvider getActiveMethodsDataProvider */ public function testGetActiveMethods($isActive) { $abstractMethod = $this->getMockBuilder('Magento\\Payment\\Model\\Method\\AbstractMethod')->disableOriginalConstructor()->setMethods(['setId', 'setStore', 'getConfigData'])->getMock(); $this->scopeConfig->expects($this->once())->method('getValue')->with('payment', ScopeInterface::SCOPE_STORE, null)->will($this->returnValue($this->paymentMethodsList)); $this->paymentMethodFactory->expects($this->once())->method('create')->with($this->paymentMethodsList['active_method']['model'])->will($this->returnValue($abstractMethod)); $abstractMethod->expects($this->any())->method('setId')->with('active_method')->will($this->returnValue($abstractMethod)); $abstractMethod->expects($this->any())->method('setStore')->with(null); $abstractMethod->expects($this->any())->method('getConfigData')->with('active', $this->isNull())->will($this->returnValue($isActive)); $this->assertEquals($isActive ? ['active_method' => $abstractMethod] : [], $this->config->getActiveMethods()); }
/** * @param \Magento\Framework\Event\Observer $observer * @return void */ public function execute(\Magento\Framework\Event\Observer $observer) { if ($observer->getEvent()->getState() != \Magento\Sales\Model\Order::STATE_NEW) { return; } $status = $observer->getEvent()->getStatus(); $defaultStatus = $this->_salesOrderConfig->getStateDefaultStatus(\Magento\Sales\Model\Order::STATE_NEW); $methods = $this->_paymentConfig->getActiveMethods(); foreach ($methods as $method) { if ($method->getConfigData('order_status') == $status) { $this->_resourceConfig->saveConfig('payment/' . $method->getCode() . '/order_status', $defaultStatus, 'default', 0); } } }
/** * @param \Magento\Framework\DataObject $postObject * * @return bool * @throws \Exception */ public function sendrequest($postObject) { if (!filter_var($postObject->getData('to'), FILTER_VALIDATE_EMAIL)) { throw new \Exception($this->_dataHelper->__('Please enter a valid e-mail address.')); } if (strlen(trim($postObject->getData('replyto')))) { if (!filter_var($postObject->getData('replyto'), FILTER_VALIDATE_EMAIL)) { throw new \Exception($this->_dataHelper->__('Please enter a valid e-mail address (reply to).')); } $this->_transportBuilder->setReplyTo(trim($postObject->getData('replyto'))); } $sender = ['name' => $this->_dataHelper->getStoreConfigData('trans_email/ident_general/name'), 'email' => $this->_dataHelper->getStoreConfigData('trans_email/ident_general/email')]; if (!strlen($sender['email'])) { throw new \Exception('Please set your shop e-mail address!'); } $modules = []; foreach ($this->_moduleLoader->load() as $module) { if (!in_array($module['name'], $this->_moduleBlacklist)) { $modules[] = $module['name']; } } natsort($modules); $payments = $this->_paymentConfig->getActiveMethods(); /** @var \Magento\Framework\App\Config\Data $cfg */ $cfg = $this->_scopePool->getScope(\Magento\Store\Model\ScopeInterface::SCOPE_STORE); $foreign = array(); $mine = array(); foreach ($payments as $paymentCode => $paymentModel) { /** @var AbstractPayment $paymentModel */ $method = array('label' => $paymentModel->getTitle(), 'value' => $paymentCode, 'config' => []); if (preg_match('/^wirecard_/i', $paymentCode)) { $method['config'] = $cfg->getValue('payment/' . $paymentCode); $mine[$paymentCode] = $method; } else { $foreign[$paymentCode] = $method; } } $versioninfo = new \Magento\Framework\DataObject(); $versioninfo->setData($this->_dataHelper->getVersionInfo()); $transport = $this->_transportBuilder->setTemplateIdentifier('contact_support_email')->setTemplateOptions(['area' => \Magento\Framework\App\Area::AREA_ADMINHTML, 'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID])->setTemplateVars(['data' => $postObject, 'modules' => $modules, 'foreign' => $foreign, 'mine' => $mine, 'configstr' => $this->_dataHelper->getConfigString(), 'versioninfo' => $versioninfo])->setFrom($sender)->addTo($postObject->getData('to'))->getTransport(); $transport->sendMessage(); return true; }