PluginProbe
Packeta / 1.6.3
Packeta v1.6.3
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 / ContextResolver.php

ContextResolver.php in Packeta 1.6.3, at src/Packetery/Module/ContextResolver.php

130 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class ContextResolver.
4 *
5 * @package Packetery\Module
6 */
7
8 declare( strict_types=1 );
9
10
11 namespace Packetery\Module;
12
13 use Packetery\Nette\Http\Request;
14
15 /**
16 * Class ContextResolver.
17 *
18 * @package Packetery\Module
19 */
20 class ContextResolver {
21
22 /**
23 * Request.
24 *
25 * @var Request
26 */
27 private $request;
28
29 /**
30 * ContextResolver constructor.
31 *
32 * @param Request $request Packetery request.
33 */
34 public function __construct( Request $request ) {
35 $this->request = $request;
36 }
37
38 /**
39 * Tells if requesting user is at order grid page.
40 *
41 * @return bool
42 */
43 public function isOrderGridPage(): bool {
44 global $pagenow, $typenow, $plugin_page;
45
46 if ( Helper::isHposEnabled() ) {
47 return 'admin.php' === $pagenow && 'wc-orders' === $plugin_page && false === in_array( $this->request->getQuery( 'action' ), [ 'edit', 'new' ], true );
48 }
49
50 return 'edit.php' === $pagenow && 'shop_order' === $typenow;
51 }
52
53 /**
54 * Tells if requesting user is at order detail page.
55 *
56 * @return bool
57 */
58 public function isOrderDetailPage(): bool {
59 global $pagenow, $typenow, $plugin_page;
60
61 if ( Helper::isHposEnabled() ) {
62 return 'admin.php' === $pagenow && 'wc-orders' === $plugin_page && 'edit' === $this->request->getQuery( 'action' );
63 }
64
65 return 'post.php' === $pagenow && 'shop_order' === $typenow;
66 }
67
68 /**
69 * Tells if requesting user is at product detail page.
70 *
71 * @return bool
72 */
73 private function isProductDetailPage(): bool {
74 global $pagenow, $typenow;
75
76 return 'post.php' === $pagenow && 'product' === $typenow;
77 }
78
79 /**
80 * Tells if requesting user is at product create page.
81 *
82 * @return bool
83 */
84 private function isProductCreatePage(): bool {
85 global $pagenow, $typenow;
86
87 return 'post-new.php' === $pagenow && 'product' === $typenow;
88 }
89
90 /**
91 * Tells if requesting user is at product page.
92 *
93 * @return bool
94 */
95 public function isProductPage(): bool {
96 return $this->isProductCreatePage() || $this->isProductDetailPage();
97 }
98
99 /**
100 * Tells if requesting user is at page using packetery confirm.
101 *
102 * @return bool
103 */
104 public function isPacketeryConfirmPage(): bool {
105 return $this->isOrderDetailPage() || $this->isOrderGridPage();
106 }
107
108 /**
109 * Tells if requesting user is at product category grid page.
110 *
111 * @return bool
112 */
113 public function isProductCategoryGridPage(): bool {
114 global $pagenow;
115
116 return 'edit-tags.php' === $pagenow && ProductCategory\Entity::TAXONOMY_NAME === $this->request->getQuery( 'taxonomy' );
117 }
118
119 /**
120 * Tells if requesting user is at product category grid page.
121 *
122 * @return bool
123 */
124 public function isProductCategoryDetailPage(): bool {
125 global $pagenow;
126
127 return 'term.php' === $pagenow && ProductCategory\Entity::TAXONOMY_NAME === $this->request->getQuery( 'taxonomy' );
128 }
129 }
130