php - 将产品 SKU 从 Url 重定向到 WooCommerce 中的相关产品
问题描述
我有一家 WooCommerce 商店,我想基本上将产品 SKU 从 Url 重定向到相关产品。
因此,例如对于 Url domain.com/product/SKUID
,用户应该被重定向到以下 urldomain.com/product/product-name
或者应该打开产品页面。
我为 WooCommerce 尝试了这个插件SKU Shortlink,但它最终破坏了我的整个网站,造成“重定向过多”的问题。任何帮助表示赞赏。
解决方案
你不需要任何插件……你可以使用下面的自定义简单函数挂钩在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 文件中。测试和工作。
推荐阅读
- javascript - 如何在 React Native 中覆盖父样式
- apache-spark - Spark (v 2.3.2) 数据框正在读取 ORC 文件中的所有列作为字符串类型。这是正常行为吗?
- python - 如何在 SQLAlchemy ORM 中创建视图?
- c# - 消息框退出时如何停止后台工作程序?
- ios - Deinit 方法在其实例初始化并且委托设置为某个视图控制器时自动调用
- php - foreach,差分数组的奇怪问题
- ios - 同一节内单元格之间的可变空间
- android - 更新通知时记录“D/Notification:allPendingIntents”
- c# - 有条件的 EntityFramework
- javascript - 如何让组件等待 axios 从 API 获得响应?