Gravity Forms form objects can be queried with gfForm
. The example query below shows how you can get a Form and its associated formFields
).
The id
input accepts either the Gravity Forms form ID (idType: DATABASE_ID
) or a global ID (idType: ID
).
{
gfForm(id: 50, idType: DATABASE_ID) {
cssClass
databaseId
dateCreated
formFields {
nodes {
databaseId
type
... on TextField {
label
description
}
}
}
pagination{
lastPageButton {
text
type
}
}
title
}
}
The code comments in the example query below shows how you can fetch and filter data for multiple forms at once.
Cursor-based pagination is supported. You can use the first
, last
, before
and after
fields, along with the data inside of pageInfo
and the cursors returned by the API to get each page of forms data.
{
gfForms(
first: 10
after: "YXJyYXljb25uZWN0aW9uOjM=" # Or pass null to start from the beginning.
where: {
# List of all the form IDs to include.
formIds: [1]
# Sort fields in ascending order by title
orderby: { order: ASC, field: "title" }
# Show only active forms.
status: ACTIVE
}
) {
pageInfo {
startCursor
endCursor
hasPreviousPage
hasNextPage
}
edges {
cursor
node {
databaseId
title
formFields(first: 300) {
nodes {
type
databaseId
cssClass
... on TextField {
label
}
}
}
}
}
}
}
Gravity Forms can be embedded in a post or page using the Gravity Forms block.
When coupled with WPGraphQL Content Blocks, you can query the embedded form directly from the parsed block content, using the GravityformsForm.attributes.form
field.
Important
To query the GfForm
object from the block content, you must have the WPGraphQL Content Blocks
plugin version v4.0+ installed and activated.
{
post(id: $post_id, idType: DATABASE_ID) {
databaseId
editorBlocks { # Added by WPGraphQL Content Blocks
name
... on GravityformsForm {
attributes {
form { # The GfForm object.
databaseId
formFields {
nodes {
databaseId
type
... on TextField {
label
description
}
}
}
title
# other GraphQL fields.
}
}
}
}
}
}