后台批量操作点错,132 条反馈从列表消失,数据库里也查不到,客服主管要求恢复,只能翻三天前的备份。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,反馈用的是自定义表,删除走的是 DELETE,没有软删除字段,也没接 WordPress 的回收站机制。

「反馈删除无回收站」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

ALTER TABLE wp_feedback ADD deleted_at DATETIME NULL;
UPDATE wp_feedback SET deleted_at = NOW() WHERE id IN (...);

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

具体做法是,加 deleted_at 字段,删除改成写时间戳,列表默认过滤掉;保留 30 天,之后由定时任务物理清理;批量删除权限只开给管理员。

最后用这个标准收尾,删除后列表看不到,回收站里能找回,恢复后状态和负责人都在。

作者 9823189