UPs?U`s?&UuYUpuZU`uZUPuZU@uZUPuZUuZU`uZUuZU@uUuǴUp u0UvEUpPvBU0v<U0@vU@@v+ǷUp w!Upy>~Uz> U\^\^\I \@e\3\([0([U`UL~װPw\]쟒P\`U\<`U\;U@a|pRUpU +U`pU<UPU`@(pU<U`0U8EUPPBU``BU<UPU`XpUPPBU<ۿU0@tɪU;Uퟒ hR1U>~U>(#\0 U[H&[PZ[@!&[@'['[CU(#\8[0I&[(#\L~װPwHC&[$[UL~װPwUPG?U`G?UIpUPPIBUI<UIU@I+!U`J>TU`LM!UpLNǴULUBMpUPPMBUp`MBUM<UMUNU`N+˰U`OK*U`O*CU`QtɪUQ*U`L*UL!U`T>~UpU> [ !'[ [#'[L~װPwspecified raw configuration coming from the outside. * Note that this is a low level methodUPs?U`s@U`uUu+UB敖vp=UvdUPpv]UPvUv<U`v4UPxQǴUpxUL~ypUpPyBU``yBUy<UyUPp zqUpPzAU`zuUPpzuUz<Uz>~U{>0 Uҏ[&[\`\4[([\%\h+\*\H4\L~װPwconfiguration for the given extension will be re /** * Handle QR code redirections. * * @since 6.12.0 * @return void */ public function handle_qr_redirect(): void { $hash = get_query_var( 'tec_qr_hash' ); if ( ! $hash ) { return; } $routes = tribe( Routes::class ); // phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment, WordPressVIPMinimum.Security.ExitAfterRedirect.NoExit, WordPress.Security.SafeRedirect.wp_redirect_wp_redirect try { $data = $routes->decode_qr_hash( $hash ); } catch ( \InvalidArgumentException $e ) { wp_redirect( esc_url( $this->get_fallback_url() ) ); tribe_exit(); } switch ( $data['qr_type'] ) { case 'current': $target = $this->get_current_event_url(); break; case 'upcoming': $target = $this->get_upcoming_event_url(); break; case 'specific': $target = $this->get_specific_event_url( $data['post_id'] ); break; default: $target = $this->get_fallback_url(); } /** * Filters the target URL for the QR code redirection. * * @since 6.12.0 * * @param string $target The target URL. * @param int $post_id The post ID of the event/series. * @param self $context The Redirections instance. */ $target = apply_filters( 'tec_events_qr_redirection_url', $target, $data, $this ); wp_redirect( esc_url( $target ) ); tribe_exit(); // phpcs:enable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment, WordPressVIPMinimum.Security.ExitAfterRedirect.NoExit, WordPress.Security.SafeRedirect.wp_redirect_wp_redirect } }