PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.16
Yatra – Travel Booking & Tour Operator Software v3.0.16
3.0.16 3.0.15 3.0.14 3.0.14.1 3.0.14.2 3.0.12 3.0.13 3.0.11 3.0.10 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.5.1 3.0.4 3.0.3 3.0.2.9 3.0.2.7 3.0.2.8 3.0.2.6 trunk 1.0.0 2.0.0 2.0.1 All 84 releases
← All changes | app/Core/Routing/PlainPageMatcher.php +13 -4 3.0.3 → 3.0.16 View file →
@@ -23,8 +23,17 @@
23 23 * @return array<string, mixed>|null Route data compatible with {@see Router::handleRouteData()}
24 24 */
25 25 public static function match(): ?array
26 26 {
27 + /**
28 + * Override plain / query-arg routing entirely (runs before core matching).
29 + * Return a handler route array compatible with {@see Router::handleRouteData()}.
30 + */
31 + $plain_override = apply_filters('yatra_plain_route_match', null);
32 + if (is_array($plain_override) && isset($plain_override['type']) && is_string($plain_override['type']) && $plain_override['type'] !== '') {
33 + return $plain_override;
34 + }
35 +
27 36 // Plain-style query routing (?yatra_page=activity&paged=2) must run even when the site uses
28 37 // pretty permalinks — pagination links use home_url('/') + query args. Without this, the router
29 38 // never sees those URLs and WordPress may 404 on paged front-page requests.
30 39
@@ -157,14 +166,14 @@
157 166 $slug = '';
158 167 if ($baseKey !== '') {
159 168 $fromBase = $_GET[$baseKey] ?? null;
160 169 if (is_string($fromBase)) {
161 - $slug = sanitize_title(wp_unslash($fromBase));
170 + $slug = \Yatra\Helpers\SlugHelper::generate(wp_unslash($fromBase));
162 171 }
163 172 }
164 173 if ($slug === '') {
165 174 $legacy = $_GET[$legacySlugKey] ?? '';
166 - $slug = is_string($legacy) ? sanitize_title(wp_unslash($legacy)) : '';
175 + $slug = is_string($legacy) ? \Yatra\Helpers\SlugHelper::generate(wp_unslash($legacy)) : '';
167 176 }
168 177 if ($slug !== '') {
169 178 return [
170 179 'type' => 'taxonomy',
@@ -222,9 +231,9 @@
222 231 if (!isset($_GET[$b])) {
223 232 continue;
224 233 }
225 234 $raw = $_GET[$b];
226 - $slug = is_string($raw) ? sanitize_title(wp_unslash($raw)) : '';
235 + $slug = is_string($raw) ? \Yatra\Helpers\SlugHelper::generate(wp_unslash($raw)) : '';
227 236 if ($slug === '') {
228 237 continue;
229 238 }
230 239
@@ -253,9 +262,9 @@
253 262 private static function getTripSlugFromRequest(): string
254 263 {
255 264 $key = self::tripSlugQueryKey();
256 265 $slug = $_GET[$key] ?? $_GET['yatra_trip'] ?? $_GET['yatra_trip_slug'] ?? '';
257 - $slug = is_string($slug) ? sanitize_title(wp_unslash($slug)) : '';
266 + $slug = is_string($slug) ? \Yatra\Helpers\SlugHelper::generate(wp_unslash($slug)) : '';
258 267
259 268 return $slug;
260 269 }
261 270