我用的是argon-theme-master 是一个博客主题,经排查这个主题使用PJAX 技术加载页面,导致购物车链接不能正确加载 WooCommerce 的会话数据。
现在修改这个菜单渲染器,在购物车链接上添加 no-pjax class:
// 检查是否是购物车或结账链接
$is_woocommerce_link = ( strpos( $object -> url, 'cart' ) !== false || strpos( $object -> url, 'checkout' ) !== false ) ? ' no-pjax' : '';
// 初始化购物车会话数据(确保页面加载时购物车数据已准备好)
add_action( 'init', 'mytheme_initialize_woocommerce_cart' );
function mytheme_initialize_woocommerce_cart() {
if ( is_cart() || is_checkout() ) {
WC()->cart->get_cart();
}
}
现在当用户点击购物车链接时:
- ✅ 链接会以完整页面加载(不使用 PJAX)
- ✅ WooCommerce 会话数据会正确初始化
- ✅ 购物车数据会立即显示,无需刷新
