=== errorHandle ===
Contributors: errorhandle
Tags: ai, automation, content, woocommerce, no-code
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 0.2.6
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Tell WordPress what you want changed, in plain English. See exactly what will happen. Approve it. Done.

== Description ==

**errorHandle makes changes to your WordPress site for you.** Type what you
want in your own words. errorHandle shows you exactly what it would do.
Nothing happens until you click Approve.

No code. No page builder. No support ticket.

= Ask → Preview → Approve → Done =

**1. Ask.** *"Change our phone number to 020 7946 0100 everywhere."*

**2. Preview.** Every page affected, with the exact before and after.

**3. Approve.** One click. Nothing moves before it.

**4. Done.** It checks the change worked — and you can undo it.

= Real things people ask it =

* *"Create a draft page called Returns Policy with our 30-day policy."*
* *"Change our phone number to 020 7946 0100 everywhere it appears."*
* *"Fix the typo 'recieve' on the Contact page."*
* *"Publish the About page."*
* *"Replace 'Call us today' with 'Schedule a consultation' across the site."*
* *"When a new customer registers, email me their name and address."*

One sentence can correct every page at once. The last one becomes an
automation that then runs by itself, free, forever.

= Why people keep it =

* **You stay in control.** Every change is previewed and approved by you —
  never applied behind your back.
* **It tells you the truth.** Afterwards it reads the change back and
  reports done, partly applied, or failed. Never a success it cannot
  confirm.
* **Mistakes are reversible.** Undo from History, and the preview warns you
  first about anything that cannot be undone.
* **Automations cost nothing to run.** AI is used only while you build.

= 10 free AI commands =

**3 straight away** — no account, no email, no card. **7 more** when you
confirm an email address. Ten in total for that site, for good.

When they run out, everything you have built keeps working: automations,
history and undo never use AI. Only new AI planning pauses — and you can
carry on free with your own API key, or with the offline planner.

= What it will not do =

No code of any kind — no CSS, JavaScript, PHP or HTML, and no setting that
turns that on. No changes to your server, theme, plugin files or site
settings. And no phoning home: a fresh install makes no external request at
all until you choose an AI option.

= errorHandle Pro =

If the ten free commands are not enough, **Pro is $9 a month or $90 a
year** and gives you 300 credits a month with no API key to manage.

A credit is one thing you asked for and applied — everything errorHandle
does today costs one credit. More involved work we are building, such as
investigating a problem across your whole site, will use more, and
errorHandle always tells you the cost before it starts.

Buy and cancel it from inside your own dashboard; payment is handled by
Stripe and errorHandle never sees your card. **Nothing that is free today
becomes paid**, and the plugin will not interrupt you to sell anything.

== Who makes this ==

errorHandle is developed and operated by **errorHandle LLC** —
https://errorhandle.com/

Two things carry the errorHandle name, under two different licences:

* **This plugin** is Copyright © 2026 errorHandle LLC, licensed under the
  **GNU General Public License, version 2 or later**. You may use, study,
  modify and redistribute it, including commercially. Those rights are
  granted to you and are not withdrawn by anything on this page or on our
  website. The full licence ships in `LICENSE`.

* **The errorHandle hosted AI service** — the optional service supplying AI
  at wp.errorhandle.com, including the free allowance — is a separate,
  proprietary service. © 2026 errorHandle LLC. All rights reserved. Nothing
  about it limits your rights to the plugin, and the plugin works fully
  without it.

The plugin bundles no third-party code — no libraries, frameworks or
vendored dependencies — so there is nothing beyond the GPL to attribute.

== External services ==

errorHandle contacts an external service **only when you have explicitly
chosen one.** On first run it asks, and nothing is contacted until you
answer. The default is the offline planner, which contacts nothing.

= errorHandle AI (optional) =

Uses errorHandle's hosted service at wp.errorhandle.com. You are shown what
is sent and must press a button to agree.

At registration it receives your site's address and your WordPress, PHP and
plugin versions, then asks your site to publish a single-use token at one
public URL to prove the site is yours. For each request it receives the text
you typed plus the site summary listed below, and forwards them to
**Anthropic**, which generates the plan.

It records how many commands you have used and approximate token counts. It
does not keep your requests, your content, your users or your IP address. A
confirmed email address is stored hashed and encrypted, and the confirmation
email is sent through **Microsoft Graph**.

Terms: https://errorhandle.com/wp-errorhandle-terms/
Privacy: https://errorhandle.com/wp-errorhandle-privacy/

= Your own AI provider (optional) =

With your own key, or with WordPress AI, requests go directly from your
server to that provider. errorHandle is not involved and receives nothing.

* **Anthropic** — api.anthropic.com —
  Terms: https://www.anthropic.com/legal/consumer-terms —
  Privacy: https://www.anthropic.com/legal/privacy
* **OpenAI** — api.openai.com —
  Terms: https://openai.com/policies/terms-of-use —
  Privacy: https://openai.com/policies/privacy-policy
* **Google Gemini** — generativelanguage.googleapis.com —
  Terms: https://ai.google.dev/gemini-api/terms —
  Privacy: https://policies.google.com/privacy

= What a provider receives =

Whichever you choose, the provider receives:

* the text of the request you typed
* the list of operations your site supports — names and descriptions, not
  your data
* a technical summary of your site: WordPress and PHP versions, active theme
  name, whether WooCommerce or Elementor are active, counts of posts and
  pages, public post type names, timezone and currency code
* the titles and IDs of a few pages that look relevant to your request

It does **not** receive post or page content, customer records, orders, user
accounts, email addresses, passwords, API keys, or anything about your
visitors.

= Every host this plugin can contact =

Four, and no others:

* api.anthropic.com — only with your own Anthropic key
* api.openai.com — only with your own OpenAI key
* generativelanguage.googleapis.com — only with your own Google key
* wp.errorhandle.com — only after you choose errorHandle AI

Plus any address **you** enter yourself in a webhook or fetch action.

Other hostnames appear in the source and none is ever contacted: links shown
for you to click, a blocklist of private and cloud-metadata addresses that
outbound requests are refused for, and a list of host-preview and
development-tunnel suffixes used to recognise a throwaway copy of a site so
it cannot claim a second free trial. errorHandle holds no credentials for
those services and makes no request to any of them.

== Privacy ==

Everything the plugin stores stays in your own WordPress database: your
requests and the plans they produced, execution history, applied changes and
their undo data, your automations, and your encrypted provider credentials.

What leaves your site depends entirely on which AI option you chose, and is
set out in full under **External services** above. With the offline planner,
nothing leaves at all. With your own key or WordPress AI, errorHandle is not
in the path. With errorHandle AI, the hosted service counts your commands and
forwards your request to Anthropic; it does not keep your requests, your page
content, your users or your IP address.

Uninstalling removes the plugin's data from your WordPress database. It does
not delete the record on our side of how many free commands a site has used,
because that record is what stops a reinstall granting another ten.

Full policy: https://errorhandle.com/wp-errorhandle-privacy/

== Installation ==

1. Install from **Plugins → Add New**, or upload the ZIP.
2. Activate it.
3. Open **errorHandle** and choose how to power it.

Step 3 is where you pick errorHandle AI, your own API key, or the offline
planner — **nothing is sent anywhere until you make that choice.**

== Frequently Asked Questions ==

= Do I need to know how to code? =

No. That is the point. You describe the outcome in ordinary English and
approve the plan errorHandle shows you.

= Do I need to pay for AI? =

No. A new install comes with ten free AI commands — three immediately, seven
after confirming an email address — needing no account and no card. After
those you can connect your own provider key, which errorHandle does not
meter, or use the offline planner, which contacts nothing. See "How is the
AI powered" below.

= Will this run up an AI bill? =

Only when you ask it to build something, and only against your own provider
account. Running an automation never contacts an AI service, so the cost does
not grow with your traffic. Identical requests are cached for 24 hours, and
Settings shows your monthly usage.

A consumer ChatGPT, Claude or Gemini subscription does not include API
access — that is billed separately by the provider.

= How is the AI powered, and do I need an API key? =

Four ways, and you choose on first run. **Nothing is sent anywhere until you
do.**

1. **errorHandle AI** — the ten free commands above. Opt in with a button.
2. **WordPress AI** — recommended on WordPress 7.0+. Your site holds the
   key; errorHandle never sees or stores one.
3. **Your own API key** — Anthropic, OpenAI or Google Gemini. Requests go
   straight from your server to your provider, and **errorHandle does not
   count or cap them.**
4. **The offline planner** — runs on your server and contacts nothing at
   all. It recognises common request shapes rather than free-form
   description.

= Can I undo a change? =

Yes, for anything reversible, from the History screen. The preview tells you
up front when something cannot be undone — sending an email, for example.

= What exactly can it change? =

Your pages and posts — create, edit wording, replace text across the site,
publish and unpublish. Your automations. Emails and webhooks you ask it to
send. With WooCommerce: order notes, order status and order custom fields.
It does not change site settings, themes, plugins or files.

= What happens if a change does not work? =

It says so. After applying, the change is verified independently and reported
as done, partly applied, or failed — never as a success it cannot confirm.

= Can I paste in code I found online? =

No. errorHandle does not store or run CSS, JavaScript, PHP or raw HTML, and
there is no setting that enables it. Every action it can take is a defined,
reviewable operation on your content, automations or WooCommerce orders.

= Can it change my server configuration? =

No, and it will tell you so. Requests about nginx, Apache, `.htaccess`,
`php.ini`, DNS, Cloudflare, SSH or file permissions are recognised and
declined with an explanation of who can help.

= Does it work with WooCommerce? =

Yes, when WooCommerce is active: order triggers, order notes, order custom
fields and order status changes become available. Without WooCommerce they
report themselves unavailable rather than silently disappearing.

= Does it work with Elementor? =

Partly, and honestly. Elementor stores content in its own format, and writing
to it incorrectly would corrupt the page — so errorHandle detects Elementor
pages and declines in-content text editing rather than pretending. Everything
else, including automations and WooCommerce actions, works normally.

= Who can use it? =

Administrators only. Every screen and every endpoint requires the
`manage_options` capability.

== Screenshots ==

1. Ask in your own words. No menus to learn, no code to write.
2. Before anything happens: how many pages are affected, what the change is,
   and what it will leave alone.
3. Approve when you are ready — or test it first. Nothing moves before this.
4. Done, checked, and undoable in one click.
5. Creating a page works the same way, and it tells you what to check.
6. Set up a job once and it runs by itself — free, because automations never
   use AI.
7. Every change errorHandle has made, with undo next to each one.

== Changelog ==

= 0.2.6 =

Fixes the Upgrade button, which did not work in 0.2.5.

* **The Upgrade and Manage subscription buttons sent you to the wrong
  place.** The plugin was handing the browser the address of its own API
  instead of the Stripe page, so pressing Upgrade appeared to do nothing.
  Found by running the whole purchase on a real site rather than trusting
  that the request succeeded — it did succeed; the answer was simply read
  wrongly.
* The allowance now reports credits, so a Pro site reads "258 credits left
  this month" rather than counting in free commands it no longer has.

= 0.2.5 =

errorHandle Pro is available.

* **Pro: $9 a month or $90 a year**, for 300 credits a month with no API
  key to manage. Buy it, and cancel it, from your own dashboard — payment
  is handled by Stripe and errorHandle never sees your card.
* A credit is one thing you asked for and applied. Everything errorHandle
  does today costs one credit; more involved work will cost more, and you
  are always told before it starts.
* **Nothing that was free has become paid.** The ten free commands, your
  own API key with no metering, the offline planner and every capability
  are exactly as they were.
* Added a Health screen: nine read-only checks over your site — updates,
  unsupported PHP, overdue scheduled tasks, unmaintained plugins, debug
  settings left on, and data loading on every page. Scans are free, make
  no external request, and never cost a credit.
* Two repairs you can approve from a finding: stop an oversized leftover
  setting loading on every page (exactly reversible), and clear expired
  temporary data (which cannot be undone, and says so).

= 0.2.4 =

Plainer wording and a shorter preview, for people who do not think in
WordPress terms.

* The Ask screen now says **"What would you like errorHandle to do?"** and
  explains what happens next: errorHandle shows you the plan and asks for
  your approval.
* The buttons say what they do: **Preview changes**, **Test changes**,
  **Approve changes**. "Build it", "Test it" and "Apply" are gone.
* **A much shorter preview.** It leads with how many pages are affected and
  what the change actually is. The page-by-page list — eleven rows for an
  eleven-page change — now folds behind "Show all 11 pages this affects".
  Nothing is hidden from you; it is one click away, and warnings are still
  shown in full and never folded.
* **The Ask box empties once a request has been applied**, so the next one
  starts clean. A draft you have typed but not submitted, or a plan you have
  previewed or tested but not approved, is left exactly as you left it.
* Rewrote the plugin description around what errorHandle actually does for
  you: Ask, Preview, Approve, Done, with real examples. It is about 40%
  shorter, and the technical detail about AI providers moved into the FAQ.
* New screenshots following one real change from request to result.
* **Correction:** the previous description said errorHandle could change
  site "settings". It cannot, and never could — there is no such operation.
  The FAQ now lists exactly what it can change.

= 0.2.3 =

Ownership and licensing, stated plainly. No functional change.

* errorHandle is developed and operated by **errorHandle LLC**. The plugin
  header, this readme, the website and the portal now say so consistently.
* Added the standard GPL copyright notice to the plugin file, which was
  missing.
* A new "Who makes this" section separates the two things that carry the
  errorHandle name: **this plugin is GPLv2-or-later and always will be**,
  and the optional hosted AI service is a separate proprietary service.
  Nothing about the service limits your rights to the plugin.
* No "all rights reserved" notice appears on the plugin, and none will.
  Under the GPL those rights are granted to you, not reserved.

= 0.2.2 =

* Fixed a privacy label that could call a reused plan "cached" when it had
  been generated fresh, and vice versa.
* Clearer wording throughout the approval and simulation screens.

= 0.2.1 =

* Simplified the whole interface for non-technical administrators.
* Fixed the Ask box not clearing after a request was submitted.
* Proper mobile layout for every screen.

= 0.2.0 =

* First public release on WordPress.org.
* Removed the ability to store or run CSS and JavaScript, along with several
  other changes requested in plugin review.

= 0.1.0 =

* Initial private beta.

== Upgrade Notice ==

= 0.2.6 =
Fixes the Upgrade button, which did not open the payment page in 0.2.5.
Update if you intend to subscribe.

= 0.2.5 =
errorHandle Pro is now available at $9 a month, and a new Health screen
checks your site for free. Nothing that was free has become paid.

= 0.2.4 =
Plainer wording and a much shorter preview. The buttons are now Preview
changes, Test changes and Approve changes. Nothing errorHandle can do has
changed, and no setting needs revisiting.
