如何重命名WooCommerce中的“wc-checkout-draft”订单状态?
重命名WooCommerce的“wc-checkout-draft”订单状态标签
wc-checkout-draft是WooCommerce的结账草稿专属状态,它不属于默认的订单状态集合(也就是wc_get_order_statuses()返回的列表),所以你之前使用的wc_order_statuses和woocommerce_register_shop_order_post_statuses过滤器无法生效。需要使用针对该状态的专属钩子来修改标签:
完整解决方案代码
将以下代码添加到你的主题functions.php文件或自定义插件中:
// 修改结账草稿状态的核心显示标签 add_filter( 'woocommerce_checkout_draft_order_status_label', 'rename_checkout_draft_label' ); function rename_checkout_draft_label( $label ) { return '新草稿标签'; // 替换为你需要的自定义名称 } // 修改订单编辑页面状态下拉菜单中的标签 add_filter( 'post_status_labels', 'rename_checkout_draft_post_status_label' ); function rename_checkout_draft_post_status_label( $labels ) { if ( isset( $labels['wc-checkout-draft'] ) ) { $labels['wc-checkout-draft'] = '新草稿标签'; $labels['wc-checkout-draft-count'] = _n_noop( '新草稿标签 (%s)', '新草稿标签 (%s)', 'woocommerce' ); } return $labels; } // 修改订单列表筛选栏中的状态标签 add_filter( 'views_edit-shop_order', 'rename_checkout_draft_admin_view_label' ); function rename_checkout_draft_admin_view_label( $views ) { if ( isset( $views['wc-checkout-draft'] ) ) { // 提取原标签中的计数部分,替换名称后重新拼接 $count_part = substr( $views['wc-checkout-draft'], strpos( $views['wc-checkout-draft'], '(' ) ); $views['wc-checkout-draft'] = '新草稿标签 ' . $count_part; } return $views; }
代码说明
woocommerce_checkout_draft_order_status_label:专门用于修改结账草稿状态的基础显示文本,覆盖大部分场景下的标签展示post_status_labels:修改WordPress文章状态的标签定义,确保订单编辑页面的状态下拉菜单中显示自定义名称views_edit-shop_order:调整后台订单列表顶部筛选栏中的状态选项名称,保持前后端显示一致
内容的提问来源于stack exchange,提问作者Behzad
相关产品推荐
相关产品推荐

