Gravity Form users, please test development version for me
-
I’ve just added experimental support to handle uploads from Gravity Forms, and slightly less experimental support for Gravity Forms Advanced File Uploader.
Since GF is a proprietary plugin I can’t test the functionality myself. I’d be very grateful if all GF users out there could try using the development version of Custom Upload Dir, and let me know if it works correctly or not.
Thanks!
-
Hey,
awesome plugin! I just tried the dev version with Gravity and thought I let you know what happens. Custom upload dir is set to “/%year%/%monthnum%/%post_type%/%post_id%”
WP version is 4.1.1Unfortunately instead of placing the images inside the folder with the post id, it puts the uploaded images into the parent folder (here the post type), creates an empty id-folder and adds the post id to the filename. 😉
The way you want it:
/uploads/gravity_forms/[form-string]/2015/03/page/[id]/file.jpgWhat you get:
/uploads/gravity_forms/[form-string]/2015/03/2015/02/page/[id]file.jpg/[id]Let me know, if I can help you debug it!
cheers,
Marcel
Fantastic, thanks. I’ll take a look and get back to you shortly.
This might… not be koscher, but is there any chance I can get a copy of the plugin, or atleast the parts that deal with ‘gform_upload_path’?
I need to see what they’re doing internally in their filter.
Right. So it seems Gravity expects trailing slash on the paths, while WordPress doesn’t.
I’ve patched the plugin. Try again, please? 🙂
It works! Puts the images right into the id folder.
This is what you get now:
/uploads/gravity_forms/[form-string]/2015/03/2015/02/page/[id]/file.jpgIt still keeps two “month” and “year” folders, but other than that it looks great.
But here is a small bonus challenge. 😉
Using the file upload field works great. In Gravity forms you can also use fields to create a new post entry. One of these fields is used for uploading the featured image. Gravity seems to use another function for uploading, as it puts the image into the default WP uploads folder and not into its own Gravity uploads folder.
When using this field to upload the featured image, the custom structure is ignored completely and instead just uploaded into the current month-folder.
Let me see, if I can find out what they’re doing differently. 🙂
Couple of fixes added:
1. Removed greedy regexp to allow custom filters to do their thing after CUD has processed the built-ins. This means that any invalid part of the template is now left in the URL. Make sure you test your upload path after setting a new template.2. Removed CUD’s conditional filter to let the plugin handle unexpected uploads (eg. Gravity Forms, Media Gallery, front end solutions etc)
3. Fixed: subdirectory structure should no longer duplicate if the values in CUD differ from the Gravity Forms defaults.
Ergo: it should avoid the doubling of year/month folders, and it should support your featured image upload too.
Just gave it a try and ran into a small bug:
As soon as I activate the new version, I get an error that the upload folder is not writable. Deactivating the plugin removes the error. Folder chmods are all set correctly.
As soon as you activate it? You’re not even uploading files?
I assume you’re uploading when this error message occurs. Is there any way you can check the logs or add a print out statement to see what path it’s trying to create?
I assume I’ve messed up on point 3, probably missing a slash or adding an erroneous one, but can’t test for myself. :/
Right, I had been a silly boy and forgotten to negate a very important number. 🙂 I ended up cutting your paths in the front end, when I meant to cut at the farthest end.
Ergo, please try again. 🙂
We’re so close to having a winner! 😉
Uploads and featured thumb now all get stored in the appropriate folders! Great job. It’s only ignoring the post_type setting. Right now, it always puts it into a “page” folder.
Other than that it works like a charm.
That makes sense. Gravity Forms only provide me with a
$form_id, and from looking at their documentation (currently down, of course), I couldn’t see how to get a post/page context out of that.The Advanced Gravity Forms Uploader plugin provides an
$entryobject instead, from which I can simply do$parent_ID = (int) $entry['post_id'];So question is: are forms always published in a post/page? Are they in any way related to a post/page? How can I get the post context from a form?
I see. Well, when using the default Gravity fields to create a new entry, it’s always a post. Except, when using this plugin: https://ww.wp.xz.cn/plugins/gravity-forms-custom-post-types/
It allows mapping a form to a custom post type. Let me see, if there is anything available when calling the form, that could tell us which post type it is set to.
All right!
The CPT plugin for Gravity adds a new value to the $form array.
$form -> fields -> 0 -> saveAsCPTsaveAsCPT returns the post type slug, so it’s perfect for us. 😉
If that value doesn’t exist Gravity always saves the entry as a regular post. So, if you’re using one of Gravity’s filters/hooks you can access $form, check for that field and if it exsits use its value, if not, just save it as a post.
I’ll send you an example dump of $form right away!
It’s not really enough though. For CUD to do its job consistently, it must be able to get a full post context. That is, beyond post_type I must be able to tease out publishing dates, categories, author, ID, title etc.
From what I can see in the dump you sent me, and the Gravity Form field type documentation, the
$formholds a ton of data, but nothing referring to an existing post.Am I correct in assuming that GF is used to create *new* posts and attachments (uploads), not edit or add to existing ones?
Reading this makes me think Gravity Form completely ignores WordPress’ default behaviour of “attaching” uploads to posts or pages. If the file does not belong to a post, there is really nothing more CUD can do. All the non-post specific tags will work, the rest will be ignored.
Thing is, the GF Advanced File Uploader behaves properly and gives me all the context I need. And it should already be supported in CUD.
Perhaps it’s enough to say then, to the Gravity Form users that also want Custom Upload Dir, that they need to use Advanced File Uploader too?
The topic ‘Gravity Form users, please test development version for me’ is closed to new replies.