Esempio n. 1
0
 public function testGetInfoBlockHtml()
 {
     list($storeId, $blockHtml, $secureMode, $blockType) = [1, 'HTML MARKUP', true, 'method_block_type'];
     $methodMock = $this->getMockBuilder('Magento\\Payment\\Model\\MethodInterface')->getMockForAbstractClass();
     $infoMock = $this->getMockBuilder('Magento\\Payment\\Model\\Info')->disableOriginalConstructor()->setMethods([])->getMock();
     $paymentBlockMock = $this->getMockBuilder('Magento\\Framework\\View\\Element\\BlockInterface')->disableOriginalConstructor()->setMethods(['setArea', 'setIsSecureMode', 'getMethod', 'setStore', 'toHtml', 'setInfo'])->getMock();
     $this->appEmulation->expects($this->once())->method('startEnvironmentEmulation')->with($storeId);
     $infoMock->expects($this->once())->method('getMethodInstance')->willReturn($methodMock);
     $methodMock->expects($this->once())->method('getInfoBlockType')->willReturn($blockType);
     $this->layoutMock->expects($this->once())->method('createBlock')->with($blockType)->willReturn($paymentBlockMock);
     $paymentBlockMock->expects($this->once())->method('setInfo')->with($infoMock);
     $paymentBlockMock->expects($this->once())->method('setArea')->with(\Magento\Framework\App\Area::AREA_FRONTEND)->willReturnSelf();
     $paymentBlockMock->expects($this->once())->method('setIsSecureMode')->with($secureMode);
     $paymentBlockMock->expects($this->once())->method('getMethod')->willReturn($methodMock);
     $methodMock->expects($this->once())->method('setStore')->with($storeId);
     $paymentBlockMock->expects($this->once())->method('toHtml')->willReturn($blockHtml);
     $this->appEmulation->expects($this->once())->method('stopEnvironmentEmulation');
     $this->assertEquals($blockHtml, $this->helper->getInfoBlockHtml($infoMock, $storeId));
 }
Esempio n. 2
0
 /**
  * Get payment info block as html
  *
  * @param Order $order
  * @return string
  */
 protected function getPaymentHtml(Order $order)
 {
     return $this->paymentHelper->getInfoBlockHtml($order->getPayment(), $this->identityContainer->getStore()->getStoreId());
 }
Esempio n. 3
0
 /**
  * Send email with order data
  *
  * @return $this
  */
 public function sendNewOrderEmail()
 {
     $storeId = $this->getStore()->getId();
     if (!$this->_salesData->canSendNewOrderEmail($storeId)) {
         return $this;
     }
     // Get the destination email addresses to send copies to
     $copyTo = $this->_getEmails(self::XML_PATH_EMAIL_COPY_TO);
     $copyMethod = $this->_scopeConfig->getValue(self::XML_PATH_EMAIL_COPY_METHOD, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $storeId);
     $paymentBlockHtml = $this->_paymentData->getInfoBlockHtml($this->getPayment(), $storeId);
     // Retrieve corresponding email template id and customer name
     if ($this->getCustomerIsGuest()) {
         $templateId = $this->_scopeConfig->getValue(self::XML_PATH_EMAIL_GUEST_TEMPLATE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $storeId);
         $customerName = $this->getBillingAddress()->getName();
     } else {
         $templateId = $this->_scopeConfig->getValue(self::XML_PATH_EMAIL_TEMPLATE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $storeId);
         $customerName = $this->getCustomerName();
     }
     $this->_transportBuilder->setTemplateIdentifier($templateId)->setTemplateOptions(array('area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => $storeId))->setTemplateVars(array('order' => $this, 'billing' => $this->getBillingAddress(), 'payment_html' => $paymentBlockHtml, 'store' => $this->getStore()))->setFrom($this->_scopeConfig->getValue(self::XML_PATH_EMAIL_IDENTITY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $storeId))->addTo($this->getCustomerEmail(), $customerName);
     if ($copyTo && $copyMethod == 'bcc') {
         // Add bcc to customer email
         foreach ($copyTo as $email) {
             $this->_transportBuilder->addBcc($email);
         }
     }
     /** @var \Magento\Framework\Mail\TransportInterface $transport */
     $transport = $this->_transportBuilder->getTransport();
     $transport->sendMessage();
     // Email copies are sent as separated emails if their copy method is 'copy'
     if ($copyTo && $copyMethod == 'copy') {
         foreach ($copyTo as $email) {
             $this->_transportBuilder->setTemplateIdentifier($templateId)->setTemplateOptions(array('area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => $storeId))->setTemplateVars(array('order' => $this, 'billing' => $this->getBillingAddress(), 'payment_html' => $paymentBlockHtml, 'store' => $this->getStore()))->setFrom($this->_scopeConfig->getValue(self::XML_PATH_EMAIL_IDENTITY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $storeId))->addTo($email)->getTransport()->sendMessage();
         }
     }
     $this->setEmailSent(true);
     $this->_getResource()->saveAttribute($this, 'email_sent');
     return $this;
 }