Supported custom field plugins ability reference
Reference for the GoBuildWP Pro 1.12.4 source. Installed schemas and policy remain authoritative.
This supported custom field plugins ability reference covers one write, wppilot/fields-bulk-update-values, which sets values on many posts in a single call and routes every value through the field plugin that owns it, rather than writing post meta directly.
Read-only, write and destructive groups describe the source annotations. They do not establish a minimum safety profile, human approval or undo support. Those controls are separate: check the installed ability, the connected user and the active site policy before calling it. A read can still return sensitive data. These pages are not evidence that every operation passed an end-to-end runtime test.
What Custom fields (any plugin) needs before these load
At least one of ACF, Meta Box, Pods, JetEngine, ACPT or ASE Pro has to be active, with its own GoBuildWP Pro module loaded. With none of them the call returns wppilot_fields_no_provider. With two or more it refuses to choose and returns wppilot_fields_provider_ambiguous until provider is passed, because the same meta key can be read by two plugins and a guess would write to the wrong one. Each post is also checked against the edit_post capability of the connected user.
- Custom fields (any plugin) editions
- free, pro
- Agent skills shipped
acf-integration,metabox-integration,pods-integration,jetengine-integration,acpt-integration,ase-integration
Plan first, then confirm
A call without dry_run and without confirm is refused with wppilot_confirmation_required (HTTP 409) and a message that states how many posts would be overwritten and through which plugin, and tells the agent to show the plan to the user first. dry_run=true reads each post's current values and returns them beside the planned ones without writing; for ACF the read is unformatted, so the comparison is between stored values rather than what a template would display. The summary counts planned, updated, partial and error results.
Up to 100 posts go in one call, either as post_ids sharing the same values or as items that each carry their own. When both are given, per-item values win key by key.
How each plugin is written
ACF values go through update_field, and repeater, flexible content, group, gallery and clone fields need the same {value, mode: "replace"} wrapper that wppilot/acf-write-values asks for, because writing them replaces the whole previous value. Meta Box uses rwmb_set_meta, Pods save_pod_item, ASE Pro update_cf, and ACPT save_acpt_meta_field_value with fields addressed as box_name.field_name. JetEngine values are written as post meta, but only for field names a JetEngine meta box or post type declares for that post type.
What can and cannot be undone
Every written post gets its own change-ledger row, which wppilot/rollback-change restores. Two cases are recorded as irreversible instead, with the reason in the result: Pods post types that keep their fields in their own table rather than post meta, and Meta Box writes while MB Custom Table is active, since both put the value where a post snapshot cannot reach it.
Representative call sequence
This sequence describes the documented calls and checks to perform. It is not a recorded result from an installed WordPress site. Inspect returned errors and partial results, then verify the saved values and affected output before proceeding.
Set an end date on 30 event posts whose fields are defined in Meta Box, on a site that also runs ACF.
- 01
wppilot/metabox-read-valuesReads the field on one event first, to confirm the field id and the date format Meta Box stores. - 02
wppilot/fields-bulk-update-valuesCalled with provider set to metabox and dry_run=true: returns each event's current and planned date. Without provider the call would stop, since ACF is active too. - 03
wppilot/fields-bulk-update-valuesCalled again with confirm=true after the plan is approved; one ledger row per event, recorded as irreversible when custom-table values cannot be snapshotted, with an explicit reason. Inspect every per-item result.
Questions about Custom fields (any plugin)
Why did the call fail with 'More than one field plugin is active'?
Because it will not guess which plugin owns a field. Sites often run ACF for one post type and Meta Box or Pods for another, and they can read the same meta key. Pass provider (acf, metabox, pods, jetengine, acpt or ase) and the call proceeds.
Is this different from the ACF or Meta Box modules' own write calls?
Those write one object at a time with their plugin's full feature set. This one is for the same values across many posts, with a dry run, a single confirmation and a per-post ledger row, and it works the same way whichever of the six plugins owns the field.
Custom fields (any plugin) writes
| Ability | What it does |
|---|---|
wppilot/fields-bulk-update-valuesUpdate Custom Field Values in Bulk | Writes custom-field values on up to 100 posts per call through the active field plugin's own writer: ACF (update_field, with the same {value, mode:"replace"} consent wrapper for repeater/flexible/group/gallery/clone fields that acf-write-values requires), Meta Box (rwmb_set_meta), Pods (save_pod_item), ACPT (save_acpt_meta_field_value - address fields as "box_name.field_name"), ASE Pro (update_cf) or JetEngine (post meta, limited to field names a JetEngine meta box or post type declares for that post type). Pass post_ids with shared values, or items each with their own values (per-item values win key by key). dry_run=true returns each post's current -> planned values and writes nothing; a real write needs confirm=true. Results are per post and per field. Every written post gets its own change-ledger row that wppilot/rollback-change can restore, except Pods post types that keep fields in their own table and Meta Box writes while MB Custom Table is active, which are recorded as irreversible. When more than one field plugin is active pass provider. |