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

如何将WooCommerce结账页通知移动到购物车前或页面标题下方

WooCommerce结账页通知位置调整方案

原有代码失效原因

  • 移除动作的执行时机错误:你将remove_action逻辑绑定到了woocommerce_before_cart钩子上,该钩子触发时,默认绑定在woocommerce_before_checkout_form上的通知输出动作已经执行完成,移除操作不生效。
  • 钩子作用范围不匹配:你通过短代码插入到结账页的购物车模块,其内部钩子无法覆盖结账页全局的通知输出逻辑,无法实现位置调整。

Astra主题适配代码

Astra主题原生提供astra_content_before钩子,触发时机刚好是页面标题渲染完成后、主内容加载前,完全匹配你需要的位置要求,使用以下代码即可实现需求:

add_action( 'init', 'move_checkout_notices_after_title_astra' );
function move_checkout_notices_after_title_astra() {
    // 仅在非订单收到页的结账场景生效
    if ( ! is_checkout() || is_wc_endpoint_url( 'order-received' ) ) {
        return;
    }
    // 移除默认的结账页通知挂载点
    remove_action( 'woocommerce_before_checkout_form', 'wc_print_notices', 10 );
    // 将通知挂载到页面标题后的Astra专属钩子
    add_action( 'astra_content_before', 'wc_print_notices', 10 );
}

将上述代码添加到主题functions.php文件或自定义代码片段插件中,清空站点缓存、浏览器缓存后即可生效。如果需要调整通知和标题/内容的间距,可以修改add_action的第三个优先级参数,数值越小输出位置越靠前。

内容的提问来源于stack exchange,提问作者J.K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:09:00