Woocommerce: So springen Sie direkt zur Produktseite, wenn die Kategorie nur einen Artikel enthält

Lesezeit: 2 Minuten

Ich habe ein Top-Menü, das die Anzeige von Produktkategorien ermöglicht. In diesem Fall der Name der Anwendung, die ich verkaufe.

Wenn dieser Menüpunkt angeklickt wird, zeigt er den Inhalt der Kategorie an – wie es sein sollte.

Da diese Kategorie jedoch nur einen Artikel enthält, möchte ich direkt zur Produktseite springen, anstatt eine Kategorieseite mit einem Artikel anzuzeigen.

Hier der Link zu der betreffenden Seite: boutique.zimrahapp.com/categorie-produit/app/

Ich habe weder einen Hook noch eine Vorlage gefunden, wo ich die Ausgabe anpassen oder eine Umleitung vornehmen kann.

Wurde so etwas schon gemacht?

Benutzer-Avatar
AJD

Der obige Code hat bei mir nicht funktioniert. Ich habe eine Lösung, die funktioniert, aber alle einzelnen Archivergebnisse umleitet. In meinem Fall wollte ich auch einzelne Tags umleiten.

/* Redirect if there is only one product in the category or tag, or anywhere... */

function redirect_to_single_post(){
global $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_safe_redirect($post_url , 302 );
 exit;
}
} 
add_action('template_redirect', 'redirect_to_single_post');

Ich hatte dieselbe Frage hier gestellt: Woocommerce: Wie wird automatisch auf das einzelne Produkt umgeleitet, wenn es auf einer Kategorieseite nur ein Produkt gibt?

WooCommerce leitet eine Suchanfrage mit nur einem Ergebnis auf dieses Ergebnis um. Sie können sehen, wie sie es tun hier.

Wenn Sie ihren Code ändern, erhalten Sie Folgendes:

function so_35012094_template_redirect() {
    global $wp_query;

    // Redirect to the product page if we have a single product
    if ( is_product_category() && 1 === $wp_query->found_posts ) {
        $product = wc_get_product( $wp_query->post );
        if ( $product && $product->is_visible() ) {
            wp_safe_redirect( get_permalink( $product->id ), 302 );
            exit;
        }
    }

}
add_action( 'template_redirect', 'so_35012094_template_redirect' );

Ungetestet, also achten Sie auf Fehler beim Kopieren/Einfügen. Verwenden Sie immer WP_DEBUG damit Sie herausfinden können, was schief gelaufen ist.

  • Cool, danke @helgatheviking. Tolle Antworten wie immer.

    – Simon

    26. Januar 2016 um 15:18 Uhr

1159350cookie-checkWoocommerce: So springen Sie direkt zur Produktseite, wenn die Kategorie nur einen Artikel enthält

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy