2 votes

Rediriger l'UGS d'un produit depuis l'Url vers le produit associé dans WooCommerce

J'ai une boutique WooCommerce et j'aimerais rediriger le SKU du produit depuis l'Url vers le produit associé.

Ainsi, par exemple, pour l'Url domain.com/product/SKUID L'utilisateur doit être redirigé vers l'URL suivante domain.com/product/product-name ou devrait ouvrir la page du produit.

J'ai essayé ce plugin SKU Shortlink pour WooCommerce mais cela a fini par casser tout mon site web à cause d'un problème de "trop de redirections". Toute aide est la bienvenue.

3voto

LoicTheAztec Points 72349

Vous n'avez besoin d'aucun plugin pour cela Vous pouvez utiliser la fonction personnalisée simple suivante accrochée à template_redirect qui redirigera de domain.com/product/SKUID vers la page unique du produit WooCommerce concerné.

Le code utilise la fonction intégrée wc_get_product_id_by_sku() pour récupérer l'identifiant du produit à partir de son sku.

Ensuite, si l'unité de mesure du produit correspond à un produit existant, l'utilisateur est redirigé vers la page unique du produit.

Le code :

add_action('template_redirect', 'sku_product_redirect');
function sku_product_redirect() {
    // Get the sku string from Url
    $sku = get_query_var('product');

    if ( ! empty( $sku ) ) {
        // Get the product Id from a product sku string
        $product_id = (int) wc_get_product_id_by_sku( $sku );

        if( $product_id > 0 ) {
            wp_safe_redirect( get_permalink($product_id) );
            exit;
        }
    }
}

Le code est placé dans le fichier functions.php de votre thème enfant actif (ou thème actif). Testé et fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X