/**
* Add role drop-down to orders screen
*/
function doublee_add_order_user_role_filter_selectbox() {
global $typenow, $wp_query;
if ($typenow == 'shop_order') {
if (in_array($typenow, wc_get_order_types('order-meta-boxes'))) :
$user_role = '';
// Get all user roles
$user_roles = array();
foreach(get_editable_roles() as $key => $values) {
$user_roles[$key] = $values['name'];
}
// Set a selected user role
if (!empty($_GET['_user_role'])) {
$user_role = sanitize_text_field($_GET['_user_role']);
}
// Display drop down
?><select name='_user_role'>
<option value='all'><?php _e( 'All Customer Group', 'tzn' ); ?></option><?php
foreach($user_roles as $key => $value) { ?>
<option <?php selected($user_role, $key); ?> value='<?php echo $key; ?>'><?php echo $value; ?></option>
<?php } ?>
</select>
<?php
endif;
}
}
add_action('restrict_manage_posts', 'doublee_add_order_user_role_filter_selectbox');
function doublee_filter_order_list_by_role($query) {
// Exit if no user role was submitted with the filters
if(!$query->is_main_query() || !isset( $_GET['_user_role'])) {
return;
}
// Get all users with the submitted role
$ids = get_users(array('role' => sanitize_text_field($_GET['_user_role']), 'fields' => 'ID'));
$ids = array_map('absint', $ids);
// var_dump($ids);
// If retail, add guests
if(sanitize_text_field($_GET['_user_role']) == 'customer') {
$ids[] = 0;
}
// Update the query
$query->set('meta_query', array(
array(
'key' => '_customer_user',
'compare' => 'IN',
'value' => $ids,
)
));
// No users with that role, return nothing
if(empty($ids)) {
$query->set( 'posts_per_page', 0 );
}
}
add_filter('pre_get_posts', 'doublee_filter_order_list_by_role');
WooCommerce, Wordpress
Add Filter Role in admin Orders Woo
Add Filter Role in admin Orders Woo