Gravity Forms: Post Updates
Requires PHP 5.3 or greater
Allows you to use Gravity Forms to update any post on the front end. If you use the « Gravity Forms + Custom Post Types », you can even update custom post types and use custom taxonomies.
Features
- Supports custom field file uploading and deletion with thumbnails or mime type icons for existing items.
- Fixed a bugs on multi selects and checkboxes.
- Fixed bug on Categories.
- Completely removed the ability to delete posts.
- There are some filters to customize things now.
- Adds non-query-var template method to setup a form.
- Adds a really basic shortcode to setup a form (UPDATE: This is still supported, but it is better to use the addition, below, to the gravityform shortcode).
- Adds an additional attribute to the gravityform shortcode: « update »
SHORTCODE
[gravityform id="1" update] // Loads current post for editing
[gravityform id="1" update="34"] // Loads post where ID=34 for editing
We worked with Rocketgenius, makers of Gravity Forms, to get a small upgrade added that allows us to extend their shortcode, so now you can simply add the « update » attribute to the normal « gravityform » shortcode. If you only add « update », it will load the current post in to update. If you add an integer to the update attribute, it will use that to load a post by its ID.
URL QUERY VARIABLE
- At the heart, it is pretty similar to how it was, but now there is a nonce required to activate it.
-
So you should use the action to create your links.
do_action(‘gform_update_post/edit_link’);
do_action(‘gform_update_post/edit_link’, array( ‘post_id’ => $post->ID, ‘url’ => home_url(‘/edit_post/’), ) );
Arguments (query string or array)
post_id
(int) (optional) The id of the post you want to edit. Default: global $post->IDurl
(string|int) (optional) Either the full url of the page where your edit form resides, or an id for the page/post where the edit form resides. Default: get_permalink()text
(string) (optional) The link text. Default: « Edit Post »title
(string) (optional) The title attribute of the anchor tag. Default: (text) parameter
Get just the URL
This will return a basic edit url
apply_filters('gform_update_post/edit_url', '');
Specify post to edit (post_id) and post that holds the edit form (url)
apply_filters('gform_update_post/edit_url', 1, home_url('/edit_post/'));
Shortcode to show the edit link
[gform_update_post_edit_link]
Specify post to edit (post_id) and post that holds the edit form (url) [gform_update_post_edit_link post_id=1 url=6]
IN TEMPLATE
You can use the action to force a form show a specific post:
do_action('gform_update_post/setup_form');
do_action('gform_update_post/setup_form', $post->ID);
do_action('gform_update_post/setup_form', array('post_id' => $post->ID, 'form_id' => $form_id));
Parameters
post_id
(int|array) (optional) The id of the post you want to edit or an array with post id and/or form id. This allows you to specify the form id, so that update functionality does not get applied to other forms on the page. Default: global $post->ID