Status.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Order Statuses source model
  8. */
  9. namespace Magento\Sales\Model\Config\Source\Order;
  10. /**
  11. * Class Status
  12. * @api
  13. * @since 100.0.2
  14. */
  15. class Status implements \Magento\Framework\Option\ArrayInterface
  16. {
  17. const UNDEFINED_OPTION_LABEL = '-- Please Select --';
  18. /**
  19. * @var string[]
  20. */
  21. protected $_stateStatuses = [
  22. \Magento\Sales\Model\Order::STATE_NEW,
  23. \Magento\Sales\Model\Order::STATE_PROCESSING,
  24. \Magento\Sales\Model\Order::STATE_COMPLETE,
  25. \Magento\Sales\Model\Order::STATE_CLOSED,
  26. \Magento\Sales\Model\Order::STATE_CANCELED,
  27. \Magento\Sales\Model\Order::STATE_HOLDED,
  28. ];
  29. /**
  30. * @var \Magento\Sales\Model\Order\Config
  31. */
  32. protected $_orderConfig;
  33. /**
  34. * @param \Magento\Sales\Model\Order\Config $orderConfig
  35. */
  36. public function __construct(\Magento\Sales\Model\Order\Config $orderConfig)
  37. {
  38. $this->_orderConfig = $orderConfig;
  39. }
  40. /**
  41. * @return array
  42. */
  43. public function toOptionArray()
  44. {
  45. $statuses = $this->_stateStatuses
  46. ? $this->_orderConfig->getStateStatuses($this->_stateStatuses)
  47. : $this->_orderConfig->getStatuses();
  48. $options = [['value' => '', 'label' => __('-- Please Select --')]];
  49. foreach ($statuses as $code => $label) {
  50. $options[] = ['value' => $code, 'label' => $label];
  51. }
  52. return $options;
  53. }
  54. }