Php 从电子商务URL中删除/购物/购物

Php 从电子商务URL中删除/购物/购物,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,目前,我有一个WooCommerce安装,其中产品URL是这样生成的: domain.com/shop/product-category/product-name/ 由于SEO和当前网站结构,我想将其更改为: domain.com/product-category/product-name/ 我知道如何使用woocommerce_get_面包屑过滤器从面包屑中删除shop,但我不确定如何处理URL本身 我在Stack Overflow上发现的只是有人建议安装一个名为Premmerce的插件。

目前,我有一个WooCommerce安装,其中产品URL是这样生成的:

domain.com/shop/product-category/product-name/
由于SEO和当前网站结构,我想将其更改为:

domain.com/product-category/product-name/
我知道如何使用woocommerce_get_面包屑过滤器从面包屑中删除shop,但我不确定如何处理URL本身

我在Stack Overflow上发现的只是有人建议安装一个名为Premmerce的插件。此插件有一个高级版本,不断困扰您升级:


我希望通过我自己的插件或函数以编程方式执行此操作。如果您尝试通过class-wc-admin-permalink-settings.php在permalinks面板中仅输入/%product\u cat%/,则php将强制/product/。wc permalinks是一个名为“woocommerce\u permalinks”的选项。因为我只想要/%product_cat%/,所以我可以强制它,即使它不是最优雅的解决方案:

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所做的是有效地为您提供另一个管理面板,他们只需自行保存到此选项。

请参见此处-不幸的是,此解决方案似乎会导致URL问题;它会清除整个内容,而且还会导致WPML出现问题。总的来说,它破坏了URL。我的问题似乎主要来自WooCommerce没有在自定义设置中单独启用/%product\u cat%/。为了让事情在本地运行,可能最好采用这种方式:此外,Premmerce解决这一问题的方法似乎是自行更新woocommerce_permalinks选项。这是一种非常好的方法。谢谢