Skip to content

WYSIWYG inside seamless clone field does not save on Options Pages #1005

@dangelion

Description

@dangelion

Environment

  • ACF Pro: 6.7.1
  • WordPress: 6.9.4
  • PHP: 8.3

Description

A wysiwyg field inside a clone field (display: seamless, prefix_field: 0) does not
persist its value when the clone is placed on an ACF Options Page.

Steps to reproduce

  1. Create a shared field group with a wysiwyg field (e.g. group_shared_title, field key field_shared_title, name title)
  2. Create an Options Page field group that clones it: "type": "clone", "clone": ["group_shared_title"], "display": "seamless", "prefix_field": 0
  3. Enter text in the wysiwyg and save

Expected behavior

options_title in wp_options contains the saved value.

Actual behavior

options_title is empty. The reference row _options_title is written with the clone
field's key
(field_global_cta_newsletter_title) instead of the inner wysiwyg field's
key (field_shared_title), so ACF cannot correctly resolve and persist the value.

POST payload (confirmed via DevTools)

The value IS sent correctly in the request:
acf[field_global_cta_newsletter_title][field_global_cta_newsletter_title_field_shared_title] = "

...

"

But after save, options_title remains empty.

Workaround

Manually intercept acf/save_post and write the value directly to wp_options:

add_action('acf/save_post', function ($post_id) {
if ($post_id !== 'options') return;
$acf = $_POST['acf'] ?? [];
$clone_key = 'field_global_cta_newsletter_title';
$inner_key = $clone_key . '_field_shared_title';
if (isset($acf[$clone_key][$inner_key])) {
update_option('options_title', wp_kses_post($acf[$clone_key][$inner_key]));
}
}, 20);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions