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

Woocommerce订单包含普通商品时高亮显示后台订单列表对应行

实现方案

你可以通过三段自定义代码实现该需求,所有代码可以添加到你当前使用主题的functions.php文件末尾,或者自定义功能插件的代码文件中。

步骤1:给订单添加「包含普通商品」的标识

首先在订单创建/更新时自动检测订单内是否存在非订阅类的普通商品,将结果作为自定义字段存入订单元数据中:

// 检测订单是否包含普通商品,保存元字段
add_action( 'woocommerce_checkout_update_order_meta', 'ywcsm_mark_order_has_simple_product', 10, 2 );
add_action( 'woocommerce_process_shop_order_meta', 'ywcsm_mark_order_has_simple_product', 10, 2 );
function ywcsm_mark_order_has_simple_product( $order_id ) {
    $order = wc_get_order( $order_id );
    $has_simple = false;
    
    foreach ( $order->get_items() as $item ) {
        $product = $item->get_product();
        // 判断是否为YITH订阅商品,非订阅商品则标记为存在普通商品
        if ( ! $product->is_type( 'ywsbs-subscription' ) ) {
            $has_simple = true;
            break;
        }
    }
    
    update_post_meta( $order_id, '_has_simple_product', $has_simple ? 'yes' : 'no' );
}

步骤2:给后台订单列表行添加自定义CSS类

根据第一步存储的元字段,给包含普通商品的订单行额外添加CSS类,方便后续样式控制:

// 给订单列表行添加自定义类
add_filter( 'post_class', 'ywcsm_add_order_highlight_class', 10, 3 );
function ywcsm_add_order_highlight_class( $classes, $class, $post_id ) {
    global $pagenow, $post_type;
    
    // 仅在后台订单列表页生效
    if ( is_admin() && $pagenow === 'edit.php' && $post_type === 'shop_order' ) {
        $has_simple = get_post_meta( $post_id, '_has_simple_product', true );
        if ( $has_simple === 'yes' ) {
            $classes[] = 'order-has-simple-product';
        }
    }
    return $classes;
}

步骤3:添加后台自定义样式实现高亮

给后台注入自定义CSS,你可以自行调整颜色、边框等样式属性匹配你的使用习惯:

// 后台订单列表高亮样式
add_action( 'admin_head', 'ywcsm_add_order_highlight_style' );
function ywcsm_add_order_highlight_style() {
    global $pagenow, $post_type;
    if ( is_admin() && $pagenow === 'edit.php' && $post_type === 'shop_order' ) {
        ?>
        <style>
            .order-has-simple-product {
                background-color: #fff3cd !important; /* 浅黄色高亮,可自行修改 */
                border-left: 4px solid #ffc107 !important; /* 左侧黄色提示条 */
            }
        </style>
        <?php
    }
}

补充说明

  • 代码添加完成后,新产生的订单会自动识别标记,历史订单可以批量更新后生效
  • 你可以修改CSS部分的background-color、border属性自定义高亮效果,比如改成红色、绿色等醒目的样式
  • 若后续需要移除该功能,删除添加的对应代码即可,不会对站点现有功能产生影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:54:01