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

如何在WooCommerce后台优惠券列表中显示自定义优惠券类型

WooCommerce优惠券列表显示自定义类型的解决方案

你之前的代码没生效,核心原因是用错了钩子——manage_shop_coupon_posts_custom_column是用来处理新增自定义列的内容渲染,而默认的「优惠券类型(type)」列有WooCommerce专门提供的钩子:woocommerce_admin_coupon_type_column_value,这才是修改该列显示内容的正确过滤器。

正确代码示例

add_filter('woocommerce_admin_coupon_type_column_value', 'custom_coupon_type_display_in_list', 10, 2);

function custom_coupon_type_display_in_list($display_value, $coupon) {
    // 获取优惠券的折扣类型值
    $discount_type = $coupon->get_discount_type();

    // 匹配你的自定义类型,替换为对应显示文本
    if ($discount_type === 'custom_option') { // 替换成你实际的自定义类型值
        return '自定义选项'; // 替换成你要显示的文本
    }

    // 其他默认类型保留WooCommerce原有显示
    return $display_value;
}

补充说明

  1. 如果你需要直接从数据库读取discount_type元值(避免WooCommerce内置方法的潜在过滤),可以修改代码为:
add_filter('woocommerce_admin_coupon_type_column_value', 'custom_coupon_type_display_in_list', 10, 2);

function custom_coupon_type_display_in_list($display_value, $coupon) {
    $discount_type = get_post_meta($coupon->get_id(), 'discount_type', true);

    switch ($discount_type) {
        case 'fixed_cart':
            return __('固定购物车折扣', 'woocommerce');
        case 'percent':
            return __('百分比折扣', 'woocommerce');
        case 'fixed_product':
            return __('固定商品折扣', 'woocommerce');
        case 'custom_option':
            return '自定义选项';
        default:
            return $display_value;
    }
}
  1. 请确保代码中的custom_option与你添加到下拉框的自定义类型值完全一致,显示文本可根据需求自由修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 01:16:25