首页 > 解决方案 > 将产品 SKU 从 Url 重定向到 WooCommerce 中的相关产品

问题描述

我有一家 WooCommerce 商店,我想基本上将产品 SKU 从 Url 重定向到相关产品。

因此,例如对于 Url domain.com/product/SKUID,用户应该被重定向到以下 urldomain.com/product/product-name或者应该打开产品页面。

我为 WooCommerce 尝试了这个插件SKU Shortlink,但它最终破坏了我的整个网站,造成“重定向过多”的问题。任何帮助表示赞赏。

标签: phpwordpressredirectwoocommercesku

解决方案


你不需要任何插件……你可以使用下面的自定义简单函数挂钩在template_redirect动作钩子中,它将重定向domain.com/product/SKUID到相关的 WooCommerce 产品单页。

代码使用内置函数wc_get_product_id_by_sku()从产品 sku 中检索产品 ID。

然后,如果产品 sku 与现有产品匹配,则将用户重定向到产品单页。

编码:

add_action('template_redirect', 'sku_product_redirect');
function sku_product_redirect() {
    // Get the sku string from Url
    $sku = get_query_var('product');
    
    if ( ! empty( $sku ) ) {
        // Get the product Id from a product sku string
        $product_id = (int) wc_get_product_id_by_sku( $sku );
        
        if( $product_id > 0 ) {
            wp_safe_redirect( get_permalink($product_id) );
            exit;
        }
    }
}

代码在您的活动子主题(或活动主题)的functions.php 文件中。测试和工作。


推荐阅读