Php 删除核心订单状态

Php 删除核心订单状态,php,woocommerce,status,Php,Woocommerce,Status,我正在尝试从woocommerce中删除3种订单状态:wc待定、wc退款和wc失败 我试图将它们从/wc order functions.php中删除,但当我删除时,我再也无法下订单了。相反,返回一个错误400,这意味着它无法将订单插入数据库 有人能解决这个问题吗?如何删除或禁用订单状态?请查看woo扩展中的常见问题: 问:为什么我不能像删除自定义状态一样删除核心订单状态 答:所有的核心订单状态,甚至是那些您通常不会在工作流中使用的状态,都由插件使用。由于这些插件期望核心订单状态出现,因此我们

我正在尝试从woocommerce中删除3种订单状态:wc待定、wc退款和wc失败

我试图将它们从
/wc order functions.php
中删除,但当我删除时,我再也无法下订单了。相反,返回一个错误400,这意味着它无法将订单插入数据库


有人能解决这个问题吗?如何删除或禁用订单状态?

请查看woo扩展中的常见问题:

问:为什么我不能像删除自定义状态一样删除核心订单状态

答:所有的核心订单状态,甚至是那些您通常不会在工作流中使用的状态,都由插件使用。由于这些插件期望核心订单状态出现,因此我们无法删除它们,以免破坏依赖它们的插件,如支付网关

如果需要,您可以编辑这些状态的名称,但不能删除这些状态或更改段塞


老问题,但我想我会帮你回答的! 要简单地隐藏选择选项,请使用以下css:

select option[value="wc-pending"], 
select option[value="wc-refunded"], 
select option[value="wc-failed"] 
{
   display: none !important;
}

由于@SweetCoder解释的很好的原因,您可能无法删除核心订单状态,但是您可以做的是隐藏它们。您的函数将如下所示:

function hide_wc_order_statuses( $order_statuses ) {

    // Hide core statuses
    unset( $order_statuses['wc-refunded'] );
    unset( $order_statuses['wc-failed'] );
    unset( $order_statuses['wc-on-hold'] );
    unset( $order_statuses['wc-cancelled'] );
    unset( $order_statuses['wc-pending'] );
    unset( $order_statuses['wc-processing'] );
    unset( $order_statuses['wc-completed'] );

    return $order_statuses;
}
add_filter( 'wc_order_statuses', 'hide_wc_order_statuses' );

非常感谢您的建议…是否有任何解决方案,至少可以在不删除功能的情况下从订单页面的列表中删除或隐藏它们,并且不破坏woocommerce的核心?是否要隐藏具有这些状态的订单?或者你想完全移除它们?你知道有一个强大的需求基础,他们把他们放在核心。这意味着你不应该试图删除它们。不,我不想删除它们。我不想出现在后端,编辑顺序部分…我正在尝试使用css和可见性元素,但它忽略了整个“编辑顺序”下拉部分。也许我可以帮你,但首先请确切指定哪些元素以及你想在哪里进行更改。Woocommerce有很多过滤器和操作,您为什么要这样做?看起来你做了很多额外的工作,却收获甚微。您如何知道订单的状态?这是一个比萨饼配送服务网站,因此客户只需要“暂停”、“删除”、“处理”、“完成”等命令。例如,我不需要在后端站点中显示等待付款。它与客户端冲突。因此,由于我无法删除此项,我在考虑是否有方法使用css隐藏。我要隐藏的字段是单击“编辑订单”时的dropdaown菜单。