PluginProbe
Packeta / 2.3.2
Packeta v2.3.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
← All changes | src/Packetery/Module/QueryProcessor.php +33 -12 1.6.22.3.2 View file →
@@ -6,9 +6,8 @@
6 6 */
7 7
8 8 declare( strict_types=1 );
9 9
10 -
11 10 namespace Packetery\Module;
12 11
13 12 use Packetery\Nette\Http\Request;
14 13
@@ -65,25 +64,45 @@
65 64 * Extends WP_Query to include custom table.
66 65 *
67 66 * @link https://wordpress.stackexchange.com/questions/50305/how-to-extend-wp-query-to-include-custom-table-in-query
68 67 *
69 - * @param array $clauses Clauses.
70 - * @param \WP_Query $queryObject WP_Query.
68 + * @param array<string, string>|mixed $clauses Clauses.
69 + * @param \WP_Query|mixed $queryObject WP_Query.
71 70 *
72 - * @return array
71 + * @return array<string, string>|mixed
73 72 */
74 - public function processClauses( array $clauses, \WP_Query $queryObject ): array {
75 - if ( false === $this->contextResolver->isOrderGridPage() ) {
73 + public function processClauses( $clauses, $queryObject ) {
74 + if ( $this->contextResolver->isOrderGridPage() === false ) {
76 75 return $clauses;
77 76 }
78 77
78 + if ( ! is_array( $clauses )
79 + || array_filter(
80 + $clauses,
81 + static function ( $value, $key ) {
82 + return is_string( $key ) && is_string( $value );
83 + },
84 + ARRAY_FILTER_USE_BOTH
85 + ) !== $clauses
86 + ) {
87 + WcLogger::logArgumentTypeError( __METHOD__, 'clauses', 'array', $clauses );
88 +
89 + return $clauses;
90 + }
91 +
92 + if ( ! $queryObject instanceof \WP_Query ) {
93 + WcLogger::logArgumentTypeError( __METHOD__, 'queryObject', \WP_Query::class, $queryObject );
94 +
95 + return $clauses;
96 + }
97 +
79 98 $isOrderPostQueryCall =
80 99 isset( $queryObject->query['post_type'] ) &&
81 100 (
82 - 'shop_order' === $queryObject->query['post_type'] ||
101 + $queryObject->query['post_type'] === 'shop_order' ||
83 102 ( is_array( $queryObject->query['post_type'] ) && in_array( 'shop_order', $queryObject->query['post_type'], true ) )
84 103 );
85 - if ( false === $isOrderPostQueryCall ) {
104 + if ( $isOrderPostQueryCall === false ) {
86 105 return $clauses;
87 106 }
88 107
89 108 return $this->orderRepository->processClauses(
@@ -95,14 +114,14 @@
95 114
96 115 /**
97 116 * Extends High-Performance order storage grid filters.
98 117 *
99 - * @param array $clauses Clauses.
118 + * @param array<string, string> $clauses Clauses.
100 119 *
101 - * @return array
120 + * @return array<string, string>
102 121 */
103 122 public function processHposClauses( array $clauses ): array {
104 - if ( false === $this->contextResolver->isOrderGridPage() ) {
123 + if ( $this->contextResolver->isOrderGridPage() === false ) {
105 124 return $clauses;
106 125 }
107 126
108 127 return $this->orderRepository->processClauses(
@@ -114,9 +133,9 @@
114 133
115 134 /**
116 135 * Gets param values.
117 136 *
118 - * @return null[]
137 + * @return array<string,null>
119 138 */
120 139 private function getParamValues(): array {
121 140 $paramValues = [
122 141 'packetery_carrier_id' => null,
@@ -122,8 +141,10 @@
122 141 'packetery_carrier_id' => null,
123 142 'packetery_to_submit' => null,
124 143 'packetery_to_print' => null,
125 144 'packetery_order_type' => null,
145 + 'orderby' => null,
146 + 'order' => null,
126 147 ];
127 148
128 149 foreach ( $paramValues as $key => $value ) {
129 150 $paramValues[ $key ] = $this->httpRequest->getQuery( $key );