OceanWP ability reference
Reference for the GoBuildWP Pro 1.12.4 source. Installed schemas and policy remain authoritative.
This OceanWP ability reference lists every call GoBuildWP Pro registers for OceanWP Customizer settings, headers and page overrides, with the exact slug an agent sends and what the plugin's own contract says it does. Of the 15, 7 read, 8 write and 0 are marked destructive in the source.
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 OceanWP needs before these load
These 15 abilities come with GoBuildWP Pro 1.12.4. Pro registration requires the Freemius SDK to permit premium code and any companion dependency the module checks to be available. The floors below apply to the named dependencies or features; an optional add-on or newer feature floor does not necessarily disable the base module. wppilot/integration-health and the module's setup call describe the installed availability.
- Minimum (theme)
- 4.1.0
WPPILOT_PRO_OCEANWP_THEME_MIN_VERSION - Minimum (base)
- 2.0.0
WPPILOT_PRO_OCEAN_EXTRA_MIN_VERSION - OceanWP editions
- free, pro
- Agent skills shipped
oceanwp-build-page
OceanWP in practice
Global look versus one page: choosing the right OceanWP writer
OceanWP keeps two layers of settings. The site-wide layer is Customizer theme mods, which wppilot/oceanwp-set-customizer-settings and the narrower header, typography and WooCommerce writers change. The per-page layer is ocean_ post meta on a single post, written by wppilot/oceanwp-set-page-overrides, which wins over the global value on that post only. A request such as hide the page title on the landing page belongs in the page layer; the same request phrased as hide page titles belongs in the Customizer layer, and the agent should ask which was meant when it is unclear.
To send a page back to the global default, pass null for that override; the meta is deleted and the post inherits again. wppilot/oceanwp-get-page-overrides shows is_set for each key, which is the quickest way to find out why one page ignores a Customizer change. Some overrides depend on others: the both-sidebars arrangement only has an effect when that post's layout is set to both sidebars.
OceanWP rollback, by layer
Each layer is snapshotted differently by the change ledger, and all of them can be restored with wppilot/rollback-change. Customizer writes and library template mounts snapshot the active theme's theme mods. Module switches snapshot the oceanwp_modules option. Page overrides snapshot the post. A theme mod rollback restores the theme's settings as a whole, so a Customizer change someone made by hand after the agent's write is reverted with it; look at the Customizer before restoring on a site that people are editing.
The typography preset is the write most worth a snapshot. Its body and headings fields replace the stored typography theme mod outright, so any sub-key not sent (a letter spacing, a text transform) is lost. Read the current values with wppilot/oceanwp-get-settings first and include everything that should stay.
OceanWP refusals and persistence errors
Mounting a header template is a two-step job: wppilot/oceanwp-apply-library-template stores the template id, but the header slot is only used once the header style is custom, which wppilot/oceanwp-set-header-config sets. Check a page in a private window afterwards; module switches in particular only take effect on the next request.
- oceanwp_lock_busy (HTTP 503): another OceanWP write was running. Nothing was written; wait a moment and retry.
- oceanwp_persist_failed: A value failed to persist, possibly because a filter blocked it. A request can write multiple values, so read the affected layer back before retrying or restoring.
- oceanwp_template_not_published: the library template is a draft or in the trash. Publish it, or pick another from wppilot/oceanwp-list-library-items.
- oceanwp_requires_ocean_extra and oceanwp_requires_woocommerce: the companion plugin a call depends on is inactive or below the supported version.
- oceanwp_invalid_post: no post has that id, or it is trashed, an auto-draft or in inherit status.
OceanWP reads
| Ability | What it does |
|---|---|
wppilot/oceanwp-check-setupCheck OceanWP Setup | Returns a structured snapshot of the OceanWP integration state - the theme itself (active, version, minimum supported), the Ocean Extra companion plugin (active, version, minimum supported), the optional third-party integrations OceanWP detects at boot (WooCommerce, Elementor, Beaver Builder, EDD, LearnDash, …), and the set of capability flags the agent can use to decide which sub-ability surfaces are available right now. Call this FIRST before invoking any other oceanwp-* ability. |
wppilot/oceanwp-get-page-overridesGet OceanWP Per-Page Overrides | Reads the agent-curated allowlist of ocean_* postmeta override keys on a single post. Each entry reports whether the override is actually set on the post (is_set: true means the post overrides the global default) or whether the post inherits the global. Returns the meta value when set, null otherwise. Filter to a specific subset with fields: [...]. For meta keys outside the allowlist use wppilot/execute-php with get_post_meta($post_id, "ocean_<key>", true). |
wppilot/oceanwp-get-settingsGet OceanWP Customizer Settings | Reads the live value of OceanWP Customizer settings from the agent-curated allowlist. By default returns the full allowlist; pass panel to filter to one subdomain or settings: [...] to fetch specific keys. Typography settings (font-family / font-weight / font-size / line-height / letter-spacing) are returned as decoded objects. Settings outside the allowlist are intentionally NOT returned by this ability - for ad-hoc reads of OceanWP theme_mods use wppilot/execute-php with get_theme_mod( "ocean_<key>" ). |
wppilot/oceanwp-list-customizer-panelsList OceanWP Customizer Panels | Returns the static catalogue of OceanWP Customizer panels (typography, colors, general, header, blog, WooCommerce, …). Each entry reports the panel id, label, approximate settings count, a one-line description, the integration that must be active for the panel to apply (when conditional), and a resolved active flag based on the current install. Use this to discover which subdomain to target with oceanwp-get-settings (and the oceanwp-set-* abilities). |
wppilot/oceanwp-list-hooksList OceanWP Render Hooks | Returns the agent-curated catalogue of ocean_* action and filter hooks the theme exposes at render time (layout wrap, header, top bar, page header, main, content, footer, scroll-up). Use the returned hook names with wppilot/execute-php snippets (a critical operation that runs arbitrary PHP: blocked by Production Safe and Read Only, available only in Developer Full Access with explicit confirmation; a child theme or code-snippets plugin is the durable home for a hook): add_action() to inject HTML/template at action hooks, add_filter() (often with __return_false / __return_true) to suppress or override layout regions. The full ~470 ocean_* hook surface lives in the theme source - this catalogue is the high-leverage subset. |
wppilot/oceanwp-list-library-itemsList OceanWP Library Items | Lists the Ocean Extra oceanwp_library CPT posts - the reusable header / footer / topbar / 404 templates the agent can mount via oceanwp-apply-library-template. Returns compact entries (id, title, slug, status, modified). REQUIRES the Ocean Extra companion plugin to be active at the supported version; returns oceanwp_requires_ocean_extra otherwise. Use the limit param to cap the page; defaults to 100, max 500. |
wppilot/oceanwp-list-modulesList Ocean Extra Modules | Lists the Ocean Extra modules an agent can toggle: Sticky Header, Sticky Footer, Side Panel, Popup Login, Footer Callout, Instagram, Cookie Notice, Portfolio, WooCommerce Popup, Full Screen, White Label, Elementor Widgets. Each entry reports the module slug, label, the sentinel PHP class Ocean Extra registers when the module bootstrap has loaded, and the resolved enabled flag (true when the sentinel class exists). REQUIRES Ocean Extra. |
OceanWP writes
| Ability | What it does |
|---|---|
wppilot/oceanwp-apply-library-templateApply OceanWP Library Template | Mounts an Ocean Extra Library template (oceanwp_library CPT post) into one of the four customizer-driven slots OceanWP reads at render time: header, topbar, footer_widgets, custom_404. Writes the template id into the matching theme_mod (ocean_header_template / ocean_topbar_template / ocean_footer_widgets_replace / ocean_custom_404_template). The header slot is only effective when the header style is set to custom (see oceanwp-set-header-config). REQUIRES Ocean Extra. |
wppilot/oceanwp-disable-moduleDisable Ocean Extra Module | Disables one Ocean Extra module by writing false into the matching oceanwp_modules[<slug>] option entry. The actual visible effect takes hold on the next request after Ocean Extra reloads its module manifest. Use oceanwp-list-modules to discover valid slugs. REQUIRES Ocean Extra. |
wppilot/oceanwp-enable-moduleEnable Ocean Extra Module | Enables one Ocean Extra module by writing 1 into the matching oceanwp_modules[<slug>] option entry. The actual visible effect takes hold on the next request after Ocean Extra reloads its module manifest. Use oceanwp-list-modules to discover valid slugs. REQUIRES Ocean Extra. |
wppilot/oceanwp-set-customizer-settingsSet OceanWP Customizer Settings | Partial-merge writer for the agent-curated allowlist of OceanWP Customizer settings (~40 high-leverage theme_mods covering layout, typography, colors, header, blog, footer, performance, WooCommerce features). Pass an object whose keys are theme_mod names and whose values are the new values; any key NOT in the allowlist is rejected in the rejected array without aborting the rest of the write. Values that already match the current theme_mod are reported in unchanged so the agent can tell when a write was a no-op. The whole operation runs inside a per-blog lock so concurrent calls cannot interleave reads/writes against theme_mods_oceanwp. |
wppilot/oceanwp-set-header-configSet OceanWP Header Configuration | Narrow writer for the OceanWP header subdomain: header style (8-value enum - minimal, transparent, top, full_screen, center, medium, vertical, custom), header height in pixels, transparent boolean, and custom_template Library template id (only effective when style is "custom"). Partial merge - pass only the fields you want to change. Same lock + allowlist enforcement as oceanwp-set-customizer-settings. |
wppilot/oceanwp-set-page-overridesSet OceanWP Per-Page Overrides | Writes the agent-curated allowlist of ocean_* postmeta override keys on a single post. Pass overrides as a map of meta-key → value; unknown keys are rejected without aborting the rest. Pre-validates every value against the allowlist BEFORE any persistence (no partial state mutation on rejection). Calls clean_post_cache after each successful write so subsequent reads return the new value. To REMOVE an override (revert to global default), pass null as the value - the post meta key is deleted via delete_post_meta. |
wppilot/oceanwp-set-typography-presetApply OceanWP Typography Preset | Applies a curated typography preset in one call: body typography (ocean_body_typography), headings typography (ocean_headings_typography), primary brand color (ocean_primary_color), and link color (ocean_links_color). Each top-level field is optional - only those passed are written. IMPORTANT: typography fields (body, headings) FULLY REPLACE the existing typography theme_mod - sub-keys you omit are dropped, NOT merged. Read the current typography with oceanwp-get-settings and re-pass every sub-key you want to keep. Typography sub-keys: font-family, font-weight, font-size, font-size-tablet, font-size-mobile, line-height, letter-spacing, text-transform, font-style. |
wppilot/oceanwp-set-woo-featuresSet OceanWP WooCommerce Feature Toggles | Narrow writer for the high-leverage WooCommerce theme_mods OceanWP exposes: off-canvas filter sidebar, distraction-free cart / checkout, quick view modal, floating add-to-cart bar, product hover image-swap, AJAX add-to-cart, menu cart icon style, mobile mini-cart. Requires WooCommerce active (returns oceanwp_requires_woocommerce when WC is inactive). Same lock + pre-validation + alias-aware error messages as oceanwp-set-header-config. |
For the task-level view of OceanWP, with worked requests and what to check afterwards, see OceanWP integration page.