Rounds is a website-care service for developers and agencies. Your client opens a small panel on their own site, points at a text, and asks for a change or makes it. You decide which texts they may touch, and every change can be undone.
This plugin connects a WordPress site to Rounds.
It does nothing on its own: you need a Rounds account (free to start, paid plans for more sites) at
rounds-for.dev.
What the plugin lets Rounds do, and nothing else:
- Read the editable texts of a page: Elementor text, heading, button and similar widgets; block editor paragraphs, headings, list items and buttons; headings, texts, buttons, alt texts, accordions and tabs made with WPBakery, Divi 4, Avada, Beaver Builder, Bricks, SiteOrigin Page Builder, Kadence Blocks, Spectra and GenerateBlocks; and a post's title, excerpt and text custom fields (never one that holds a script link, a path or data).
- Prepare a change in the plugin's own table. The page does not change yet.
- Put a change live in the page as its builder stores it, changing only that text, after a snapshot, with a revision that names the change where WordPress keeps one.
- Roll a change back from that snapshot.
- Report versions of WordPress, PHP, the database, the theme and the plugins, so you can see what needs updating, with whether PHP has its sodium extension, the installed themes and how many administrators the site has (a number, never who).
Settings changes: off until you turn them on. Under
Settings → Rounds, an administrator can allow Rounds to change some of the site's settings, group by group, each with its own checkbox:
- site identity (title, tagline, logo, site icon); menus (classic and block theme navigation); header and footer text in widgets and template parts; the homepage and the posts page; turning comments off on a page;
- contact forms' recipient, subject and messages (Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Elementor Pro), with an e-mail to the site's admin address whenever a form's recipient changes; a page's SEO title and description (Yoast SEO, Rank Math, SEOPress, All in One SEO); 301 redirects (Redirection, Rank Math, Yoast SEO Premium), never from the login, wp-admin, the REST API, WordPress's own files or the homepage;
- media: an image's alt text, and replacing an image's file with another from the media library (its old files, every size of it, are kept for 30 days in a folder of the plugin's own, so it can be put back; the folder refuses web requests on servers that read
.htaccess, and deleting the plugin removes it);
- WooCommerce: prices, stock, short descriptions and the store notice;
- the page cache: emptying it through your cache plugin's own purge.
A setting is changed only from that fixed list, only in the groups you allow, and only after your developer approves the change in Rounds, having seen it before and after. Most can be undone. Unticking a group stops its changes at once. Who changed the choice and when is kept here and sent to Rounds (see External services).
What is kept, and for how long: who changed the choice and when, here and at Rounds, while the site is connected (Rounds keeps an older choice 24 months after it was replaced, to show what was allowed when, and deletes all of a removed site's within 30 days); each change, here, for 12 months from its last step, which is also how long it can be undone; a replaced image's old files for 30 days. Deleting the plugin removes all of it from the site.
What it can never do, by construction:
- Run code, SQL or commands sent from outside.
- Install or delete plugins or themes, or edit theme, plugin or any other code files. (The one file it ever writes is an image you replace from the media library, when you allow media changes.)
- Administer the site: create, invite or delete accounts, change anyone's role, or switch plugin or WordPress updates on or off. Those stay with the site's administrators, in WordPress.
- Read orders, form entries or comments, or delete posts.
Every request from Rounds is signed with a key made for your site alone and checked by the plugin. No WordPress password, Application Password or cookie ever leaves your site. Under
Settings → Rounds you can pause Rounds or disconnect it at any time, and see a log of everything it did.
The plugin adds nothing for your visitors: no script, no style and no request to Rounds, until you connect the site.
Source code
The plugin's PHP is in this package, readable, and follows the WordPress coding standards; its translations come from
translate.wordpress.org.
assets/rounds.js, the panel your clients open, is the readable (not minified) build of the same Rounds widget code sites load, built from one entry with esbuild; it is the whole of that code, with nothing left out.
- Install the plugin from Plugins → Add New, or upload the zip under Plugins → Add New → Upload Plugin, and activate it.
- In your Rounds account, add the site as a WordPress site and copy its one-time pairing code. A code works once, for fifteen minutes.
- In wp-admin, open Settings → Rounds, paste the code and press Connect to Rounds.
- The screen says Connected. Your site is now listed in Rounds.
To stop, press
Pause Rounds or
Disconnect on the same screen. Deleting the plugin removes its tables, settings, role and service user (on a multisite network, from every site); your pages and their revisions stay.