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