将产品 SKU 从 Url 重定向到 WooCommerce 中的相关产品

Pav*_*mar 4 php wordpress redirect woocommerce sku

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

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

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

Loi*_*tec 7

您不需要任何插件\xe2\x80\xa6 您可以使用挂接在template_redirect操作挂钩中的以下自定义简单函数,该函数将重定向domain.com/product/SKUID到相关的 WooCommerce 产品单页面。

\n

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

\n

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

\n

代码:

\n
add_action('template_redirect', 'sku_product_redirect');\nfunction sku_product_redirect() {\n    // Get the sku string from Url\n    $sku = get_query_var('product');\n    \n    if ( ! empty( $sku ) ) {\n        // Get the product Id from a product sku string\n        $product_id = (int) wc_get_product_id_by_sku( $sku );\n        \n        if( $product_id > 0 ) {\n            wp_safe_redirect( get_permalink($product_id) );\n            exit;\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。

\n

  • 嘿 LoicTheAztec,这似乎在当前的 woocommerce 版本中不起作用,知道发生了什么变化吗? (2认同)