Eliminando / shop / de las URL de WooCommerce

Nov 26 2020

Actualmente tengo una instalación de WooCommerce donde las URL de los productos se generan como tales:

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

Debido al SEO y la estructura actual del sitio, me gustaría cambiarlo a:

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

Sé cómo eliminar la tienda de la ruta de navegación utilizando el filtro woocommerce_get_breadcrumb, pero no estoy seguro de cómo proceder con las URL.

Todo lo que encontré en Stack Overflow son personas que recomiendan instalar un complemento llamado Premmerce. Este complemento tiene una versión premium y constantemente lo molesta para actualizar: Eliminando / product-category / y / shop / de URL en WooCommerce

Me gustaría hacer esto programáticamente desde mi propio complemento o solo functions.php

Respuestas

Sefam Nov 28 2020 at 02:40

WooCommerce fuerza / product / sobre usted si solo intenta ingresar /% product_cat% / en el panel de enlaces permanentes a través de class-wc-admin-permalink-settings.php. Los enlaces permanentes de wc son una opción llamada "woocommerce_permalinks". Como solo quiero tener /% product_cat% /, puedo forzarlo aunque no sea la solución más elegante:

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 );
    }
}

Lo que Premmerce hace es efectivamente ofrecerle otro panel de administración, donde simplemente guardan esta opción por su cuenta.