Hooks und Filter | Kunden und Leser

WooCommerce: Warum funktioniert bei mir template_redirect auf benutzerdefinierte Dankeseite nicht?

roses 4798572 1920

In Anleitungen aber auch entsprechenden Plugins wird die Weiterleitung auf eine Dankeseite nach einer Bestellung über den Hook template_redirect vorgenommen (manchmal auch schon gesehen, mit woocommerce_thankyou, funktionierte allerdings bei Tests nicht)

Der Code

function custom_plugin_redirect_after_order(){ global $wp; $options = get_option('flxo_catalog_options'); $redirect = !empty( $options['thankyou_redirect'] ) ? $options['thankyou_redirect'] : false; if ( is_checkout() && ! empty( $wp->query_vars['order-received'] ) && false !== $redirect ) { wp_safe_redirect( $redirect ); exit; } }

Der Hook

$this->loader->add_action( 'template_redirect', $plugin_public, 'custom_plugin_redirect_after_inquiry' );

Doch jedes Szenario ist anders, daher funktioniert nicht immer alles genau so, wie man es erwartet. In diesem Fall gab es beispielsweise ein individuell entwickeltes Plugin zur Erweiterung von WooCommerce.

Unter anderem wurden in diesem Plugin auch benutzerdefinierte Templates vorgehalten, und festgelegt, dass das Plugin die primäre Anlaufstelle ist, die WooCommerce zum Laden von Templates prüfen soll.

$this->loader->add_filter( 'wc_get_template' , $plugin_public, 'custom_plugin_template_replace' , 10 , 5 ); $this->loader->add_filter( 'wc_get_template_part', $plugin_public, 'custom_plugin_template_replace' , 10 , 3 );

Möglicherweise war unser template_redirect zu spät dran, denn die Funktion custom_plugin_redirect_after_order kam nicht zum Zug.

Was (in diesem Fall) funktionierte

add_action( 'woocommerce_before_thankyou', 'my_plugin_custom_redirect' ); function my_plugin_custom_redirect( $order_id ){ $url = get_the_permalink($page_id); // my thank you page $order = new WC_Order( $order_id ); $order_status = $order->get_status(); if ( $order_status != 'failed' ) { if( filter_var( $url, FILTER_VALIDATE_URL) ){ wp_redirect( $url ); exit; } } }

weiter schmökern

Schreibe einen Kommentar

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden.

Deine E-Mail-Adresse wird nicht veröffentlicht.