WooCommerce成功下单后直接跳转至已购数字商品页面方案
WooCommerce购买数字商品后直接跳转至对应商品页面的实现方法
针对你的单商品、无购物车的数字商品店铺场景,可通过以下两种WooCommerce钩子实现购买后跳过结账完成页面,直接跳转至已购商品页面:
方法一:修改结账成功跳转URL(推荐)
通过woocommerce_get_checkout_order_received_url过滤器直接替换默认的结账完成页面地址,跳转更流畅,无页面加载延迟。
将以下代码添加到当前主题的functions.php文件末尾,或自定义功能插件中:
add_filter( 'woocommerce_get_checkout_order_received_url', 'custom_redirect_to_purchased_product', 10, 2 ); function custom_redirect_to_purchased_product( $default_url, $order ) { // 遍历订单商品(单商品场景下仅取第一个) foreach( $order->get_items() as $item ) { $product_id = $item->get_product_id(); $product_url = get_permalink( $product_id ); if ( $product_url ) { return $product_url; } break; } // 异常情况 fallback 到原结账完成页面 return $default_url; }
方法二:在结账完成页面触发跳转
利用woocommerce_thankyou动作钩子,在结账完成页面加载时立即跳转至商品页面。
代码如下:
add_action( 'woocommerce_thankyou', 'redirect_to_product_after_checkout', 10, 1 ); function redirect_to_product_after_checkout( $order_id ) { $order = wc_get_order( $order_id ); if ( ! $order ) return; foreach( $order->get_items() as $item ) { $product_id = $item->get_product_id(); $product_url = get_permalink( $product_id ); if ( $product_url ) { wp_redirect( $product_url ); exit; } break; } }
注意事项
- 确保店铺已正确配置用户登录验证及商品权限逻辑,用户跳转后能正常访问已购商品内容;
- 推荐使用自定义功能插件存放代码,避免主题更新导致代码丢失;
- 两种方法均适配单商品购买场景,无需额外处理多商品逻辑。
内容的提问来源于stack exchange,提问作者Juan Pablo Contreras
相关产品推荐
相关产品推荐

