根据订单状态在 WooCommerce 管理订单列表中隐藏订单(table 行)
Hide orders (table rows) in WooCommerce admin order list based on order status
我需要在 WooCommerce 管理员订单列表中隐藏具有特定状态的订单。 (wp-admin/edit.php?post_type=shop_order).
CSS 不会工作,因为用户只显示了 20 行,可能有一个页面没有结果,因为许多订单可能有此状态。
我尝试了以下功能:
add_action('wc_order_statuses', 'my_statuses');
function my_statuses($order_statuses) {
unset($order_statuses['wc-my_status']);
return $order_statuses;
}
...但这与我在 谢谢页面 上的功能(如下)发生冲突,后者不再将订单状态更改为我的自定义状态,可能是因为提到的功能以上将其删除。
add_action( 'woocommerce_thankyou', 'woocommerce_thankyou_change_order_status', 10, 1 );
function woocommerce_thankyou_change_order_status( $order_id ){
if( // my custom code ) {
$order->update_status( 'my_status' );
}
}
有没有简单的方法可以从 WooCommerce 管理面板的订单列表中隐藏带有 my_status 的订单?
在 WooCommerce 管理员订单列表中隐藏包含特定订单状态的行。您可以使用 parse_query
操作挂钩。
所以你得到:
function action_parse_query( $query ) {
global $pagenow;
// Your order status to hide, must start with 'wc-'
$hide_order_status = 'wc-completed';
// Initialize
$query_vars = &$query->query_vars;
// Only on WooCommerce admin order list
if ( $pagenow == 'edit.php' && $query_vars['post_type'] == 'shop_order' ) {
// Finds whether a variable is an array
if ( is_array( $query_vars['post_status'] ) ) {
// Searches the array for a given value and returns the first corresponding key if successful
if ( ( $key = array_search( $hide_order_status, $query_vars['post_status'] ) ) !== false ) {
unset( $query_vars['post_status'][$key] );
}
}
}
}
add_action( 'parse_query', 'action_parse_query', 10, 1 );
我需要在 WooCommerce 管理员订单列表中隐藏具有特定状态的订单。 (wp-admin/edit.php?post_type=shop_order).
CSS 不会工作,因为用户只显示了 20 行,可能有一个页面没有结果,因为许多订单可能有此状态。
我尝试了以下功能:
add_action('wc_order_statuses', 'my_statuses');
function my_statuses($order_statuses) {
unset($order_statuses['wc-my_status']);
return $order_statuses;
}
...但这与我在 谢谢页面 上的功能(如下)发生冲突,后者不再将订单状态更改为我的自定义状态,可能是因为提到的功能以上将其删除。
add_action( 'woocommerce_thankyou', 'woocommerce_thankyou_change_order_status', 10, 1 );
function woocommerce_thankyou_change_order_status( $order_id ){
if( // my custom code ) {
$order->update_status( 'my_status' );
}
}
有没有简单的方法可以从 WooCommerce 管理面板的订单列表中隐藏带有 my_status 的订单?
在 WooCommerce 管理员订单列表中隐藏包含特定订单状态的行。您可以使用 parse_query
操作挂钩。
所以你得到:
function action_parse_query( $query ) {
global $pagenow;
// Your order status to hide, must start with 'wc-'
$hide_order_status = 'wc-completed';
// Initialize
$query_vars = &$query->query_vars;
// Only on WooCommerce admin order list
if ( $pagenow == 'edit.php' && $query_vars['post_type'] == 'shop_order' ) {
// Finds whether a variable is an array
if ( is_array( $query_vars['post_status'] ) ) {
// Searches the array for a given value and returns the first corresponding key if successful
if ( ( $key = array_search( $hide_order_status, $query_vars['post_status'] ) ) !== false ) {
unset( $query_vars['post_status'][$key] );
}
}
}
}
add_action( 'parse_query', 'action_parse_query', 10, 1 );