draftforge_review_drafts tells them apart. An author sends a queued draft for review; a reviewer answers, and the answer is recorded on the row with who gave it and when.
How to access: Draft Forge > Queue. Request review on a draft row; the reviewer gets Approve & publish, Approve as draft and Send back.
Free/PRO: Free. The workflow lives on the queue row a draft already has, and no licence is asked about anywhere in it.
Notes:
draftforge_review_draftsis granted to Administrator and Editor, on activation and on every upgrade — not only the first — and to nobody else by default.uninstall.phptakes it back off every role unconditionally.- Reaching the Queue screen, and asking for a review, both require
publish_posts. That is Author, Editor and Administrator, and deliberately not Contributor:edit_postswould have let a Contributor read the whole site’s queue, open any post’s before/after screen, and push somebody else’s draft into review — e-mailing every editor on the site in the process. The page gate and the AJAX gate are two independent doors and carry the same capability on purpose. - The four destructive buttons — Approve & publish, Apply refresh, Dismiss, and Accept/Reject on the refresh screen — are drawn only for
manage_options, because their handlers have always required it. A non-admin on the refresh screen is told in words that only an administrator can accept or reject, rather than shown a gap. - Only a
draftrow whose job is a new post can be sent for review. A refresh already has its own before/after screen, which answers a different question: not “should this go out at all” but “is this rewrite safe to apply”. - A reviewer is mailed at most once an hour, however many drafts are sent to them in it.
- The Pro autopilot refuses to publish a row sitting in
pending_review. A draft waiting on a person is not something a schedule gets to decide. - Approve & publish costs what the ordinary approve costs — with Lang Forge installed and the handoff ticked, the translation it triggers is charged by Lang Forge — and the button carries that price, the same as the direct one.