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 Wordpress如何覆盖函数从wc获取订单报告数据管理报告_Php_Wordpress_Woocommerce_Status - Fatal编程技术网

Php Wordpress如何覆盖函数从wc获取订单报告数据管理报告

Php Wordpress如何覆盖函数从wc获取订单报告数据管理报告,php,wordpress,woocommerce,status,Php,Wordpress,Woocommerce,Status,我想更改class wc admin report.php中的get\u order\u report\u data()函数的一部分,而不触及核心 我想更改订单状态过滤器,现在是: $query['where'] = " WHERE posts.post_type = 'shop_order' AND posts.post_status = 'publish' AND tax.taxonom

我想更改
class wc admin report.php
中的
get\u order\u report\u data()
函数的一部分,而不触及核心

我想更改订单状态过滤器,现在是:

$query['where']  = "
            WHERE   posts.post_type     = 'shop_order'
            AND     posts.post_status   = 'publish'
            AND     tax.taxonomy        = 'shop_order_status'
            AND     term.slug           IN ('" . implode( "','", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "')
            ";
我想将term.slug更改为
自定义\u状态


我现在不知道如何使用插件或类似的东西来实现这一点,这里应用了过滤器,这将允许您随意更改
term.slug

在自定义插件(或主题的functions.php)中,添加过滤器:

function override_order_report_data_terms($slug_array) {
    return array('custom_status');
}
add_filter('woocommerce_reports_order_statuses', 'override_order_report_data_terms');

阅读更多信息。

这个问题似乎有点混乱,但这是我最好的解释

如果要在查询中添加要捕获的自定义状态,请编写如下筛选函数:

function woocommerce_reports_order_statuses_filter( $order_status ){
    $order_status[] = 'custom_status';
    return $order_status;
}
add_filter( 'woocommerce_reports_order_statuses', 'woocommerce_reports_order_statuses_filter' );
稍后在函数中,该数组中的所有状态都会在实际查询字符串的值后面追加“wc-”。所以你需要你的状态才能有前缀。或您可以使用更高版本的过滤器修改查询字符串:

function woocommerce_reports_get_order_report_query_filter( $query ){
    $custom_status = 'custom_status';
    $query['where'] = substr_replace( $query['where'], $custom_status , strpos( $query['where'], 'wc-' . $custom_status), strlen('wc-' . $custom_status)  );
    return $query;
}
add_filter( 'woocommerce_reports_get_order_report_query', 'woocommerce_reports_get_order_report_query_filter' );

所有这些过滤器代码都会添加到主题
functions.php
或自定义插件代码中。

我找不到名为“获取订单报告数据”的过滤器。我错过了什么吗?@JamesJones。。。我不知道那是从哪里来的。这应该是OP问题中的过滤器。哦,当然。哈哈,我不相信OP的问题。他们似乎是疯子的胡言乱语。