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

WooCommerce:将后台订单常规页面指定字段设为只读

如何将WooCommerce后台订单的创建日期设为只读

嘿,我来帮你搞定这个问题!你之前写的代码只是用来输出订单数据做调试用的,要把指定字段(比如创建日期)设为只读,咱们得用更针对性的方法——结合后台脚本注入来修改字段属性,具体步骤如下:

方法:用jQuery设置字段只读

WooCommerce的订单编辑页面字段是动态渲染的,最直接的方式是通过admin_footer钩子注入JavaScript,定位到目标输入框并添加readonly属性:

function make_order_specific_fields_readonly() {
    // 仅在订单编辑页面执行脚本
    if ( get_current_screen()->id !== 'shop_order' ) {
        return;
    }
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            // 锁定订单创建日期字段
            $('input[name="_order_date"]').prop('readonly', true);
            
            // 如果你还想锁定其他字段,比如订单修改日期,可以继续添加
            $('input[name="_order_modified_date"]').prop('readonly', true);
            
            // 示例:如果要锁定订单状态下拉框(可选操作)
            $('select[name="_status"]').prop('disabled', true);
        });
    </script>
    <?php
}
add_action('admin_footer', 'make_order_specific_fields_readonly');

关键说明:

  • 我们通过get_current_screen()->id判断当前页面是订单编辑页(shop_order),避免脚本在其他后台页面无效加载。
  • 精准定位字段:你可以按下F12打开浏览器开发者工具,查看目标字段的name或id属性,替换到jQuery选择器里就能锁定任意你想设置只读的字段。
  • 属性区分:输入框用readonly锁定,下拉框这类选择控件则用disabled属性来限制修改。

为什么不用纯PHP钩子?

WooCommerce并没有直接提供修改现有订单字段属性的原生PHP钩子,因为这些字段是在元框内部直接渲染的。相比之下,用前端脚本修改属性更简单直接,完全不需要修改核心文件或编写复杂的过滤器逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:49:26