PluginProbe
Packeta / 1.6.2
Packeta v1.6.2
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / src / Packetery / Module / Order / DetailCommonLogic.php

DetailCommonLogic.php in Packeta 1.6.2, at src/Packetery/Module/Order/DetailCommonLogic.php

113 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class DetailCommonLogic.
4 *
5 * @package Packetery
6 */
7
8 declare( strict_types=1 );
9
10 namespace Packetery\Module\Order;
11
12 use Packetery\Core\Entity\Order;
13 use Packetery\Module;
14 use Packetery\Module\Exception\InvalidCarrierException;
15 use Packetery\Nette;
16
17 /**
18 * Class DetailCommonLogic.
19 *
20 * @package Packetery
21 */
22 class DetailCommonLogic {
23
24 /**
25 * Order.
26 *
27 * @var Order|null
28 */
29 private $order;
30
31 /**
32 * Context resolver.
33 *
34 * @var Module\ContextResolver
35 */
36 private $contextResolver;
37
38 /**
39 * Request.
40 *
41 * @var Nette\Http\Request
42 */
43 private $request;
44
45 /**
46 * Order repository.
47 *
48 * @var Repository
49 */
50 private $orderRepository;
51
52 /**
53 * Constructor.
54 *
55 * @param Module\ContextResolver $contextResolver Context resolver.
56 * @param Nette\Http\Request $request Request.
57 * @param Repository $orderRepository Order repository.
58 */
59 public function __construct(
60 Module\ContextResolver $contextResolver,
61 Nette\Http\Request $request,
62 Repository $orderRepository
63 ) {
64 $this->contextResolver = $contextResolver;
65 $this->request = $request;
66 $this->orderRepository = $orderRepository;
67 }
68
69 /**
70 * Gets order.
71 *
72 * @return Order|null
73 */
74 public function getOrder(): ?Order {
75 if ( null !== $this->order ) {
76 return $this->order;
77 }
78
79 $orderId = $this->getOrderId();
80 if ( null === $orderId ) {
81 return null;
82 }
83
84 try {
85 $this->order = $this->orderRepository->getById( $orderId );
86 } catch ( InvalidCarrierException $invalidCarrierException ) {
87 return null;
88 }
89
90 return $this->order;
91 }
92
93 /**
94 * Gets order ID.
95 *
96 * @return int|null
97 */
98 public function getOrderId(): ?int {
99 global $post;
100
101 if ( false === $this->contextResolver->isOrderDetailPage() ) {
102 return null;
103 }
104
105 $idParam = $this->request->getQuery( 'id' );
106 if ( null !== $idParam && Module\Helper::isHposEnabled() ) {
107 return (int) $idParam;
108 }
109
110 return $post->ID;
111 }
112 }
113