From 4e2e603449ea97b0c62082265deb1c010b860086 Mon Sep 17 00:00:00 2001 From: hoelee Date: Fri, 18 Sep 2026 01:30:04 +0800 Subject: [PATCH] post: shipping an AI photo editor as a WordPress plugin (case study, EN+ZH, og+banner) --- ...-ai-photo-editor-as-a-wordpress-plugin.png | Bin 0 -> 83087 bytes ...-ai-photo-editor-as-a-wordpress-plugin.png | Bin 0 -> 54232 bytes scripts/banner-gen/generate.mjs | 18 ++ scripts/og-gen/generate.mjs | 5 + ...n-ai-photo-editor-as-a-wordpress-plugin.md | 277 ++++++++++++++++++ ...n-ai-photo-editor-as-a-wordpress-plugin.md | 235 +++++++++++++++ 6 files changed, 535 insertions(+) create mode 100644 public/banners/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png create mode 100644 public/og/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png create mode 100644 src/content/posts/shipping-an-ai-photo-editor-as-a-wordpress-plugin.md create mode 100644 src/content/posts/zh/shipping-an-ai-photo-editor-as-a-wordpress-plugin.md diff --git a/public/banners/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png b/public/banners/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..8241e09189c11cbed8931b9a5dfbd8aa1f9af85e GIT binary patch literal 83087 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�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

LFo-KOdw$IrMKVG^#ZoSpk#J;b@pP_j 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

Q|5|~#y3GqX_!$) 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 literal 0 HcmV?d00001 diff --git a/public/og/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png b/public/og/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..c4ffaa539261f033d88e70de43f73733b2632ad0 GIT binary patch literal 54232 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 z$curl -I https://pass.hoelee.com

 504 · ERR_TOO_MANY_REDIRECTS · fingerprint null
$mount passbolt.php · full fingerprint→ fixed ✓
`, + + 'shipping-an-ai-photo-editor-as-a-wordpress-plugin': ` +
$wp plugin list · hre-ai-remix 0.0.1 → 0.0.22
+
 404 …/wp-json/hre/v1admin/photos — rest_url() has no trailing slash
+
$fix = '/admin/…' · 58 commits · 4 were the AI→ shipped ✓
`, }; const DEFAULT_TERMINAL = ` diff --git a/src/content/posts/shipping-an-ai-photo-editor-as-a-wordpress-plugin.md b/src/content/posts/shipping-an-ai-photo-editor-as-a-wordpress-plugin.md new file mode 100644 index 0000000..2e8a537 --- /dev/null +++ b/src/content/posts/shipping-an-ai-photo-editor-as-a-wordpress-plugin.md @@ -0,0 +1,277 @@ +--- +title: "Shipping an AI Photo Editor as a WordPress Plugin: 22 Versions of Hard Lessons" +description: "From a single HTML file to a shipped WordPress plugin: the fal.ai async queue, a watermark that must never silently fail, optional lead capture, and five bugs that only appeared in production." +pubDate: 2026-09-18 +category: case-studies +tags: [wordpress, php, fal-ai, docker, ai-image, javascript] +ogImage: /og/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png +banner: /banners/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png +draft: false +--- + +A few weeks ago I [wrote about the proof of concept](/posts/ai-furniture-compositing-with-flux-kontext/): one +`index.html`, no backend, two furniture photos in, a staged room scene out. It +answered the question it was built to answer — *can you keep the real product and +only generate the room around it?* — and it left one obvious question open. + +That PoC ended with the words *"before committing to the full WordPress plugin."* +This post is about the plugin. It went from version `0.0.1` to `0.0.22` across 58 +commits, and almost none of that work was the AI part. + +## Why it matters (for a business owner, not a developer) + +The PoC's limitation was that it lived in a single HTML file with the API key in +the source. That's fine for a demo you email a client. It is not fine for +something a furniture shop puts on their own website, where: + +- **The API key cannot be in the browser.** Anyone can view-source and drain your + fal.ai credit. It has to live server-side, behind a settings screen an admin + controls. +- **Nobody wants to babysit a generation.** The visitor uploads, waits, gets a + picture. If the process dies halfway, the shop owner should never hear about it. +- **Photos of customers must not leak.** An anonymous visitor's source photo must + never end up in the public Media Library, and a result must never be public + unless *that visitor* opted in to sharing it. +- **Output needs a watermark.** Otherwise you're running a free AI photo service + for the entire internet. +- **The owner needs to capture the lead.** An AI tool that produces a pretty + picture and no contact details is a toy. Attached to a form + webhook, it's a + lead pipeline for a furniture business. + +Every one of those five points is a *product* requirement, and every one of them +cost more code than the AI call itself. + +## Architecture: the boring parts that make it work + +The plugin is a normal WordPress plugin — PHP prefix `hre_`, namespace `HRE`, +custom tables created with `dbDelta()` on activation, an autoloader, no Composer +runtime dependency. The interesting decisions are elsewhere. + +### Generation is asynchronous, always + +fal.ai jobs take 15–20 seconds. PHP-FPM request timeouts, `max_execution_time`, +and impatient visitors make synchronous generation a losing bet. So the flow is a +queue-and-poll: + +``` +visitor uploads → POST /uploads → normalize → start vision analysis +visitor picks → GET /prompts/{cat} → per-style prompts +visitor confirms → POST /jobs → fal queue submit (returns uuid) +browser polls → GET /jobs/{uuid} → status: queued | processing | done +``` + +The visitor never waits on a provider. The job row carries the fal request id, and +a poll either finds a finished result or shows genuine progress. The front end is +a small state machine over a session cookie, so a mid-wizard refresh restores +where the visitor was. + +### Ownership is the session cookie, not an ID in the URL + +Anonymous visitors have no accounts, which makes authorization easy to get wrong. +The rule I settled on: **every read resolves through the caller's own session +hash**, never through an ID accepted from the client. + +- `GET /preview` streams the caller's *own* normalized upload. There is no path or + URL parameter at all — a stranger requesting it gets a 404 because their session + has no file. This also keeps private storage paths out of every JSON payload. +- `GET /jobs/{uuid}` looks the job up *by session hash + uuid*. Guessing a UUID + from another browser returns nothing. + +That's one decision that removes an entire class of "I changed the id in the URL +and saw someone else's photo" bugs. + +### The watermark is a hard requirement, so a fallback must never be silent + +This is the bug that taught me the most. The watermark step does a GD +`imagecopyresampled` composite. If it ever fails, the tempting "resilient" move is: + +```php +// DON'T do this +if ( ! $watermarked ) { + rename( $stage, $final ); // ship the un-watermarked file +} +``` + +I did exactly that. It's silent, it has no log line, and it means the plugin +happily serves un-watermarked results while the admin screen says "watermark: on." +The owner found out weeks later by noticing a photo without a watermark. + +The fix was three parts: + +1. **Log the root cause, not the nearest symptom.** `apply()` returned + `hre_no_watermark_source` — a downstream error. The real cause was that the + watermark source resolution chain (`site_logo` → `get_theme_mod('custom_logo')`) + had no logo to resolve. I added a `block_reason()` diagnostic that re-walks the + chain and returns a *specific* message per failure branch. +2. **Surface it in the admin.** A persistent `notice-warning` says the watermark + is enabled but won't be applied, plus the concrete reason. No log-reading + required. +3. **Make the failure visible to me in testing.** A standalone probe composites a + known watermark onto a known base and samples a pixel inside the expected + watermark rectangle — proving the transform path itself works, which separates + "the feature is broken" from "the feature is unconfigured." + +**Rule I now follow:** when a best-effort branch masks a non-negotiable transform, +it must log the concrete reason *and* warn in the admin UI. A silent fallback that +degrades a required feature is not resilience — it's a bug with good manners. + +### Lead capture: off by default, asynchronous when on + +Lead capture is a master toggle. Off, the plugin collects nothing and the wizard +behaves exactly as before. On, the visitor's configured fields are required before +generation, stored in a custom table, and forwarded to a webhook. + +Two decisions worth copying: + +- **The field list is admin-defined and fully dynamic** — `{key, label, type, + required, placeholder, options[]}` — so the front form renders itself from + config. The defaults (name, phone, email, message, consent) are just a starting + point the owner can replace entirely. +- **Webhook delivery is scheduled, never inline.** The visitor must not wait on + someone else's endpoint: + +```php +wp_schedule_single_event( time() + 5, 'hre_lead_webhook', array( $lead_id ) ); +``` + +Delivery retries three times with linear backoff, then marks the record `failed`. +The admin list shows a status badge (pending / retrying / delivered / failed) plus +the attempt count, and — this matters — the plugin's data retention rule keeps +*delivered* leads but purges undelivered ones on the normal schedule, because an +undelivered lead is just PII sitting in your database. + +### The provider kill switch has to be enforced server-side + +The admin can disable the image provider and set a message that visitors see +instead of the generate button. Greying out the checkbox is UX; the enforcement is +a check at the top of the job-creation endpoint: + +```php +if ( ! (bool) Settings::get( 'fal_provided' ) ) { + return $this->error_response( 'hre_provider_disabled', $msg, 503 ); +} +``` + +Same for the lead gate. The browser gate is UX. The server gate is the product. + +## The five bugs that only showed up in the real install + +This is the part no article about "building an AI plugin" ever includes, and it's +where most of the 58 commits went. + +### 1. Admin REST routes registered inside `is_admin()` silently 404 + +Registering admin routes only when `is_admin()` is true looks correct and is +completely broken: **REST requests report `is_admin() === false`**, so the routes +are never registered and every call returns `404 "No route was found matching the +URL and request method"` — which reads exactly like a URL typo, not a registration +bug. Register at plugin boot; the `permission_callback` (capability + nonce) is +what gates access. + +### 2. `rest_url()` has no trailing slash + +The one that cost me the most recent afternoon. `rest_url()` returns +`https://example.com/wp-json/my-plugin/v1/` — the trailing slash is on the +*namespace*, and the next path segment must start with its own slash. Concatenating +without one: + +```js +const rest = window.hreAdmin.rest; // ".../wp-json/hoelee-ai-photo-remix/v1" +fetch( rest + 'admin/photos/' + id ) // ❌ ".../v1admin/photos/123" +fetch( rest + '/admin/photos/' + id ) // ✅ +``` + +`.../v1admin/photos/123` is a 404 with no browser console error, so the +`catch` block fires and the UI shows the generic *"Something went wrong."* It had +quietly broken **four** endpoints — photo pagination, photo delete, the webhook +test button, and lead resend. The fix is one character per call site; the +diagnosis took far longer, because the failure mode is indistinguishable from a +server error. Prove it with two curls: the correct join returns `403` (route +exists, nonce missing), the broken one returns `404`. + +### 3. A WordPress admin settings form can wipe a different tab's settings + +Each admin tab posts only its own fields, but the save handler runs the *whole* +settings map. A checkbox that isn't submitted looks identical to a checkbox that +was unchecked, so saving the "limits" tab silently wrote `false` over the +"share by default" option, and saving that one cleared the entire lead-capture +configuration. The fix belongs in the sanitizer, not the forms — distinguish +"absent from this submission" from "present and empty": + +```php +// present in this tab → use the new value (a cleared field clears) +// absent from this tab → keep the current value +if ( array_key_exists( $key, $raw ) ) { + $clean[ $key ] = sanitize( $raw[ $key ] ); +} +``` + +I added a regression test for exactly this (seed config → save a different tab's +subset → assert the seed survived). It's the kind of bug that only exists once you +have two tabs, which is why it shipped. + +### 4. A binary endpoint must not go through a JSON fetch helper + +The result download is a JPEG stream. The shared `api()` helper did `res.json()` +on every response, which threw on image bytes — and a swallowing +`.catch(function(){})` ate the error, so the symptom was *"the result never shows +up"* with nothing in the console. Blob endpoints need their own raw fetch helper +that checks `res.ok`, parses JSON only on error, and returns `res.blob()` on +success. + +### 5. A size limit that fires before the resize defeats the resize + +The plugin downscales uploads to a working size (1920×1080 bounds). I had set the +decompression-bomb guard too low — 1 MB / 1 MP — which meant every legitimate +phone photo was rejected *before* it could be resized. Visitors saw the preview +appear and instantly de-select, reported as "the resize feature is broken." + +The real lesson is UX, not numbers: the client must reject an over-limit file +*before* showing the local preview. Flash-then-disappear reads as a bug even when +the message underneath is correct. The caps now sit at 15 MB / 50 MP, high enough +that normal photos always pass and get normalized. + +## What I'd do differently + +- **Write the failure path first for anything the product depends on.** The + watermark bug existed because I wrote the happy path and then hid the unhappy + one. Now I write the "what does the owner see when this breaks" branch before + the feature is finished. +- **Test REST joins against the live site on day one.** A two-curl check + (`.../v1/admin/x` → 403 vs `.../v1admin/x` → 404) would have caught four broken + endpoints in week one instead of week four. I've added it to the project's + `AGENTS.md` so it can't recur. +- **Don't guess at a provider's API surface.** I lost time on `fal.ai/api/me` + (which doesn't exist) before discovering the right key check is an authenticated + `POST {}` to the queue endpoint: `401` means rejected, anything else means the + key is fine. Read the real schema, then write the client. +- **Keep the front end to two shortcodes.** I was tempted to split the wizard into + five shortcodes and five page-builder widgets. Keeping it as one app + one + gallery shortcode meant every UI iteration was a single-file change, and that + iteration speed is the reason 22 versions shipped. + +## The result + +A production-shaped WordPress plugin: **`0.0.22` across 22 releases**, with 10 +custom database tables, an async fal.ai queue, server-side key handling, dynamic +lead capture with a retrying webhook, a role-aware photo archive, and everything +configurable from a 10-tab admin screen without touching code. + +It is the difference between a demo and a product, and — the number I actually +care about — **58 commits, of which roughly four were about the AI model.** The +rest was the unglamorous work that decides whether a client can run the thing +without me: validation, retention, permissions, failure visibility, and an admin +screen that tells the truth. + +--- + +## Want this for your business? + +I build WordPress plugins, AI image pipelines, and self-hosted infrastructure for +Malaysian SMEs — and I ship them as products you can actually run, not demos you +have to babysit. If you want AI product photography, a lead-capture pipeline, or +a custom plugin for your business, I'd love to talk: + +- 📱 **WhatsApp:** [+60 12-797 2969](https://wa.me/60127972969) +- 📧 **Email:** [me@hoelee.com](mailto:me@hoelee.com?subject=WordPress%20AI%20plugin%20project) +- 🌐 **Website:** [hoelee.com](https://hoelee.com) diff --git a/src/content/posts/zh/shipping-an-ai-photo-editor-as-a-wordpress-plugin.md b/src/content/posts/zh/shipping-an-ai-photo-editor-as-a-wordpress-plugin.md new file mode 100644 index 0000000..80d1e11 --- /dev/null +++ b/src/content/posts/zh/shipping-an-ai-photo-editor-as-a-wordpress-plugin.md @@ -0,0 +1,235 @@ +--- +title: "把 AI 修图工具做成 WordPress 插件:22 个版本换来的经验" +description: "从单个 HTML 文件到一个真正上线的 WordPress 插件:fal.ai 异步队列、绝不能静默失败的水印、可选的名单元件,以及五个只有在真实环境里才会出现的 bug。" +pubDate: 2026-09-18 +category: case-studies +tags: [wordpress, php, fal-ai, docker, ai-image, javascript] +ogImage: /og/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png +banner: /banners/shipping-an-ai-photo-editor-as-a-wordpress-plugin.png +draft: false +--- + +几周前我[写过那个概念验证](/posts/zh/ai-furniture-compositing-with-flux-kontext/):一个 +`index.html`、没有后端,两张家具照片进去,一张布置好的房间场景出来。它回答了 +它本该回答的问题——*能不能保住真实的产品,只把周围的房间生成出来?*——同时留下 +了一个显而易见的问题。 + +那篇 PoC 的结尾写着「*在决定做成完整的 WordPress 插件之前*」。这篇文章讲的就是 +那个插件。它从 `0.0.1` 走到 `0.0.22`,58 个 commit,而其中几乎没有任何工作是 AI 那部分。 + +## 为什么这件事值得关心(写给老板,不是写给开发者) + +PoC 的局限在于它活在一个 HTML 文件里,API key 就写在源码里。作为发给客户看的演示, +这没问题。但一家家具店要把这东西放到自己网站上,就不行了: + +- **API key 不能出现在浏览器里。** 任何人 view-source 就能看到,然后把你的 fal.ai + 额度刷光。它必须放在服务端,由一个管理员控制的设置页面来管。 +- **没人想盯着生成过程。** 访客上传、等待、拿到图。如果中途挂了,店主根本不该知道。 +- **顾客的照片不能泄露。** 匿名访客的原图绝不能进公开的媒体库;生成结果除非 + *那位访客本人*同意分享,否则也不能公开。 +- **输出必须带水印。** 否则你就是在给整个互联网提供免费 AI 修图服务。 +- **店主需要拿到线索。** 一个只会产出一张漂亮图片、拿不到联系方式的 AI 工具是个玩具。 + 接上表单和 webhook,它就是家具生意的线索管道。 + +上面这五条都是**产品**需求,而每一条都比那次 AI 调用本身花的代码更多。 + +## 架构:真正让它跑起来的无聊部分 + +这是一个正常的 WordPress 插件——PHP 前缀 `hre_`、命名空间 `HRE`、激活时用 +`dbDelta()` 建自定义表、自带 autoloader、运行时不依赖 Composer。有意思的决策在别处。 + +### 生成永远是异步的 + +fal.ai 的任务要 15–20 秒。PHP-FPM 的请求超时、`max_execution_time`、以及没耐心的 +访客,让同步生成注定失败。所以流程是「入队 + 轮询」: + +``` +访客上传 → POST /uploads → 归一化 → 启动视觉分析 +访客选择 → GET /prompts/{cat} → 每个风格的提示词 +访客确认 → POST /jobs → fal 入队(返回 uuid) +浏览器轮询 → GET /jobs/{uuid} → status: queued | processing | done +``` + +访客永远不等服务商。任务行携带 fal 的请求 id,轮询要么拿到完成的结果,要么显示 +真实的进度。前端是跑在 session cookie 上的小型状态机,所以中途刷新页面会回到 +访客原来所在的位置。 + +### 归属权靠 session cookie,不靠 URL 里的 ID + +匿名访客没有账号,这让授权很容易做错。我最终定下的规则是: +**每一次读取都通过调用者自己的 session hash 来解析**,绝不接受客户端传来的 ID。 + +- `GET /preview` 只输出调用者**自己**归一化后的上传图。它根本没有路径或 URL 参数 + ——别人请求它只会得到 404,因为那个 session 里没有文件。这也让私有存储路径 + 不会出现在任何 JSON 响应里。 +- `GET /jobs/{uuid}` 是按 *session hash + uuid* 查任务的。从别的浏览器猜一个 UUID + 什么也拿不到。 + +就这一个决策,消掉了「我改了 URL 里的 id 就看到了别人的照片」这一整类 bug。 + +### 水印是硬需求,所以回退逻辑绝不能静默 + +这个 bug 教给我的最多。水印那一步做的是 GD `imagecopyresampled` 合成。如果它失败, +一个很诱人的「有韧性」的写法是: + +```php +// 别这么写 +if ( ! $watermarked ) { + rename( $stage, $final ); // 直接把没水印的文件发出去 +} +``` + +我当初就是这么写的。它完全静默、没有日志,插件会心安理得地输出没有水印的结果, +而后台还显示「水印:已开启」。店主几周后才发现,是因为看到了一张没水印的图。 + +修法分三部分: + +1. **记录根因,而不是最近的那个症状。** `apply()` 返回的是 + `hre_no_watermark_source`——一个下游错误。真正的原因是水印来源的解析链 + (`site_logo` → `get_theme_mod('custom_logo')`)根本没解析到 logo。我加了一个 + `block_reason()` 诊断,重新走一遍解析链,并针对每个失败分支返回**具体**信息。 +2. **在后台暴露出来。** 一条常驻的 `notice-warning` 提示:水印已开启但不会被应用, + 并附上具体原因。不需要去翻日志。 +3. **让失败在测试时就看得见。** 一个独立探针把已知水印合成到已知底图上,并采样 + 预期水印矩形内的一个像素——这证明了变换路径本身是好的,从而把「功能坏了」和 + 「功能没配好」区分开。 + +**我现在遵守的规则:** 当某个「尽力而为」的分支掩盖了一个不可协商的变换时,它必须 +记录具体原因**并且**在后台 UI 里告警。一个悄悄让必需功能降级的回退不是韧性——那是 +一个有礼貌的 bug。 + +### 名单元件:默认关闭,开启后异步 + +名单元件是一个总开关。关闭时插件什么都不收集,向导的行为和以前完全一样。开启时, +管理员配置的字段会在生成之前变成必填,存入自定义表,并转发到 webhook。 + +两个值得照抄的决策: + +- **字段列表由管理员定义、完全动态**——`{key, label, type, required, placeholder, + options[]}`——所以前端表单是照着配置把自己渲染出来的。默认的五项(姓名、电话、 + 邮箱、留言、同意)只是起点,店主可以整个替换。 +- **Webhook 投递是排程的,绝不内联执行。** 访客不该为别人的接口等待: + +```php +wp_schedule_single_event( time() + 5, 'hre_lead_webhook', array( $lead_id ) ); +``` + +投递失败后按线性退避重试三次,然后标记为 `failed`。后台列表会显示状态徽章 +(pending / retrying / delivered / failed)和尝试次数——这一点很重要——插件的数据 +保留规则会保留**已投递**的线索,但按正常周期清理未投递的,因为一条没送出去的线索 +只是躺在你数据库里的个人隐私数据。 + +### 服务商的急停开关必须在服务端强制执行 + +管理员可以停用图像服务商,并设置一段代替「生成」按钮显示给访客的文案。把复选框 +变灰只是 UX;真正的强制发生在创建任务接口的开头: + +```php +if ( ! (bool) Settings::get( 'fal_provided' ) ) { + return $this->error_response( 'hre_provider_disabled', $msg, 503 ); +} +``` + +名单元件那道闸同理。浏览器端的闸是 UX,服务端的闸才是产品。 + +## 只有在真实安装里才会冒出来的五个 bug + +这是所有「怎么做 AI 插件」的文章都不会写的一段,而 58 个 commit 里大部分都花在这。 + +### 1. 把后台 REST 路由注册在 `is_admin()` 里,会静默 404 + +只在 `is_admin()` 为真时注册后台路由,看起来是对的,实际上完全坏了: +**REST 请求里 `is_admin() === false`**,所以路由从未被注册,每次调用都返回 +`404 "No route was found matching the URL and request method"`——这读起来就像是 +URL 打错了,完全不像注册 bug。要在插件启动时就注册;真正的访问控制是 +`permission_callback`(权限 + nonce)。 + +### 2. `rest_url()` 结尾没有斜杠 + +最近耗掉我一个下午的就是这个。`rest_url()` 返回的是 +`https://example.com/wp-json/my-plugin/v1/`——结尾的斜杠属于**命名空间**,下一段 +路径必须自己带一个斜杠。不带的话: + +```js +const rest = window.hreAdmin.rest; // ".../wp-json/hoelee-ai-photo-remix/v1" +fetch( rest + 'admin/photos/' + id ) // ❌ ".../v1admin/photos/123" +fetch( rest + '/admin/photos/' + id ) // ✅ +``` + +`.../v1admin/photos/123` 是一个 404,而且浏览器控制台里没有任何报错,于是 `catch` +分支触发,界面弹出笼统的「*Something went wrong.*」。它已经悄悄弄坏了**四个**接口 +——照片分页、照片删除、webhook 测试按钮、线索重发。修法是在每个调用点加一个字符; +诊断却花了长得多的时间,因为这个失败模式和服务器出错完全无法区分。用两条 curl 就能 +证明:正确的拼接返回 `403`(路由存在、缺 nonce),坏的那个返回 `404`。 + +### 3. 一个后台设置表单能抹掉另一个标签页的设置 + +每个后台标签页只提交自己的字段,但保存处理函数会跑完**整个**设置表。一个没被提交 +的复选框,和一个被取消勾选的复选框长得一模一样,所以保存「限制」页会静默地把 +「默认允许分享」写成 `false`,而保存那一页又会把整个名单元件配置清空。修法在 +清洗器里,不在表单里——要区分「这次提交里没有这个键」和「有这个键但是空值」: + +```php +// 本页提交了 → 用新值(清空就是清空) +// 本页没有提交 → 保留当前值 +if ( array_key_exists( $key, $raw ) ) { + $clean[ $key ] = sanitize( $raw[ $key ] ); +} +``` + +我为这件事补了一个回归测试(写入配置 → 保存另一个标签页的子集 → 断言原配置还在)。 +这类 bug 只有在你有了两个标签页之后才会存在,所以它才会被发出去。 + +### 4. 二进制接口不能走 JSON 解析的 fetch 助手 + +结果下载是一个 JPEG 流。共用的 `api()` 助手对每个响都做 `res.json()`,碰到图片字节 +就抛异常——而一个吞异常的 `.catch(function(){})` 把错误吃掉了,于是症状是 +*「结果一直不出现」*,控制台里什么都没有。二进制接口需要自己的原始 fetch 助手: +检查 `res.ok`、只在出错时解析 JSON、成功时返回 `res.blob()`。 + +### 5. 在缩放之前触发的尺寸上限,等于废掉了缩放 + +插件会把上传图缩到工作尺寸(1920×1080 边界)。我把防解压炸弹的限制设得太低—— +1 MB / 1 MP——结果每一张正常的手机照片都在**被缩放之前**就被拒了。访客看到预览刚 +出现就立刻取消选中,被反馈成「缩放功能坏了」。 + +真正的教训是 UX,不是数字:客户端必须在**显示本地预览之前**就拒掉超限文件。 +一闪就没,读起来就是 bug,哪怕底下那句提示其实是对的。现在上限是 15 MB / 50 MP, +高到正常照片一定能通过并被归一化。 + +## 如果重来一次我会怎么做 + +- **产品依赖的东西,先写失败路径。** 水印那个 bug 之所以存在,是因为我写了成功路径, + 然后把失败路径藏了起来。现在我先把「这条线断了,店主会看到什么」写完,再宣告 + 功能完成。 +- **第一天就拿真实站点测 REST 拼接。** 两条 curl(`.../v1/admin/x` → 403 对比 + `.../v1admin/x` → 404)本来能在第一周就抓出四个坏接口,而不是拖到第四周。我已经 + 把它写进项目的 `AGENTS.md`,让它不会再犯。 +- **别去猜服务商的 API 形状。** 我在 `fal.ai/api/me`(根本不存在的接口)上浪费了 + 时间,之后才发现正确的 key 校验是往队列接口发一个带鉴权的 `POST {}`:`401` 表示 + 被拒,其他都说明 key 没问题。先读真实 schema,再写客户端。 +- **前端就保持两个 shortcode。** 我曾经很想把向导拆成五个 shortcode 和五个页面构建器 + 组件。保持成「一个应用 + 一个画廊」意味着每次 UI 迭代都是单文件改动,而正是这个 + 迭代速度让 22 个版本得以发出去。 + +## 结果 + +一个具备产品形态的 WordPress 插件:**`0.0.22`,共 22 次发布**,10 张自定义数据表、 +异步 fal.ai 队列、服务端密钥管理、带重试 webhook 的动态名单元件、区分分享状态的 +照片归档,以及一个 10 个标签页、不用碰代码就能改完所有配置的后台。 + +这就是演示和产品之间的区别。而我最在意的那个数字是:**58 个 commit 里,大概只有四个 +和 AI 模型有关。** 其余全是那些不体面的工作,却决定了客户能不能在没有我的情况下 +把这东西跑起来:校验、数据保留、权限、失败的可见性,以及一个说真话的后台页面。 + +--- + +## 想给你的生意也做一套? + +我为马来西亚的中小企业做 WordPress 插件、AI 图像流水线和自托管基础设施——而且是 +做成你真的能跑起来的产品,不是要你天天伺候的演示。如果你想要 AI 产品图、一套线索 +收集管道,或者为你的业务定制插件,欢迎直接找我: + +- 📱 **WhatsApp:** [+60 12-797 2969](https://wa.me/60127972969) +- 📧 **邮箱:** [me@hoelee.com](mailto:me@hoelee.com?subject=WordPress%20AI%20plugin%20project) +- 🌐 **网站:** [hoelee.com](https://hoelee.com)