Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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
Wordpress 如何按订单状态筛选_Wordpress_Filter_Woocommerce_Export_Orders - Fatal编程技术网

Wordpress 如何按订单状态筛选

Wordpress 如何按订单状态筛选,wordpress,filter,woocommerce,export,orders,Wordpress,Filter,Woocommerce,Export,Orders,我在WoodPress上使用WooCommerce,现在一个名为Parcelware的插件允许我导出两个日期之间的任何订单,请参见下面的代码。我需要添加一个过滤器,这意味着只输出“处理”订单 如果有人能帮助我,那就太好了 我在WooCommerce上找到了这个链接,不确定它是否有帮助 /** *从数据库中读取顺序变量并将其存储在 *它们各自的可变插槽。此函数称为 *关于对象的创建。 * *@摘要 */ 抽象函数读取顺序设置(); /** *接到命令 * *@返回混合顺序 */ 静态函数ge

我在WoodPress上使用WooCommerce,现在一个名为Parcelware的插件允许我导出两个日期之间的任何订单,请参见下面的代码。我需要添加一个过滤器,这意味着只输出“处理”订单

如果有人能帮助我,那就太好了

我在WooCommerce上找到了这个链接,不确定它是否有帮助

/**
*从数据库中读取顺序变量并将其存储在
*它们各自的可变插槽。此函数称为
*关于对象的创建。
* 
*@摘要
*/
抽象函数读取顺序设置();
/**
*接到命令
* 
*@返回混合顺序
*/
静态函数get_orders($date_from,$date_to){
//获取两个定义日期之间的订单,此函数使用筛选器。
定义('PARCELWARE\u GET\u ORDERS\u FILTER\u DATE\u FROM',$DATE\u FROM);
定义('PARCELWARE_GET_ORDERS_FILTER_DATE_TO',$DATE_TO');
添加过滤器('posts'u where',array('u'u'CLASS'u'order'page'u get'u orders'u where'u dates'u between');
$orders=get_posts(数组)(
“numberposts”=>-1,
“偏移量”=>0,
'orderby'=>'post_date',
“订单”=>“描述”,
“post_type”=>“shop_order”,
“抑制_过滤器”=>false
) );
删除过滤器('posts_where'、'order_page_get_orders_where_dates_between');
退回$orders;
}
/**
*在get_posts调用上应用where子句
* 
*@param string$where
*@returnstring$where
*/
静态函数顺序页面获取顺序日期之间($where){
全球$wpdb;
如果(!defined(!PARCELWARE_GET_ORDERS_FILTER_DATE_FROM)| |!defined(!PARCELWARE_GET_ORDERS_FILTER_DATE_TO)))
返回$where;
$where.=$wpdb->prepare(“和post_日期>='%s',PARCELWARE_GET_ORDERS_FILTER_date_FROM”);

$where.=$wpdb->prepare(“和post_date订单状态”是一种分类法,因此下面应该为您筛选:

static function get_orders( $date_from, $date_to ){
    // Get orders between the two defined dates, this function uses a filter.
    define('PARCELWARE_GET_ORDERS_FILTER_DATE_FROM', $date_from );
    define('PARCELWARE_GET_ORDERS_FILTER_DATE_TO', $date_to );
    add_filter('posts_where', array( __CLASS__, 'order_page_get_orders_where_dates_between') );
    $orders = get_posts( array(
        'numberposts' => -1,
        'offset' => 0,
        'orderby' => 'post_date',
        'order' => 'DESC',
        'post_type' => 'shop_order',
        'suppress_filters' => false,
        'tax_query' => array(
                array(
                    'taxonomy' => 'shop_order_status',
                    'field' => 'slug',
                    'terms' => array('processing')
                )
            )
    ) );
    remove_filter('posts_where', 'order_page_get_orders_where_dates_between');

    return $orders;
}

不幸的是,这并没有起作用,它仍然会在两个日期之间导出所有订单。
static function get_orders( $date_from, $date_to ){
    // Get orders between the two defined dates, this function uses a filter.
    define('PARCELWARE_GET_ORDERS_FILTER_DATE_FROM', $date_from );
    define('PARCELWARE_GET_ORDERS_FILTER_DATE_TO', $date_to );
    add_filter('posts_where', array( __CLASS__, 'order_page_get_orders_where_dates_between') );
    $orders = get_posts( array(
        'numberposts' => -1,
        'offset' => 0,
        'orderby' => 'post_date',
        'order' => 'DESC',
        'post_type' => 'shop_order',
        'suppress_filters' => false,
        'tax_query' => array(
                array(
                    'taxonomy' => 'shop_order_status',
                    'field' => 'slug',
                    'terms' => array('processing')
                )
            )
    ) );
    remove_filter('posts_where', 'order_page_get_orders_where_dates_between');

    return $orders;
}