WordPress.org

Plugin Directory

PingBell for WooCommerce — Live Sales Counters, Notifications & TV Signage

PingBell for WooCommerce — Live Sales Counters, Notifications & TV Signage

Description

Your store, on a board. PingBell for WooCommerce puts a live board of your sales on any screen — revenue and orders this week, today against a goal, your top products — designed in your WordPress admin and fed by WooCommerce’s own webhooks from the moment you sign in. Nothing of the plugin runs at checkout, and it keeps no table of its own.

Make it yours. Name it, pick the colours, set a daily goal, and choose what happens when an order lands — confetti, fireworks, hearts or your own emoji, a sound from PingBell’s catalogue, and your own message. Preview it without waiting for a sale.

Then put it on a wall. When you want the board on a TV, or the same board in the PingBell phone and TV apps, sign in with PingBell: the store binds to your account, the board moves there with the design you made, the last 30 days go with it, and every order from then on arrives through WooCommerce’s own signed webhooks. Signing in is free; keeping a board up on a screen is part of a paid plan. Pair any screen with a six-letter code from this page, and disconnect whenever you like.

Why store owners use it

  • A board to design without a signup — revenue and orders this week, today against a goal, your top products: laid out with sample numbers until you connect, your store’s real ones from the moment you do.
  • Sale celebrations — every new order rings the bell, with sound and animation the whole team can feel.
  • Put it on a screen — today’s orders and revenue on a TV in the shop, office or warehouse (this is the part a plan pays for).
  • Works on your phone and TV — once connected, the same board is in the PingBell iPhone, Android, Apple TV, Fire TV, Roku and Android TV apps.
  • Other events, your way — the manual API-key flow maps counters to any WooCommerce webhook topic yourself, including add-to-cart.

What is free, and what is paid

Free, and no account needed at all: the board in your WordPress admin,
with sample numbers. Design it, set a daily goal, choose what happens when
an order lands. Nothing expires.

Free with a PingBell account: your board kept on PingBell, the phone
app that rings on every order, clocks, weather and message blocks, and the
30 days of history this plugin sends when you connect. A free account
holds one board and carries a small PingBell mark.

Paid: showing a board on a screen. Pairing a TV, tablet or spare
monitor needs a plan, and so does a link you can share; a plan also lifts
the one-board limit. The higher plans remove the PingBell mark and add
channels, which rotate several boards on one screen. Plans include a
14-day free trial the first time you subscribe.

How it works

  • Adds a PingBell page under WooCommerce PingBell with three tabs: Dashboard (the board), Design (how it looks and what an order does), and Screens & connect.
  • Before you connect, the board shows sample numbers so you can design it, nothing of the plugin runs at checkout, and nothing leaves your site.
  • Sign in with PingBell binds this store to your account. Your board, your design and your last 30 days go with it, and the plugin creates the signed WooCommerce webhooks that keep it fed.
  • Screens: open the pairing screen on any TV, tablet or browser and type the six letters it shows. Unpair from the same place.
  • Disconnect anytime: PingBell forgets the store, the plugin removes the webhooks it created, and your counters and history stay in your PingBell workspace.
  • Other ways to connect — the six-letter connect code and the manual API key — are still there, under a fold.

Supported WooCommerce events

Signing in creates three counters and the webhooks that feed them:

  • New orders (order.created) — carries both the order count and the revenue.
  • New customers (action.wc_pingbell_new_customer_order) — a webhook signing in creates for PingBell’s New customers counter, an order from someone who had not bought before. WooCommerce has no event for this, and nothing in this version fires it: PingBell is learning to tell a first order from a repeat one on its own side, from the orders it already receives, and the counter fills from then. It would carry the order’s id and nothing else.
  • Completed orders (action.woocommerce_order_status_completed).

The manual API-key flow can still point a counter at any WooCommerce webhook topic, including action.woocommerce_add_to_cart.

External service

This plugin talks to the PingBell service (https://pingbell.io — terms, privacy). What goes where:

  • Nothing, until you connect. Before you sign in or enter an API key, your server makes no request to PingBell, and reads none of your orders: the board in your admin shows sample numbers.
  • Signing in: your browser goes to https://my.pingbell.io to sign in and approve, then your server exchanges a one-time code there for a credential it keeps. That credential never reaches your browser.
  • Connecting: your server sends your store name, currency and timezone, the design you made, and — once — your history up to the moment the webhooks took over: the last 30 days as daily totals (orders, revenue, completed), the last 72 hours as hourly totals (orders, revenue, completed), your store’s lifetime totals (orders, revenue, completed), and up to 50 top products by name with their order count and revenue, overall and per day — ranked among the first 200 distinct products the read meets, newest orders first. These are counts and sums only: no customer’s name, email or address is in them, and no customer count — the plugin keeps no record of who has bought.
  • Afterwards: WooCommerce sends each new order to https://hooks.pingbell.io over HTTPS, signed (X-WC-Webhook-Signature), using its own native webhook mechanism; older manual API-key connections use https://app.pingbell.io. This is WooCommerce’s standard order webhook, and WooCommerce puts the whole order in it — including the customer’s name, email and billing and shipping addresses. The plugin does not choose or trim that content. The new-customer and completed-order webhooks carry only the order’s id. Your server asks https://my.pingbell.io for the board and its numbers while the PingBell page is open in your admin, and to pair or unpair a screen when you ask it to.
  • Celebration sounds: when the board rings (or you press Play on the Design tab), your browser streams an audio file from https://my.pingbell.io/sounds/. Nothing about your store goes with it.
  • Deleting the plugin removes every WooCommerce webhook in your store that delivers to PingBell — including one an older version left behind, and even if WooCommerce is deactivated at the time — and tells PingBell the store is gone.

The board inside your WordPress admin needs no PingBell account at all. Signing in (which the button can do for you in seconds) puts it in the PingBell apps and on your phone; showing it on a TV or another screen is part of a paid plan.

Screenshots

Installation

  1. Install the plugin
  • Upload the plugin folder to /wp-content/plugins/ or
  • Upload the ZIP via Plugins Add New Upload Plugin.
  1. Activate
  • Go to Plugins Installed Plugins and activate PingBell for WooCommerce.
  1. Look at your board
  • Go to WooCommerce PingBell. The Dashboard shows the board with sample numbers, so you can see it and make it yours under Design before anything is connected.
  • Open Design to name it, set the colours, the daily goal, and what happens when an order lands.
  1. Put it on a screen (optional)
  • Open Screens & connect and click Sign in with PingBell.
  • Sign in or create your free account, and approve the store.
  • Your board, your design and your last 30 days move to PingBell, and the plugin creates the webhooks that keep it fed.
  • Open the pairing page on a TV, tablet or browser and type the six letters it shows into Screens.
  1. Or connect with a code or an API key
  • Under Other ways to connect: the six-letter connect code, or paste a PingBell API key and map counters to WooCommerce events yourself.

FAQ

Do I need a PingBell account?

Not to design the board — that works the moment you activate the plugin, with sample numbers. An account (free, and the button creates one) is what makes it live: your orders reach PingBell as they happen, and the board shows your real numbers here, in the PingBell apps and on your phone. Showing it on a TV, or sharing it by link, is part of a paid plan.

Is it free?

The board in your admin is free, with no time limit. So is connecting your store and running your counters. Showing a board on a TV or any other screen is part of a paid plan, which includes a 14-day free trial the first time you subscribe.

Does anything leave my site before I connect?

Your server sends nothing. The one exception, stated plainly: when the board rings, your browser streams the sound file from my.pingbell.io. Nothing about your store goes with it.

What is sent when I do connect?

Your store name, currency and timezone; the design you made; and, once, your history as totals: the last 30 days by day, the last 72 hours by hour, your lifetime totals up to that moment, and up to 50 top products by name with their orders and revenue. Those are counts and sums, with no customer’s name, email or address in them. After that, WooCommerce sends each new order through its own signed webhook, and WooCommerce’s standard order webhook contains the whole order, customer details included. See External service above.

How exact is the history?

Exact to the second the webhooks were made, with three edges worth knowing. Your history is cut where each webhook begins, so nothing is counted twice — and an order placed in the very second a webhook was being made can fall on neither side. If setting up took more than a day (a store that could not create its webhooks for a while), the newest days and hours go and the oldest of the thirty make room — the board reads the newest. And if WooCommerce had switched one of the webhooks off after repeated failed deliveries, the orders from that time were never sent: signing in switches it on again, but cannot know what was missed.

What WooCommerce events are supported?

Signing in sets up New orders (order.created, which carries the count and the revenue), New customers (action.wc_pingbell_new_customer_order — a webhook nothing fires in this version; the counter reads zero until PingBell can tell a first order from a repeat one on its own side) and Completed orders (action.woocommerce_order_status_completed). The manual API-key flow can point a counter at any WooCommerce topic, including Product added to cart (action.woocommerce_add_to_cart).

What URL do the webhooks use?

https://hooks.pingbell.io/log?id=PINGBELL_ID, signed with a secret (X-WC-Webhook-Signature) so a forged request cannot inflate your counters. Older manual API-key connections use https://app.pingbell.io/log?id=PINGBELL_ID.

What happens when I disconnect?

PingBell forgets this store and stops trusting it, the plugin deletes the webhooks it created, and your counters, boards and history stay in your PingBell workspace. Reconnecting picks them back up.

What happens if I delete the plugin?

The same, and more thoroughly: every WooCommerce webhook in your store that delivers to PingBell goes, not only the ones this version recorded, and it goes even if WooCommerce is deactivated when you delete us. Then every option and every cached value this plugin stored, any table a development build of 2.1.0 left behind, and its background jobs — on every site of a network. Nothing of ours was ever written to your orders. Deactivating does nothing on purpose — deactivating to debug a theme, or a host deactivating plugins during an update, is not a request to disconnect.

Does this plugin store any personal data?

It stores your design, the credential for your PingBell account (if you connected), the ids of your counters and webhooks, and — with an API key — that key. It keeps no table of its own and no copy of any order, customer name, email or address. The one time it reads your orders is the history it sends when you connect — thirty days of daily totals, three days of hourly totals, your top products and your lifetime totals, read in the background — and it writes nothing to your orders.

Before you connect, the live-orders strip shows sample names — nobody’s; this page reads nothing from your orders. Once connected, the board is PingBell’s, drawn from the orders WooCommerce sends it (the external-service section says what those carry).

Will this slow down my store?

No. Nothing of this plugin runs when an order is placed, paid or changed: WooCommerce’s own webhooks send the order to PingBell, and PingBell does the counting. The one time your orders are read is when you connect — your last 30 days and your lifetime totals, read in the background through WooCommerce’s own job runner (Action Scheduler), a small batch at a time, each batch stopping after a few seconds with a pause before the next — on a very large store that takes a while (roughly a minute of background work per hundred thousand orders, spread over longer by the pauses), and the Screens & connect tab shows how far it has got; the board on the wall fills from it when it is done, and every new order is counted meanwhile. Once connected, the Dashboard asks PingBell for the board at most every 15 seconds while it is open, shares one answer between every open tab, never starts a new refresh before the last one has answered, and slows down when PingBell is slow.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“PingBell for WooCommerce — Live Sales Counters, Notifications & TV Signage” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.1.1

  • Fixed: the sound chip no longer covers a figure. The small “Sound on” control sat over the first tile of the totals strip on the new board; it now sits in the header strip, between the PingBell mark and the live badge. A board without a header strip keeps it in the corner it always had.
  • Fixed: the sample board’s hour-by-hour chart labelled every hour “12a”; the hours read as hours now.
  • Fixed: a long value in the Your store card could break in the middle of a word.

2.1.0

  • Changed: nothing of this plugin runs at checkout, and it keeps no table of its own. 2.0.0 drew the Dashboard from your orders on every load — thirty days of them, every time, however large the store. This version counts nothing itself: WooCommerce’s own webhooks send each order to PingBell from the moment you sign in, and PingBell counts. Before you connect, the board shows sample numbers, said so on the page, so you can design it.
  • Changed: your history goes with the connect, read in the background. When you sign in, your last 30 days by day, the last 72 hours by hour, your top products and your lifetime totals are read a small batch at a time through WooCommerce’s job runner and sent once — so the board on the wall starts from where your store already is, not from zero, and the totals strip can count all time.
  • Fixed: orders sent to PingBell carried an error instead of the order. The webhooks this plugin created (in 1.1 and 2.0.0) were saved without a WordPress user, and WooCommerce builds each order it sends as that user — so an order could arrive as “Sorry, you cannot view this resource” rather than its total and items. New webhooks are created as the store manager who connected, and the first time you open wp-admin after updating, every existing PingBell webhook without a user is given one. Nothing to do on your side.
  • New: a board worth putting on the wall. The board is rebuilt to a new design — a header strip with a live indicator and the time, today’s revenue as a chart beside a goal bar, a row of stat tiles with icons, your top products, and a live-orders strip along the foot. Your colours now reach the whole board rather than some of the text.
  • New: New customers takes the place of Completed orders on the board, and the totals strip calls the same figure Total customers. The counter is created when you sign in and fills as PingBell learns to tell a first order from a repeat one on its side; until then it reads zero. Stores that signed in with 2.0.0 keep the counters they have.
  • New: the totals strip counts what you choose — the last 30 days, or every order your store has ever taken — and says which. The Design preview follows the choice as you click it.
  • Changed: the Dashboard’s refresh waits for the last one to answer, shares one answer between every open tab, and backs off when PingBell is slow, instead of asking again every 15 seconds regardless.
  • Changed: the number-style choice is gone and every board draws plain digits. The split-flap style did not fit the new layout; it comes back with the older board styles in a later release.
  • New: the Design tab stays after you connect. Colours, name, goal and what happens when an order lands are still yours to change here; Save builds your board on PingBell from them, and every screen follows. The board editor on PingBell is there beside it, for a plan.
  • Fixed: the connected card says the right places — a link to my.pingbell.io/pair for pairing a screen, “no plan yet” in words, and what Finish setup did; the accent colour reaches every tile’s icon and the numbers colour every figure, the leaderboard, the ticker and the chart included.
  • Changed: a store gets a workspace of its own on PingBell when you sign in — never one another marketplace app set up, never one another store of yours already lives in. A store you connected before this release keeps its workspace; Disconnect and sign in again to move it.

2.0.0

  • New: the board lives in your admin, free, before any account — drawn from your own WooCommerce orders (this week, today against a goal, top products), in your store’s timezone. Nothing leaves your site.
  • New: Design tab — name, number style, colours, daily goal, and what happens when an order lands: confetti, fireworks, hearts or your own emoji, a sound from PingBell’s catalogue, your own message. Preview it without waiting for a sale.
  • New: Sign in with PingBell — bind the store to your account in one round trip. Your board and design move to PingBell, your last 30 days go with them, and every order after that arrives through signed WooCommerce webhooks. The credential stays on your server.
  • New: Screens tab — pair a TV, tablet or browser with a six-letter code, see what is paired, unpair it.
  • New: Disconnect, and a real uninstall — PingBell forgets the store, and deleting the plugin removes every WooCommerce webhook that delivers to PingBell (even with WooCommerce deactivated, and on every site of a network) along with every option and cached value. Your counters and history stay in your workspace.
  • Fixed: a completed-orders webhook that never delivered anything. WooCommerce does not accept order.status_completed as a webhook topic — it stores an empty one and saves without complaint — so that connection was silent. The plugin now uses the matching action hook (action.woocommerce_order_status_completed) and refuses any topic WooCommerce would not accept instead of creating a webhook that cannot work. Reconnect to replace an affected webhook.
  • The six-letter connect code and the manual API key remain, under “Other ways to connect”.

1.1.0

  • New: Connect with PingBell — 1-click connect flow. Sign in (or create an account), pick which store events ring the bell, and the plugin creates counters and webhooks for you automatically.
  • New: guided setup (connect events screen) with your live styled board embedded right on the settings page.
  • New: per-connection deep links into PingBell’s board editor and the live board view.
  • New: 1-click connections deliver to PingBell’s hardened ingest endpoint and are cryptographically signed (X-WC-Webhook-Signature), so counters can’t be inflated by forged requests.
  • Declared WooCommerce HPOS (custom order tables) compatibility.
  • The manual API-key flow is unchanged and remains fully supported (now under “Advanced”).
  • Existing connections keep working exactly as before.

1.0.0

  • Initial release of PingBell for WooCommerce.
  • Fetch PingBells via API key and create basic event-to-counter connections.