Roi.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace Dotdigitalgroup\Email\Block;
  3. /**
  4. * Roi block
  5. *
  6. * @api
  7. */
  8. class Roi extends \Magento\Framework\View\Element\Template
  9. {
  10. /**
  11. * @var \Dotdigitalgroup\Email\Helper\Data
  12. */
  13. public $helper;
  14. /**
  15. * @var \Magento\Checkout\Model\Session
  16. */
  17. public $session;
  18. /**
  19. * Roi constructor.
  20. *
  21. * @param \Magento\Framework\View\Element\Template\Context $context
  22. * @param \Dotdigitalgroup\Email\Helper\Data $helper
  23. * @param \Magento\Checkout\Model\Session $session
  24. * @param array $data
  25. */
  26. public function __construct(
  27. \Magento\Framework\View\Element\Template\Context $context,
  28. \Dotdigitalgroup\Email\Helper\Data $helper,
  29. \Magento\Checkout\Model\Session $session,
  30. array $data = []
  31. ) {
  32. $this->helper = $helper;
  33. $this->session = $session;
  34. parent::__construct($context, $data);
  35. }
  36. /**
  37. * @return bool
  38. */
  39. public function isRoiTrackingEnabled()
  40. {
  41. return $this->helper->isRoiTrackingEnabled();
  42. }
  43. /**
  44. * @return \Magento\Sales\Model\Order
  45. */
  46. private function getOrder()
  47. {
  48. return $this->session->getLastRealOrder();
  49. }
  50. /**
  51. * Get order total
  52. * @return string
  53. */
  54. public function getTotal()
  55. {
  56. return number_format($this->getOrder()->getBaseGrandTotal(), 2, '.', ',');
  57. }
  58. /**
  59. * Get product names
  60. * @return string
  61. */
  62. public function getProductNames()
  63. {
  64. $items = $this->getOrder()->getAllItems();
  65. $productNames = [];
  66. foreach ($items as $item) {
  67. if ($item->getParentItemId() === null) {
  68. $productNames[] = str_replace('"', ' ', $item->getName());
  69. }
  70. }
  71. return json_encode($productNames);
  72. }
  73. }