5 plugins that would have saved me 40 hours this year (we generated them all with AI)
Five small-but-painful WordPress problems I kept solving the slow way. Each one is now a generated plugin I reuse across sites. Here is what they do and what they cost to make.
Over the last six months I kept a list of small WordPress problems I solved by hand on multiple client sites, usually by editing functions.php or pasting a snippet from a 2019 blog post. Five of them I have now turned into proper generated plugins. This is what they do, what they cost to generate, and how much time I had been losing.
1. "Disable WooCommerce admin bloat when logged in as customer"
Customers sometimes get a subscriber role on client stores and still see the WooCommerce toolbar, the profile block, and the admin color scheme. It looks unprofessional on public-facing pages they land on after placing an order.
The plugin hides the admin bar, removes the dashboard widgets, and blanks out the profile page for any role below shop_manager. Twelve lines of PHP once the boilerplate is stripped, but I had copy-pasted a version of this onto eleven sites.
Generation cost: 180 credits (about 1.80 euros). Time saved per site compared to writing from scratch or digging through my snippets: about 25 minutes. Multiplied by eleven sites: 4.5 hours.
2. "Sync ACF custom fields to a Google Sheet on save"
A client needed to see form submissions in a shared spreadsheet without me setting up Zapier for every form. I had a hand-rolled script for this that was always slightly different depending on which ACF version the client was on.
The generated plugin uses the Google Sheets API v4 with a service account, handles field mapping via an admin UI, queues writes through WP Cron so the form save is never blocked, and deduplicates by a hash of the row content. The queue behavior is something I had never added to my hand-rolled version but every client eventually asked for.
Generation cost: 520 credits (about 5.20 euros). This one is more complex. Time saved versus building it properly: I would have billed eight hours for a polished version with queueing and an admin UI. Now I have one plugin for all future clients.
3. "Alert me on Slack when a WooCommerce order fails payment"
Simple on the face of it. woocommerce_order_status_failed hook, post to a Slack webhook, done. The real version I ended up using does more: it groups failures in five-minute windows to avoid spam, includes the last gateway message, and has a configurable threshold so Slack is only hit after three failures in ten minutes.
The AI added the thresholding when I described the actual client pain (we got paged for every failed payment at 3am). The batching logic used WP Cron with a short interval. I would have tried to be clever with transients and probably introduced a race condition.
Generation cost: 290 credits (2.90 euros). Time saved: three hours I spent in 2025 tuning the version I wrote by hand.
4. "Export GDPR user data in one click, as a readable PDF"
WordPress has had core user data export for years. It produces a ZIP of HTML files that nobody in legal wants to read. The plugin wraps it into a single PDF with a table of contents, the user's metadata grouped by plugin, and a signature line for the DPO.
The AI used dompdf, wired into the existing wp_privacy_personal_data_export hook, and kept the same file naming convention WordPress already uses so the downloads list does not look inconsistent. It also added a throttle so the admin cannot accidentally export a giant dataset fifty times in a minute.
Generation cost: 610 credits (6.10 euros). Time saved: I would have quoted this at one to two days. Real time spent reviewing the output: about an hour.
5. "Make the WordPress media library searchable by alt text"
Out of the box you cannot search images by alt text, which is infuriating for content-heavy sites. There are free plugins that add this but they all either slow down the grid or break with newer WordPress versions.
The generated plugin extends the media library query by joining on wp_postmeta where meta_key is _wp_attachment_image_alt, with an index hint so large libraries do not grind. It does not override any UI, so it is compatible with any admin theme. 60 lines of real code.
Generation cost: 150 credits (1.50 euros). Time saved across sites where I have installed it: easily 15 hours of "where is that photo?" scrolling.
Total honest accounting
Direct generation cost for all five: around 18 euros. Time saved across client work and my own sites: roughly 40 hours conservatively, possibly more depending on how you count snippet-sharing across sites.
What I did not include: the two plugins that I generated and then deleted because the first version was wrong and regeneration did not fix the core issue. Both were cases where my prompt was too vague to pin down what the right behavior was. The AI cannot read your mind, and the client relationship usually cannot either. A one-sentence prompt gets you a one-sentence-quality plugin.
What I would tell myself a year ago
Stop pasting the same snippet into functions.php. Every time you do, you pay for it again the next time you have to debug that snippet in a different WordPress version or a different ACF version. Generate a plugin. Version it. Put it in a private GitHub repo. Install it across the client sites where it applies. The first time is slightly slower. Every subsequent time is instant.