Title: RiskyBuyer – Customer Flags for WooCommerce
Author: Dan
Published: <strong>July 2, 2026</strong>
Last modified: July 2, 2026

---

Search plugins

![](https://ps.w.org/riskybuyer/assets/banner-772x250.png?rev=3594430)

![](https://ps.w.org/riskybuyer/assets/icon.svg?rev=3594418)

# RiskyBuyer – Customer Flags for WooCommerce

 By [Dan](https://profiles.wordpress.org/winter2007d/)

[Download](https://downloads.wordpress.org/plugin/riskybuyer.1.0.3.zip)

 * [Details](https://wordpress.org/plugins/riskybuyer/#description)
 * [Reviews](https://wordpress.org/plugins/riskybuyer/#reviews)
 *  [Installation](https://wordpress.org/plugins/riskybuyer/#installation)
 * [Development](https://wordpress.org/plugins/riskybuyer/#developers)

 [Support](https://wordpress.org/support/plugin/riskybuyer/)

## Description

RiskyBuyer lets your team keep a list of problematic customers (uncollected COD

shipments, fake orders, abusive behaviour, etc.) and flags their orders right in
the WooCommerce orders list.

Each entry is a phone and/or a name, with a reason and an optional note. When a

customer’s order matches an entry (by normalized phone OR name), the order row is
highlighted with a warning badge — and you get a clear warning panel on the order
edit screen, with quick links to that buyer’s other orders.

#### Features

 * **Searchable, sortable list** — one table of flagged buyers. Filter by phone
   
   and/or name (with an AND/OR toggle) and by reason, and sort by any column — all
   instantly in the browser.
 * **Orders list flagging** — a warning badge and colored bar on orders of
    blacklisted
   customers. Computed server-side, so it works across pagination. Supports both
   HPOS (the new orders screen) and the legacy screen.
 * **Order edit panel** — a warning when the buyer is blacklisted (with links to
   
   their other orders on your site), or a one-click “mark client” form otherwise.
 * **Add one or in bulk** — add a single buyer or paste a list (one per line). You
   
   can also search your existing customers (by name or phone, taken from your orders)
   and pick one to fill the form.
 * **Phone normalization** — numbers are stored in international “+CC” form, so 
   the
    same person matches across formatting differences.
 * **Roles** — anyone who can edit orders (`edit_shop_orders`) can add; only
    administrators(`
   manage_options`) can edit or delete.
 * **Optional shared list** — opt-in synchronization with a central service (see
   
   the “External services” section), off by default.

#### Architecture

The plugin talks to its data through a storage-provider interface. Today it uses

a local database table; the design is ready for a future shared/central service 
so multiple sites can contribute to and read the same list.

### External services

This plugin can optionally synchronize with a central, shared blacklist service

at **riskybuyer.com** so that your checks are extended with phone numbers reported
by other sites. **This is opt-in and disabled by default** — no data is sent or 
received until you enable it under WooCommerce  Risky buyers  Settings.

When sync is enabled:

 * The plugin periodically requests the shared list (GET) to extend your local
    
   checks. Reading the list is open.
 * If you have a write API key, the plugin sends your own entries to the service
   
   to be shared: phone, name, reason, note, and your site’s domain.

The service is provided by the plugin author. Terms of Use:
 https://riskybuyer.
com/terms — Privacy Policy: https://riskybuyer.com/privacy

## Screenshots

[⌊List tab — flagged buyers with instant phone/name search (AND/OR), reason filter
and click-to-sort columns.⌉⌊List tab — flagged buyers with instant phone/name search(
AND/OR), reason filter and click-to-sort columns.⌉[

List tab — flagged buyers with instant phone/name search (AND/OR), reason filter
and click-to-sort columns.

[⌊Add tab — add one buyer or in bulk, or pick an existing customer from your orders.⌉⌊
Add tab — add one buyer or in bulk, or pick an existing customer from your orders
.⌉[

Add tab — add one buyer or in bulk, or pick an existing customer from your orders.

[⌊Settings — opt-in synchronization with the central shared list.⌉⌊Settings — opt-
in synchronization with the central shared list.⌉[

Settings — opt-in synchronization with the central shared list.

[⌊Order edit screen — a prominent warning banner and a side panel when the buyer
is flagged.⌉⌊Order edit screen — a prominent warning banner and a side panel when
the buyer is flagged.⌉[

Order edit screen — a prominent warning banner and a side panel when the buyer is
flagged.

[⌊WooCommerce orders list — a warning badge on a flagged buyer's order (works across
pagination; HPOS and legacy).⌉⌊WooCommerce orders list — a warning badge on a flagged
buyer's order (works across pagination; HPOS and legacy).⌉[

WooCommerce orders list — a warning badge on a flagged buyer’s order (works across
pagination; HPOS and legacy).

## Installation

 1. Upload the `riskybuyer` folder to `/wp-content/plugins/`, or install it from the
    Plugins screen.
 2. Activate the plugin (this creates the database table).
 3. Manage the list under **WooCommerce  Risky buyers**.

Requires WooCommerce.

## FAQ

### How are duplicate / matching customers detected?

Phones are normalized to their last 9 digits and names are lowercased with
 punctuation
removed, so the same person matches across formatting differences.

### Does it work with High-Performance Order Storage (HPOS)?

Yes. The plugin declares HPOS compatibility and reads orders from the current
 status
view server-side.

### Who can add or remove entries?

Anyone who can edit orders (`edit_shop_orders`) can add. Only administrators
 (`
manage_options`) can edit or delete.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“RiskyBuyer – Customer Flags for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Dan ](https://profiles.wordpress.org/winter2007d/)

[Translate “RiskyBuyer – Customer Flags for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/riskybuyer)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/riskybuyer/), check
out the [SVN repository](https://plugins.svn.wordpress.org/riskybuyer/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/riskybuyer/) by 
[RSS](https://plugins.trac.wordpress.org/log/riskybuyer/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.3

 * Added a “Settings” link to the plugin’s row on the Plugins screen.

#### 1.0.2

 * Renamed to “RiskyBuyer – Customer Flags for WooCommerce”.
 * Orders-list styles and script are now loaded with the standard WordPress enqueue
   functions instead of inline tags.

#### 1.0.1

 * Order screen: the “Risky buyer” box now shows a single “Mark as problematic” 
   button and reveals the reason/note form only when you click it — less clutter
   on every order.

#### 1.0.0

 * First public release.

#### 0.6.11

 * Add tab: fixed the icon vertical alignment on the “Add one client” / “Bulk add”
   buttons (dashicons now sit level with the text).

#### 0.6.10

 * Settings: the “data sent to the server” note and the sync status (last update/
   downloaded / new) now appear as hover tooltips behind small info / help icons
   next to the enable-sync checkbox, instead of permanent paragraphs.
 * Settings: key check now tells an unreachable server apart from an actually invalid
   key (no more false “invalid key” when the server is just down).

#### 0.6.9

 * Customer search: phone numbers shown normalized (+CC), duplicate spellings/formats
   of the same buyer collapsed into one result, and the matching order numbers listed
   in parentheses.

#### 0.6.8

 * Add tab: nicer “Add one client” / “Bulk add” buttons (card style, accent icons,
   hover lift, solid active state).

#### 0.6.7

 * Fixed: the customer search dropdown now appears (its results box was nested in
   a

<

p>, which browsers auto-close before block elements, breaking positioning). Added
a loading spinner and an error state.
 * Add tab: the single and bulk forms are 
now behind “Add one client” / “Bulk add” buttons; clicking reveals the fields, which
stay open (empty) after each add so you can keep adding until you reload. * Add 
tab: reason defaults to the top option and remembers your last-used reason for the
next entry.

#### 0.6.6

 * Add tab: the customer search now sits above the form (outside it), so pressing
   Enter searches instead of submitting an empty entry; Enter also triggers the 
   search immediately.

#### 0.6.5

 * Add tab: search existing shop customers (by name or phone, pulled from your orders)
   and pick one to fill in the name and phone instantly.

#### 0.6.4

 * Settings: the API key locks (grey, read-only) once validated for this site, with
   a red x to clear it; it is checked once (on entry/load), not continuously.
 * Settings: Sync now / Push are color-coded icon buttons next to the server URL;
   Push appears only with a valid write key; both save settings first.
 * Sync status now shows how many entries are new in the last sync, not just the
   total downloaded.
 * List: click any column header to sort (default: date, newest first).

#### 0.6.3

 * Phone numbers are normalized on save to international +CC form (00 -> +, national
   leading 0 -> country code; default +359, filterable).
 * Order banner now links to the buyer’s other orders on this site (excluding the
   one open).
 * List: centered cell values; Edit/Delete shown as icons; reason filter and reason
   dropdowns color-coded to match the list.
 * Settings: clearer wording for the sync status; the “data sent” note moved under
   the sync panel; constrained width.

#### 0.6.2

 * Admin: removed the redundant Check tab — the List tab now filters instantly in
   the browser (phone/name with AND/OR + reason, no reload).
 * Admin: cleaner Add/Edit forms and centered, bold table headers.

#### 0.6.1

 * Passes Plugin Check with zero errors and warnings (security/SQL/i18n).

#### 0.6.0

 * Renamed to RiskyBuyer (slug, text domain, identifiers) to match the project and
   site; data is migrated automatically on update.
 * Tested up to WordPress 7.0.

#### 0.5.0

 * Settings tab is now AJAX: enabling sync reveals the URL/key fields and saves 
   automatically (no reload, no Save button). The API key is validated against the
   server; the “Push my list” button appears only for a valid write key.

#### 0.4.2

 * AND/OR toggle added to the Check tab search too (not only the List tab).

#### 0.4.1

 * Prominent banner on the order screen when the customer is on the problem list.
 * List tab: separate phone/name search (LIKE) with an AND/OR toggle (AND by default).
 * Daily sync moved to ~03:00 site time.

#### 0.4.0

 * Optional synchronization with the central shared blacklist (riskybuyer.com), 
   opt-in and off by default.
 * Settings tab: enable sync, server URL, API key, Sync now, Push my list.
 * Checks are extended with cached server phone numbers; local entries always stay
   local.

#### 0.3.0

 * Internationalized: English source strings with full translation support; ships
   a Bulgarian (bg_BG) translation.
 * Unique plugin prefix across classes, options, table, AJAX actions and hooks.
 * Check tab now does partial (LIKE) matching on phone or name, newest first.
 * Admin page moved under the WooCommerce menu (just before Settings).
 * Declared HPOS compatibility; added uninstall cleanup and GPL license.

#### 0.2.0

 * Admin page reorganised into tabs: Check / List / Add.
 * Check tab: exact match plus possible (partial) matches.
 * Bulk add (one client per line; batch reason/note; existing entries skipped).
 * Moved the admin page under the WooCommerce menu.
 * Declared HPOS compatibility; load text domain.

#### 0.1.0

 * Initial release: storage-provider architecture, local table, matching by
    phone
   or name, orders-list flagging, order metabox, management page.

## Meta

 *  Version **1.0.3**
 *  Last updated **12 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [blacklist](https://wordpress.org/plugins/tags/blacklist/)[customers](https://wordpress.org/plugins/tags/customers/)
   [fraud](https://wordpress.org/plugins/tags/fraud/)[orders](https://wordpress.org/plugins/tags/orders/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/riskybuyer/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/riskybuyer/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/riskybuyer/reviews/)

## Contributors

 *   [ Dan ](https://profiles.wordpress.org/winter2007d/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/riskybuyer/)