Supprimer / shop / des URL WooCommerce

Nov 26 2020

Actuellement, j'ai une installation WooCommerce où les URL des produits sont produites comme telles:

domain.com/shop/product-category/product-name/

En raison du référencement et de la structure actuelle du site, j'aimerais le changer pour:

domain.com/product-category/product-name/

Je sais comment supprimer la boutique du fil d'Ariane à l'aide du filtre woocommerce_get_breadcrumb, mais je ne sais pas comment procéder pour les URL elles-mêmes.

Tout ce que j'ai trouvé sur Stack Overflow, ce sont des gens qui recommandent d'installer un plugin appelé Premmerce. Ce plugin a une version premium et vous oblige constamment à mettre à niveau: Suppression de / product-category / et / shop / de l'URL dans WooCommerce

Je voudrais faire cela par programmation à partir de mon propre plugin ou simplement functions.php

Réponses

Sefam Nov 28 2020 at 02:40

WooCommerce force / product / sur vous si vous essayez de saisir uniquement /% product_cat% / dans le panneau permaliens via class-wc-admin-permalink-settings.php. Le permalinks wc est une option appelée "woocommerce_permalinks". Puisque je ne veux avoir que /% product_cat% /, je peux simplement le forcer même si ce n'est pas la solution la plus élégante:

add_action( "update_option_woocommerce_permalinks", "apply_product_cat", 10, 3 );

function apply_product_cat( $old_val, $new_val, $option_name ) { if ($option_name == "woocommerce_permalinks") {
        $new_val['product_base'] = "/%product_cat%/"; update_option( "woocommerce_permalinks", $new_val );
    }
}

Premmerce vous propose effectivement un autre panneau d'administration, dans lequel ils enregistrent eux-mêmes cette option.