| @@ -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 ); |