Usuwanie / sklep / z adresów URL WooCommerce
Obecnie mam instalację WooCommerce, w której adresy URL produktów są tworzone jako takie:
domain.com/shop/product-category/product-name/
Ze względu na pozycjonowanie i obecną strukturę serwisu chciałbym zmienić to na:
domain.com/product-category/product-name/
Wiem, jak usunąć sklep z menu nawigacyjnego za pomocą filtra woocommerce_get_breadcrumb, ale nie jestem pewien, jak postępować w przypadku samych adresów URL.
Wszystko, co znalazłem na Stack Overflow, to ludzie zalecający zainstalowanie wtyczki o nazwie Premmerce. Ta wtyczka ma wersję premium i stale utrudnia aktualizację: Usuwanie / product-category / i / shop / z adresu URL w WooCommerce
Chciałbym to zrobić programowo z mojej własnej wtyczki lub po prostu functions.php
Odpowiedzi
WooCommerce wymusza / produkt / na tobie, jeśli spróbujesz tylko wprowadzić /% product_cat% / w panelu permalinks poprzez class-wc-admin-permalink-settings.php. Permalinks wc to opcja o nazwie „woocommerce_permalinks”. Ponieważ chcę mieć tylko /% product_cat% /, mogę to po prostu wymusić, nawet jeśli nie jest to najbardziej eleganckie rozwiązanie:
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 );
}
}
To, co robi Premmerce, to efektywnie oferowanie Ci innego panelu administracyjnego, w którym po prostu zapisują tę opcję samodzielnie.