sandywp / plugins / all-users-filter
All Users Filter
Filter, sort, and export WordPress users to CSV using powerful UI-driven meta queries (roles, dates, numeric ranges, regex, and more).
Ready in seconds.
v1.7.2 10+ installs WP 6.1+ PHP 7.4+

What you get inside
8 screensAbout this plugin
Plugin for filtering, sorting, and exporting users.
This plugin allows you to filter, sort, and export users in CSV format. You can filter users by multiple parameters, such as date, role, meta key-value, and registration date.
Usage
Use the Users → All Users Filter screen to compose conditions. Choose a meta key, operator, type, value, and (optionally) group relation to build complex queries without code. Export matched users to CSV.
Admin UI → WP_Meta_Query Mapping
- meta_key →
key - operator →
compare - Type →
type - meta_value →
value - Group relation (if available) →
relation: AND | OR
Meta keys used in tests (wp_usermeta.meta_key)
job_description(string)job_designation(string; single value OR a pipe/comma-separated list)age_in_years(integer-like string)joining_date(stored asYYYY-MM-DDor fullYYYY-MM-DD HH:MM:SS)monthly_salary(numeric, e.g.,9000)
If your dataset stores dates in a different format (e.g., DD/MM/YYYY) or salaries with commas (e.g., 9,000), see Edge Cases below.
Test Cases
The following UI test cases validate common scenarios and guardrails.
1) Single-condition functional tests
1A. Exact match on text
Intent: Users with job_description exactly “Lorem ipsum test”.
UI:
– meta_key: job_description
– operator: =
– Type: CHAR
– meta_value: Lorem ipsum test
Expected: Exact match; typically case-insensitive under default collations; respects spaces.
1B. Case-sensitive regex match
Intent: job_description starts with Lorem (case-sensitive).
UI:
– meta_key: job_description
– operator: REGEXP
– Type: BINARY
– meta_value: ^Lorem
Expected: Matches only values beginning with uppercase Lorem.
1C. Negative regex
Intent: job_description does NOT mention ipsum as a whole word.
UI:
– meta_key: job_description
– operator: NOT REGEXP
– Type: CHAR
– meta_value: (^|[^A-Za-z])ipsum([^A-Za-z]|$)
Expected: Excludes any row containing ipsum as a separate word.
2) Multi-value (roles) tests for `job_designation`
Assume values include: UI/UX Designer | QA Engineer | DevOps Engineer | Project Manager | Business Analyst | HR Manager | Data Analyst | Software Engineer | System Admin | Marketing Specialist
2A. Membership via IN
Intent: QA Engineer OR DevOps Engineer.
UI:
– meta_key: job_designation
– operator: IN
– Type: CHAR
– meta_value: QA Engineer, DevOps Engineer (comma-separated → parsed to array) Must Include at least one array
Expected: Exact membership match.
2B. Pipe-separated field using REGEXP
Intent: Field stores multiple roles separated by |; match Software Engineer or Data Analyst.
UI:
– meta_key: job_designation
– operator: REGEXP
– Type: CHAR
– meta_value: (^|\s*\|\s*)(Software Engineer|Data Analyst)(\s*\|\s*|$)
Expected: Token-aware match; avoids partials like “Engineer” inside longer tokens.
2C. Excluding a role with NOT REGEXP
Intent: Exclude HR Manager.
UI:
– meta_key: job_designation
– operator: NOT REGEXP
– Type: CHAR
– meta_value: (^|\s*\|\s*)HR Manager(\s*\|\s*|$)
Expected: Excludes any token equal to HR Manager.
3) Numeric range tests for `age_in_years`
3A. Inclusive range (happy path)
Intent: 18–45 inclusive.
UI:
– meta_key: age_in_years
– operator: BETWEEN
– Type: NUMERIC (or UNSIGNED)
– meta_value: 18,45
Expected: Ages 18 through 45 inclusive.
4) Date tests for `joining_date` on Meta Filters
Reference cut-off date: 2023-08-25 (two years ago from baseline).
4A. On or before cut-off (joined ≥ 2 years ago)
UI:
– meta_key: joining_date
– operator: <=
– Type: DATE
– meta_value: 2023-08-25
Expected: On or before 2023-08-25. If stored as DATETIME, see 4A’.
4B’. DATETIME variant
UI:
– meta_key: joining_date
– operator: <=
– Type: DATETIME
– meta_value: 2023-08-25 23:59:59
5) Salary tests for `monthly_salary` (business rule: exactly 9000)
5A. Exact numeric
UI:
– meta_key: monthly_salary
– operator: =
– Type: NUMERIC
– meta_value: 9000
5B. Degenerate range ⇒ equality
UI:
– operator: BETWEEN
– Type: NUMERIC
– meta_value: 9000,9000
10) Extending scope for multiple users
Allow non-admins (specific user ID) to use the plugin by adding this to your theme’s functions.php:
<?php
// Allow a specific user to access All Users Filter UI
function yr_theme_custom_allusfi_filter( $allowed ) {
return ( 64901 === get_current_user_id() ) ? true : $allowed;
}
add_filter( 'allusfi_allowed_user_to_filter', 'yr_theme_custom_allusfi_filter' );
Questions
- How can non-admins access the plugin?
Use the
allusfi_allowed_user_to_filterfilter (see “Extending scope for multiple users”).- Will the export sheet also include meta data if filtered with it?
Yes. If you filter by meta data, the export sheet will include the data.
- Why doesn’t a numeric filter work with Type: CHAR?
String comparisons are lexicographic. Use
NUMERIC(orSIGNED/UNSIGNED) for number ranges and equality.- What is SIGNED and UNSIGNED type?
“SIGNED” Treated as a signed integer, can represent negative, zero, and positive numbers. e.g. -2, -1, 0, 1, 2
“UNSIGNED” Only allows 0 and positive numbers (no negatives). e.g. 0, 1, 2- Does the order count filter work with WooCommerce High-Performance Order Storage (HPOS)?
Yes! The plugin is fully compatible with modern WooCommerce stores using HPOS, as well as stores using legacy custom post type (CPT) order storage.
- Can I export the filtered order counts (WooCommerce orders)?
Yes. Whenever the WooCommerce filter is enabled, your user export file will automatically include a new “Total Orders” column containing the exact order count for each filtered user.
- Can I save the filter combinations?
Yes. You can save the filter combinations. Saved filters now also persist export column preferences, active meta key columns, and any WP search term you had active, restoring the full filter state (including export settings) with a single click.
sandywp / also on the shelf
Try another plugin
Product Customer List for WooCommerce
4.9 · 9K+ installs
Display a list of customers who bought a specific product at the bottom of the product edit page in WooCommerce and send them…
PiWeb Export Customers Users & Guest customer to CSV for WooCommerce
4.7 · 1K+ installs
Export WooCommerce customer list CSV, export WooCommerce guest customer list CSV, export WordPress users CSV, Product Customer…
10+ installs
This plugin helps the woocommerce shop owners to search for customer by their mobile numbers. Plugin creats a list of customers…
Spin up a real WordPress site in seconds.
Test plugins, build a demo, hand a client a link — then squash it and start again. No local setup, no Docker.