Home › Forums › Front-end Issues › How do I get the form to save
I have added the <?php acf_form_head(); ?>
to the page. When I use the `acf_form()’ and save that way it saves.
However I want to design the form myself and have all the fields outputting and getting the right markup/name/key/id the same as the auto rendered form. I tried and troed and it just won’t save so then I maulaly copued the 2 hidden divs and their hidden fields into my form and bingo! it saved.
`
<div id=”acf-form-data” class=”acf-hidden”>
<input type=”hidden” name=”_acfnonce” value=”52ddba9d81″>
<input type=”hidden” name=”_acfchanged” value=”0″>
</div>
<div class=”acf-hidden”>
<input name=”_acf_form” value=”eyJpZIsIm5mYWxzZSwiZmllbGRzIjpmYWx…etc…” type=”hidden”>
</div>
‘
What do they have that allows it to save and how can I get the right info to auto appear in mine. I suspect that if I use this on another form the _act_form value won’t be right or the _acfnonce. Where do they come from and how do i get them?
Thanks
I was missing the _acfnonce. It might be worth updating the development documents to specify this as it’s not anywhere on the net that I could find easily!
for reference my code was
<?php
$nonce = wp_create_nonce( 'acf_form' );
$args = wp_parse_args( $args, array(
'id' => 'acf-form',
'post_id' => false,
'new_post' => false,
'field_groups' => false,
'fields' => false,
'post_title' => false,
'post_content' => false,
'form' => true,
'form_attributes' => array(),
'return' => add_query_arg( 'updated', 'true', $url ),
'html_before_fields' => '',
'html_after_fields' => '',
'submit_value' => __("Update", 'acf'),
'updated_message' => __("Post updated", 'acf'),
'label_placement' => 'top',
'instruction_placement' => 'label',
'field_el' => 'div'
));
?>
<form id="post" class="acf-form" action="" method="post" autocomplete="off" enctype="">
<input type="hidden" name="_acfnonce" value="<?php echo $nonce; ?>">
<? acf_hidden_input(array( 'name' => '_acf_form', 'value' => base64_encode(json_encode('$args')) )); ?>
...rest of form ...
I don’t know if there is a shorter way, but this works for now!
Oh wait… the _acf_form bit didn’t work
‘
<? acf_hidden_input(array( ‘name’ => ‘_acf_form’, ‘value’ => base64_encode(json_encode(‘$args’)) )); ?>
‘
Any ideas please?
Just needs ‘post_id’ setting to the post id
'post_id' => get_the_ID()
And it works!
The topic ‘How do I get the form to save’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Cookie Policy. If you continue to use this site, you consent to our use of cookies.