AdvancedCustomFields / AdvancedCustomFields/acf
WYSIWYG inside seamless clone field does not save on Options Pages
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 945
- Forks
- 197
- PR merge metrics
- No merged PRs in 30d
Description
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
- Create a shared field group with a
wysiwygfield (e.g.group_shared_title, field keyfield_shared_title, nametitle) - Create an Options Page field group that clones it:
"type": "clone","clone": ["group_shared_title"],"display": "seamless","prefix_field": 0 - 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);
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how a seamless clone containing a WYSIWYG field is saved from the confirmed POST payload through the ACF Options Page save path. Compare the clone field key used for the _options_title reference with the inner field key, then reproduce the save and verify that options_title in wp_options contains the submitted value without the workaround.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend, database
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100