Usuwanie / sklep / z adresów URL WooCommerce

Nov 26 2020

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

Sefam Nov 28 2020 at 02:40

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.