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

WooCommerce更新后woocommerce_before_checkout_form钩子无法正常工作

WooCommerce结账页面无法显示自定义文本的修复方案

问题排查与修复步骤

1. 修正函数参数错误

woocommerce_before_checkout_form钩子不会传递产品ID参数,你代码里定义的$product_Id属于多余参数,会导致函数执行异常。修改函数定义:

function ts_before_checkout_form(){
    echo "Hellos!";
}

2. 调整钩子优先级(可选)

WordPress更新后,主题或其他插件可能用了相同钩子且优先级更高,导致你的内容被覆盖。可以尝试调整优先级数值,比如改为5(更早执行)或20(更晚执行):

add_action( 'woocommerce_before_checkout_form', 'ts_before_checkout_form', 5 );

3. 确认插件已激活

确保你创建的Text check插件已经在WordPress后台「插件」页面中启用,未激活的插件代码不会生效。

4. 清除各类缓存

WordPress更新后,服务器缓存、浏览器缓存或缓存插件(如WP Rocket)可能缓存旧页面,导致新内容无法显示:

  • 清除后台缓存插件的缓存
  • 用快捷键Ctrl+Shift+R强制刷新浏览器页面
  • 若使用CDN,同步清除CDN缓存

5. 检查样式隐藏问题

部分主题或自定义CSS可能隐藏钩子输出的内容。按F12打开浏览器开发者工具,查看Hellos!元素是否被设置了display: none、visibility: hidden等样式,如有则修改对应CSS规则。

6. 排查钩子冲突

暂时禁用其他WooCommerce相关插件,切换到默认主题(如Storefront)测试文本是否显示。如果显示,说明是第三方插件或主题的钩子冲突,需找到冲突来源并调整。


最终修复后的完整插件代码:

<?php
/*
Plugin Name: Text check
Description: Display custom text on the WooCommerce checkout page.
Version: 1.0
Author: Your Name
*/
if ( ! defined( 'ABSPATH' ) ) exit;

add_action( 'woocommerce_before_checkout_form', 'ts_before_checkout_form', 5 );
function ts_before_checkout_form(){
    echo "<p>Hellos!</p>"; // 用<p>标签包裹,避免样式混乱
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:09:54