You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce单页购物车结账页无修改点击更新按钮跳转问题

解决WooCommerce单页购物车未改数量点击Update Cart跳转默认页面问题

问题场景

我搭建了单页网站,将产品列表、购物车与结账功能整合在同一页面(名为Store),并把该页面设为WooCommerce的结账页面。目前添加商品、调整数量及结账功能均正常,但未修改商品数量时点击「Update Cart」按钮,会跳转到默认购物车页面(/cart)。

已完成的设置

  • 创建名为Store的新页面
  • 在WooCommerce设置中将其设为「Checkout Page」
  • 在区块编辑器添加Checkout块
  • 添加代码add_filter('woocommerce_checkout_redirect_empty_cart', '__return_false');允许查看空购物车页面
  • 在页面模板添加购物车短代码echo do_shortcode('[woocommerce_cart]');

已尝试但无效的方法

  • 仅在数量修改时显示Update Cart按钮,但多商品场景下自定义数量按钮实现复杂
  • 通过.htaccess将/cart重定向至/store,破坏了购物车原有功能
  • 添加代码wp_nonce_field( 'woocommerce-cart', '_wpnonce', false, true );修改nonce,无效果

解决方案

使用woocommerce_update_cart_action_cart_redirect过滤器,强制覆盖购物车更新后的跳转地址,指向你的Store单页:

add_filter('woocommerce_update_cart_action_cart_redirect', 'custom_update_cart_redirect_to_store');
function custom_update_cart_redirect_to_store($redirect_url) {
    // 获取Store页面的URL,根据实际页面slug修改参数(示例中slug为store)
    $store_page_url = get_permalink(get_page_by_path('store'));
    
    if ($store_page_url) {
        return $store_page_url;
    }
    
    // 若获取失败,返回原跳转地址
    return $redirect_url;
}

说明

  • 该过滤器会拦截WooCommerce默认的购物车更新跳转逻辑,无论是否修改商品数量,点击Update Cart后都会跳转到你的Store单页
  • 请确认页面slug是否正确,若你的Store页面别名不是store,需修改get_page_by_path('store')中的参数为实际slug
  • 代码可添加至主题的functions.php文件,或通过自定义代码插件(如Code Snippets)添加,避免修改WooCommerce核心文件导致更新失效

内容的提问来源于stack exchange,提问作者Jon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:42:32