Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何删除商业订单状态?_Php_Wordpress_Function_Woocommerce_Themes - Fatal编程技术网

Php 如何删除商业订单状态?

Php 如何删除商业订单状态?,php,wordpress,function,woocommerce,themes,Php,Wordpress,Function,Woocommerce,Themes,我想修改woocommerce中包含的函数。这是我编辑的函数(woocommerce/includes/wc order functions.php): 我试图在子主题的function.php文件中加载一个新函数,但似乎不起作用 我想要实现的是从状态菜单中删除订单项“Processing”。我也尝试了css,但那些不支持 select option[value="wc-processing"] {display: none !important;} 你需要使用过滤器。从前,我写了一篇我认为是

我想修改woocommerce中包含的函数。这是我编辑的函数(
woocommerce/includes/wc order functions.php
):

我试图在子主题的
function.php
文件中加载一个新函数,但似乎不起作用

我想要实现的是从状态菜单中删除订单项“Processing”。我也尝试了css,但那些不支持

select option[value="wc-processing"] {display: none !important;}

你需要使用过滤器。从前,我写了一篇我认为是很好的教程来解释

在这种情况下,最终结果将是:

function so_39252649_remove_processing_status( $statuses ){
    if( isset( $statuses['wc-processing'] ) ){
        unset( $statuses['wc-processing'] );
    }
    return $statuses;
}
add_filter( 'wc_order_statuses', 'so_39252649_remove_processing_status' );

请记住,创建订单时,处理状态是默认状态,因此您可能需要进行其他更改以补偿其删除

存在过滤器
wc\u order\u status
,以便您可以使用自己的自定义值修改
$order\u status
数组。你在
functions.php中添加了什么?
?如果(!function\u存在('wc\u get\u order\u statuses'):function wc\u get\u order\u statuses(){你能编辑你的问题来解释你在
wc\u get\u order\u statuses()中添加了什么吗
?这不是一个可插拔的函数,所以你不能覆盖它,你必须过滤结果。一旦我知道你在尝试什么,我就可以提出一些建议。@helgatheviking我需要从订单状态中删除处理状态,请帮助我我失去希望XDi love you!你也可以订购状态?我希望状态没有出现首先在菜单上。同时我正在研究你的文章!如果这是答案,请勾选绿色复选标记“接受”它。你可以对
$statuses
数组执行任何你想要的数组操作。你也可以完全定义你自己的数组。我如何设置订单?@helgatheviking这是一个新问题,但正如我所说,你可以定义一个新的
$statuses
数组并返回该数组。因此,当支付订单时,直接进入“完成”状态?
function so_39252649_remove_processing_status( $statuses ){
    if( isset( $statuses['wc-processing'] ) ){
        unset( $statuses['wc-processing'] );
    }
    return $statuses;
}
add_filter( 'wc_order_statuses', 'so_39252649_remove_processing_status' );