This is not a bug and the functionality is working as expected.
The "Existing Custom Fields" drop down you are referring to returns the custom field names of existing post meta.
A custom field name does not exist until there is post meta in the post meta database table using that custom field name.
This drop down also only returns non-hidden custom fields. Custom fields stored with a custom field name that begins with an underscore (ex. _MyName) will not be displayed because an underscore denotes a hidden custom fields typically used for settings data, etc.
The Types plugin is a 3rd party plugin. It's not default WordPress functionality and not something Gravity Forms interacts with in anyway. Simply by creating custom fields using the Types plugin does not mean data for those custom fields exist in the post meta table yet.
Until you actually start creating posts that make use of those custom fields, Gravity Forms does not know they exist because Gravity Forms is querying the post meta table and returning ALL unique custom field names that have been stored. That is the only way it can return a list of existing custom field names.
I went ahead and created a Test Post on the site you sent the login for. I created it as a Draft and input information in the custom fields that you had created using the Types plugin. After creating and saving that Test Post, those custom fields now appear in the "Existing Custom Fields" drop down in Gravity Forms.
See this screenshot:
That screenshot was taken directly from the test site you provided a login to after I added a Post and filled in those custom fields so that data existed for those custom fields in the post meta database table.
So to clarify, the "Existing Custom Fields" drop down is listing existing data that you can select from. Until the data exists, there is no existing custom fields.
In situations where a hidden custom field name is being used as I described above, you simply click the "New" radio button and type in the custom field name. Selecting a custom field name is unnecessary because you can always define it regardless.
Posted 10 years ago on Monday May 7, 2012 | Permalink