PluginProbe
Packeta / 1.2.3
Packeta v1.2.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 / QueryProcessor.php

QueryProcessor.php in Packeta 1.2.3, at src/Packetery/Module/QueryProcessor.php

99 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class QueryProcessor
4 *
5 * @package Packetery
6 */
7
8 declare( strict_types=1 );
9
10
11 namespace Packetery\Module;
12
13 use PacketeryNette\Http\Request;
14
15 /**
16 * Class QueryProcessor
17 */
18 class QueryProcessor {
19
20 /**
21 * HTTP request.
22 *
23 * @var Request
24 */
25 private $httpRequest;
26
27 /**
28 * Order repository.
29 *
30 * @var \Packetery\Module\Order\Repository
31 */
32 private $orderRepository;
33
34 /**
35 * Constructor.
36 *
37 * @param Request $httpRequest HTTP request.
38 * @param Order\Repository $orderRepository Order repository.
39 */
40 public function __construct( Request $httpRequest, Order\Repository $orderRepository ) {
41 $this->httpRequest = $httpRequest;
42 $this->orderRepository = $orderRepository;
43 }
44
45 /**
46 * Registers service.
47 *
48 * @return void
49 */
50 public function register(): void {
51 add_filter( 'posts_clauses', [ $this, 'processPostClauses' ], 10, 2 );
52 }
53
54 /**
55 * Extends WP_Query to include custom table.
56 *
57 * @link https://wordpress.stackexchange.com/questions/50305/how-to-extend-wp-query-to-include-custom-table-in-query
58 *
59 * @param array $clauses Clauses.
60 * @param \WP_Query $queryObject WP_Query.
61 *
62 * @return array
63 */
64 public function processPostClauses( array $clauses, \WP_Query $queryObject ): array {
65 $paramValues = [
66 'packetery_carrier_id' => null,
67 'packetery_to_submit' => null,
68 'packetery_to_print' => null,
69 'packetery_order_type' => null,
70 ];
71
72 foreach ( $paramValues as $key => $value ) {
73 $paramValues[ $key ] = $this->getParamValue( $queryObject, $key );
74 }
75
76 return $this->orderRepository->processPostClauses( $clauses, $queryObject, $paramValues );
77 }
78
79 /**
80 * Gets parameter value from GET data or WP_Query.
81 *
82 * @param \WP_Query $queryObject WP_Query.
83 * @param string $key Key.
84 *
85 * @return mixed|null
86 */
87 private function getParamValue( \WP_Query $queryObject, $key ) {
88 $get = $this->httpRequest->getQuery();
89 if ( isset( $get[ $key ] ) && '' !== (string) $get[ $key ] ) {
90 return $get[ $key ];
91 }
92 if ( isset( $queryObject->query[ $key ] ) && '' !== (string) $queryObject->query[ $key ] ) {
93 return $queryObject->query[ $key ];
94 }
95
96 return null;
97 }
98 }
99