GraphQL API for interacting with Gravity Forms.

Overview

πŸš€ πŸ“„ WPGraphQL for Gravity Forms

Project Status: Active. Packagist License Packagist Version GitHub commits since latest release (by SemVer) GitHub forks GitHub Repo stars

A WordPress plugin that provides a GraphQL API for interacting with Gravity Forms.

Overview

Using WordPress as a headless CMS with a separate JavaScript-powered frontend single-page app is an increasingly popular tech stack. Traditionally, REST APIs have been used for the purpose of sending data back & forth between the frontend and backend in setups like this but the REST architecture has its limitations.

Using GraphQL means that if your frontend app needs to fetch data for a number of different resources, all of that data can be fetched from the server with a single request. Your frontend app can even define which fields it requires for each of the resources, giving it full control over which pieces of data are fetched and included in the response.

Fortunately, a GraphQL implementation exists for WordPress - WPGraphQL.

WPGraphQL for Gravity Forms extends the WPGraphQL plugin, allowing frontend apps to interact with the Gravity Forms data stored in a headless WordPress backend. This plugin couples the great forms functionality of Gravity Forms with the powerful WordPress-specific GraphQL implementation that WPGraphQL provides.

Our hope for this open source project is that it will enable more teams to leverage GraphQL for building fast, interactive frontend apps that source their data from WordPress and Gravity Forms.

System Requirements

  • PHP 7.4+
  • WPGraphQL 1.0.0+
  • Gravity Forms 2.5+
  • WordPress 5.4.1+

Quick Install

  1. Install & activate WPGraphQL.
  2. Install & activate Gravity Forms and any supported addons.
  3. Download the zip of this repository and upload it to your WordPress install, and activate the plugin.

Supported Features

  • Querying forms and entries.
  • Submitting forms.
  • Updating entries and draft entries.
  • Deleting entries and draft entries.

Future Feature Enhancements

View all Feature Requests

  • Add support for missing form fields Github Issue
  • Ability to query for lists of draft entries, or both entries and draft entries
  • Ability to get the total count for a list of entries.
  • Ability to create, update, and delete an individual Gravity Form.
  • Create & update integration tests. Github Issue.

Documentation

Comments
  • File input upload does not return tmp_name or temp_filename

    File input upload does not return tmp_name or temp_filename

    I have a Wordpress headless CMS with GatsbyJS frontend. I have installed WPGraphQL, WPGraphQL for Gravity Froms, and WP GraphQL File Upload to use the gravity forms to send a form from the frontend to the backend, it has some photos with it.

    Here is the list of my WP plugins:

    ​​ACF Content Analysis for Yoast SEO
    Add WPGraphQL SEO
    AddToAny Share Buttons
    Advanced Custom Fields PRO
    Gravity Forms
    Gravity Forms Mailchimp Add-On
    Jetpack
    Redirection
    Safe SVG
    Soil
    User Role Editor
    WP All Import - ACF Add-On
    WP All Import Pro
    WP Gatsby
    WP GraphQL
    WP GraphQL Gutenberg
    WP Quiz
    WPGraphQL for Advanced Custom Fields
    WPGraphQL for Gravity Forms
    WPGraphQL Upload
    Yoast SEO
    

    Here is a list of Gatbsy plugins and libraries:

    "dependencies": {
       "@apollo/client": "^3.5.10",
       "@hookform/resolvers": "^2.8.8",
       "beautiful-react-hooks": "^1.2.0",
       "cross-fetch": "^3.1.5",
       "gatsby": "4.6",
       "gatsby-plugin-add-filters": "^1.0.0",
       "gatsby-plugin-google-tagmanager": "4.6",
       "gatsby-plugin-image": "2.6",
       "gatsby-plugin-manifest": "4.6",
       "gatsby-plugin-offline": "5.6",
       "gatsby-plugin-react-helmet": "5.6",
       "gatsby-plugin-react-leaflet": "^3.0.3",
       "gatsby-plugin-sass": "5.6",
       "gatsby-plugin-sharp": "4.6",
       "gatsby-source-filesystem": "4.6",
       "gatsby-source-wordpress": "6.6",
       "gatsby-transformer-sharp": "4.6",
       "jotai": "^1.6.1",
       "leaflet": "^1.7.1",
       "leaflet.locatecontrol": "^0.76.0",
       "react": "^17.0.2",
       "react-dom": "^17.0.2",
       "react-helmet": "^6.1.0",
       "react-hook-form": "^7.26.0",
       "react-icons": "^4.3.1",
       "react-images": "^1.2.0-beta.7",
       "react-leaflet": "^3.2.5",
       "react-leaflet-markercluster": "^3.0.0-rc1",
       "react-photo-gallery": "^8.0.0",
       "react-share": "^4.4.0",
       "sass": "^1.49.7",
       "swiper": "^8.0.6"
     },
    
    When I use a switch statement to show all my form fields, it shows them all, the file upload shows it all as well. 
    This is my fileuploadfield fragment
    export const FileUploadField = graphql`
     fragment FileUploadField on WpFileUploadField {
       isRequired
       label
       id
       type
       value
       errorMessage
       description
       cssClass
     }
    `;
    

    However, when I try to upload a photo, it does not return tmp_name. Here is what I get in the console:

    Some image > file [0]
    <img width="732" alt="Screen Shot 2022-04-22 at 5 03 03 PM" src="https://user-images.githubusercontent.com/56219053/164881218-f258aa7c-2c6d-4499-8ee9-f24eab2a59de.png">
    
    name: something
    size: something
    type: something
    relativePath: ""
    

    Even after creating a path and temp_name manually, while it submits the form to the backend, the backend also cannot find the picture, saying:

    2022-04-12 16:42:59.881352 - DEBUG --> GFFormDisplay::process_form(): After validation. Is submission valid? Yes. 
    2022-04-12 16:42:59.881381 - DEBUG --> GFFormDisplay::process_form(): Uploading files... 
    2022-04-12 16:42:59.881419 - DEBUG --> GFFormDisplay::upload_files(): Upload path /nas/content/live/guidedby2/wp-content/uploads/gravity_forms/3-38f36a3cba1cdc80c6ddcf1d6664e72f 
    2022-04-12 16:42:59.881530 - DEBUG --> GFFormsModel::get_temp_filename(): Uploaded filename is Image from iOS.jpg and temporary filename is 62560e83d7361_input_76.jpg 
    2022-04-12 16:42:59.881560 - DEBUG --> GFFormDisplay::upload_files(): Temp file info: Array
    (
        [uploaded_filename] => Image from iOS.jpg
        [temp_filename] => 62560e83d7361_input_76.jpg
    )
     
    2022-04-12 16:42:59.881588 - ERROR --> GFFormDisplay::upload_files(): File could not be uploaded: tmp_name: undefined - target location: /nas/content/live/guidedby2/wp-content/uploads/gravity_forms/3-38f36a3cba1cdc80c6ddcf1d6664e72f/tmp/62560e83d7361_input_76.jpg
    

    As you can see, the form is submitted and files are uploaded (although I can’t find the photos anywhere on WP), but since tmp_name or temp_filename is not present, Gravity Forms cannot find them. I have no way of assigning tmp_name or temp_filename because if I attach that to the form submission, the form says such field does not exist. I have tried to make tmp_name to be a manual URL and regular name, but it seems does not work because tmp_name is assigned by the server randomly and it always changes. All permissions are open from the server to upload images.

    opened by shalawfatah 15
  • [Bug] Form confirmations settings are incorrect in GraphQL

    [Bug] Form confirmations settings are incorrect in GraphQL

    Describe the bug

    When I add a new form and add a new confirmation to the form, the confirmation is enabled by default, but not in GraphQL.

    To Reproduce

    1. Add a new form.
    2. Add new confirmation for the form.
    3. Back to the Confirmations table, where added confirmation is enabled.
    4. Run following GraphQL query:
    query MyQuery {
      gfForm(id: "x", idType: DATABASE_ID) {
        confirmations {
          isActive
        }
      }
    }
    

    which returns:

    {
      "data": {
        "gfForm": {
          "confirmations": [
            {
              "isActive": true
            },
            {
              "isActive": false
            }
          ]
        }
      },
      "extensions": {
        "debug": []
      }
    }
    

    Expected behaviour

    By default, newly added confirmations should be enabled in GraphQL.

    Additional context

    n/a

    Technical Info

    • WordPress version: 5.9.3
    • WPGraphQL version: 1.8.1
    • Gravity Forms version: 2.6.1
    • WPGraphQL for Gravity Forms version: 0.11.0
    • Other relevant frameworks/plugins: n/a
    type: bug πŸ› 
    opened by dam6pl 8
  • [Feature Request] - Add normal/invisible reCaptcha type to CaptchaField object

    [Feature Request] - Add normal/invisible reCaptcha type to CaptchaField object

    Just need some queries to fetch reCAPTCHA v2 normal or invisible mode is activate on Gravity forms so we can code it on Next,js accordingly, my friend :)

    type: enhancement ⚑ status: in progress 🚧 
    opened by shivapoudel 8
  • [Bug] File upload not permitted for security reasons

    [Bug] File upload not permitted for security reasons

    Describe the bug

    when I try to upload a form with a file i get 'This file type is not permitted for security reasons' 500 error.

    discussion thread here

    To Reproduce

    this is my query:

      mutation SUBMIT_FORM_ENTRY($formId: Int!, $fieldValues: [FieldValuesInput]) {
        submitGravityFormsForm(
          input: {
            formId: $formId
            clientMutationId: "submitGfForm"
            fieldValues: $fieldValues
          }
        ) {
          clientMutationId
          entryId
          resumeToken
          resumeUrl
          entry {
            form {
              node {
                confirmations {
                  message
                }
              }
            }
          }
        }
      }
    

    and these are the variables:

    {
        "formId": 2,
        "fieldValues": [
            {
                "id": 5,
                "value": "fweqwef"
            },
            {
                "id": 6,
                "value": "fqfqwf"
            },
            {
                "id": 7,
                "value": "fqwfqwf"
            },
            {
                "id": 8,
                "fileUploadValues": {
                    "name": "Rataplan-straatzijde_20180328_EW46474_PHOTO-Β©-EDDY-WESTVEER-1024x576.jpeg",
                    "type": "image/jpeg",
                    "size": 162024,
                    "tmp_name": "/var/folders/h6/2h8fnrtx1q7ddt18hm162_k80000gn/T/upload_a0051c2799aa83484fc63ae57ffc7a0f"
                }
            }
        ]
    }
    

    Expected behavior

    File upload to work and be recorded in the gravity forms entries.

    Additional context

    The error is being thrown by our plugin, and is a result of wp_check_filtetype_and_ext() coming back bad.

    FYI: the ALLOW_UNFILTERED_UPLOADS only affects administrator roles, but since your example is JPG (which by default is allowed for all users), that shouldnt be the problem here.

    Would you be able to add the following code to WP, and then share (in the issue you create) the output generated in debug.log?

    add_filter( 
      'wp_check_filetype_and_ext',
      function ( array $file ) { error_log( print_r( $file, true) ); }
    );
    

    Thanks!

    Originally posted by @justlevine in https://github.com/harness-software/wp-graphql-gravity-forms/discussions/108#discussioncomment-1362592

    type: bug πŸ› type: question ❔ 
    opened by koraysels 8
  • [Bug] Mutation response `entry` returns null for non-authenticated users.

    [Bug] Mutation response `entry` returns null for non-authenticated users.

    I am working on https://github.com/robmarshall/gatsby-plugin-gravity-forms and since the updates made within 1.10.0 have been unable to successfully submit a form.

    The mutation looks like this:

    mutation submitForm($databaseId: ID!, $fieldValues: [FormFieldValuesInput]) {
        submitGfForm(
          input: { databaseId: $databaseId, fieldValues: $fieldValues }
        ) {
          entry {
            id
          }
          errors {
            id
            message
          }
        }
      }
    

    The payload looks like this:

    {
        "operationName": "submitForm",
        "variables": {
            "databaseId": 1,
            "fieldValues": [
                {
                    "id": 1,
                    "value": "my-value-here"
                }
            ]
        },
        "query": "mutation submitForm($databaseId: ID!, $fieldValues: [FormFieldValuesInput]) {\n  submitGfForm(input: {databaseId: $databaseId, fieldValues: $fieldValues}) {\n    entry {\n      id\n      __typename\n    }\n    errors {\n      id\n      message\n      __typename\n    }\n    __typename\n  }\n}\n"
    }
    

    But am getting the following response: Type loader is expected to return a callable or valid type "FormFieldValuesInput", but it returned null"

    Unsure where I am going wrong.

    edit: formatting.

    type: bug πŸ› workaround provided 🩹 
    opened by robmarshall 6
  • [Feature Request] Add support for Gravity Forms Quiz

    [Feature Request] Add support for Gravity Forms Quiz

    Following #119 , this issue is to discuss and track implementation of Gravity Forms Quiz support.

    Work should be committed to this branch.

    To do

    • [x] Form settings ( docs )
    • [x] Field settings ( docs ) The quiz field can be a select, radio, or checkbox field. We should decide whether it makes sense to surface all the fields, or to implement QuizField as a interface.
    • [x] Mutation Support & Entry Values
    • [x] #168 We need to decide if we want to replicate the fields on the Quiz Results Page in the backend. This decision (and its implementation) will likely influence future development on the Gravity Forms Survey AddOn.
    • [x] Extensive WPUnit Tests As there is no developer documentation available for the plugin, extensive tests need to be implemented from the get go, or we'll experience even bigger headaches iterating than we already have.
    • [x] Update docs
    type: enhancement ⚑ status: in progress 🚧 
    opened by justlevine 6
  • [Bug] missing file platform_check.php (plugins/wp-graphql-gravity-forms/vendor/composer/platform_check.php)

    [Bug] missing file platform_check.php (plugins/wp-graphql-gravity-forms/vendor/composer/platform_check.php)

    Describe the bug

    Fatal error: require(): Failed opening required '/var/www/html/web/app/plugins/wp-graphql-gravity-forms/vendor/composer/platform_check.php' (include_path='.:/usr/local/lib/php') in /var/www/html/web/app/plugins/wp-graphql-gravity-forms/vendor/composer/autoload_real.php on line 25

    To Reproduce

    When installing the plugin using composer and navigating to the wordpress site, I encountered the above error. I checked for the vendor/composer/platform_check.php file but it is not there.

    https://github.com/harness-software/wp-graphql-gravity-forms/blob/ee26f46db31f087fc6d8a4003b6ad80de778bfa5/vendor/composer/autoload_real.php#L25

    Technical Info

    • WordPress version: 5.6
    • WPGraphQL version: 1.1.3
    • Gravity Forms version: 2.4.22.5
    • WPGraphQL for Gravity Forms version: 'main'
    • Composer version 1.10.5
    type: bug πŸ› 
    opened by kenseito 6
  • Add support for Captcha validation

    Add support for Captcha validation

    Is your feature request related to a problem? Please describe.

    I suggested in #33 to ignore captcha fields on the backend, turns out there is a verification step that google suggests to fully protect against re-using the same captcha key.

    Describe the solution you'd like

    We need to actually hit the required endpoint from the backend to properly support recaptcha fields. This means we need a mutation to pass the response keys from google to the backend, and then process it during the form verification step.

    Describe alternatives you've considered

    Additional context

    It's not 100% necessary, but it would allow a malicious actor to manually pass a captcha field and re-use the success keys for 2 minutes.

    type: enhancement ⚑ 
    opened by techieyann 5
  • Check if FieldValue exists in $entry before trying to return it.

    Check if FieldValue exists in $entry before trying to return it.

    Address #16 .

    This PR implements checks whether the FieldValue exists in $entry before trying to return the value. Prevents all those unnecessary error_log warnings when you're doing mutations on a single field.

    Note: I opted for using array_key_exists( $field['id'], $entry ) over isset( $entry[ $field['id'] ), as I feel it is more robust. That said, I did not change the few {fieldtype}Field.php that already use isset. If the maintainers have a preference for one or the other, I'm happy to switch this pr to use isset() or update the other files to use array_key_exists.

    I had to change the preexisting SignatureFieldValue check. since ! $entry[ $field['id'] ] isnt the same as either array_key_exists or isset.

    opened by justlevine 5
  • Error

    Error

    I'm getting the following error. I could be installing it incorrectly. I installed the entire repo, but thought I should only install the src files? Not sure. Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in /home/c132grap/staging/1/wp-content/plugins/wp-graphql-gravity-forms-master/src/WPGraphQLGravityForms.php on line 180

    opened by PudparK 5
  • Bugfix: Added consentValue as per docs

    Bugfix: Added consentValue as per docs

    What

    Makes the consent field act like in the docs, consentValue and boolean. Furthermore it also fixes the previous issue where even unchecked required consents would trigger a successful form submission (This is done by using value instead of consentValue)

    Why

    Because it is a hotfix that fixes the consent field so that it follows the intended behavior in docs

    How

    Registering the consentValue type inside FormFieldsValuesInput

    Testing Instructions

    Additional Info

    Checklist:

    • [X ] This PR is tested to the best of my abilities.
    • [X ] This PR follows the WordPress Coding Standards.
    • [X ] This PR has proper inline documentation.
    • [ ] This PR has unit tests to verify the code works as intended.
    • [ ] The changes in this PR have been noted in CHANGELOG.md
    safe to test βœ” 
    opened by TomDo1234 4
  • docs: replace formId with id in examples

    docs: replace formId with id in examples

    What

    This PR replaces formId with id in the example submission mutations.

    Why

    Attempting to submit a mutation using formId gives this error: There was an error submitting the form: [GraphQL] Field SubmitGfFormInput.id of required type ID! was not provided. [GraphQL] Field "formId" is not defined by type SubmitGfFormInput.

    How

    No implementation, just updating the docs to reflect the correct mutation.

    Testing Instructions

    Additional Info

    Checklist:

    • [ ] This PR is tested to the best of my abilities.
    • [ ] This PR follows the WordPress Coding Standards.
    • [ ] This PR has proper inline documentation.
    • [ ] This PR has unit tests to verify the code works as intended.
    • [ ] The changes in this PR have been noted in CHANGELOG.md
    opened by mosesintech 1
  • Allow ID inputs to take _either_ a database or global ID

    Allow ID inputs to take _either_ a database or global ID

    What problem does this address?

    Simplifies the schema

    What is your proposed solution?

    https://github.com/wp-graphql/wp-graphql/commit/8b502c0903d7b119a0ec8b50adea812b944e92f1

    What alternatives have you considered?

    No response

    Additional Context

    https://github.com/AxeWP/wp-graphql-gravity-forms/blob/fed404286050630db5ae8c1d17f80a33f9421a8f/src/Data/Connection/EntriesConnectionResolver.php#L328

    type: enhancement ⚑ status: confirmed πŸ“ 
    opened by justlevine 0
  • Add Schema Support for GF block.

    Add Schema Support for GF block.

    What problem does this address?

    As the block Block Editor picks up usage, we should add Schema support for the GF block

    In GF v2.7, these blocks will become much more powerful, with the ability to customize themes and styles.

    What is your proposed solution?

    This might be tricky due to the existing (lack of) support for the block editor and FSE in WPGraphQL .

    What alternatives have you considered?

    No response

    Additional Context

    No response

    type: feature πŸ¦‹ 
    opened by justlevine 0
  • Add `validateForm` mutation

    Add `validateForm` mutation

    What problem does this address?

    This feature was added to GF 2.6.4, and can serve to provide background async validation to cut down on submission times for large fields.

    https://docs.gravityforms.com/validating-forms-with-the-gfapi/

    What is your proposed solution?

    ..

    What alternatives have you considered?

    No response

    Additional Context

    No response

    type: feature πŸ¦‹ 
    opened by justlevine 0
  • Add compatibility with PHP 8.1

    Add compatibility with PHP 8.1

    What problem does this address?

    With PHP 7.4 sunsetting, and beta support for PHP 8.1 included in WP since 5.9, it makes sense to add PHP 8.1 to the list of supported versions.

    What is your proposed solution?

    • Bump docker matrix to test against 8.1
    • Squash any bugs discovered along the way.

    What alternatives have you considered?

    No response

    Additional Context

    No response

    type: enhancement ⚑ status: hold :warning: 
    opened by justlevine 1
  • Implement DataLoader and Root connection for Form Fields

    Implement DataLoader and Root connection for Form Fields

    What problem does this address?

    • Better performance in complex queries by caching the form fields.
    • Enable filtering/pagination with Gatsby (which arbitrarily limits non-top level queries)

    What is your proposed solution?

    • We will need to add a unique Global ID.
    • We will likely want to move to a new, namespaced GraphQL type ,while deprecating the existing to give people time to upgrade.
    • We might need to move the Form Field values to their own Type, possibly on the edge. While we got rid of these in the past because they were unweildly to use, the new interfaces introduced in v0.12 could create a better DX this time.

    What alternatives have you considered?

    No response

    Additional Context

    No response

    type: enhancement ⚑ status: hold :warning: breaking change πŸ’₯ 
    opened by justlevine 1
Releases(v0.11.10)
  • v0.11.10(Dec 21, 2022)

  • v0.11.9(Dec 2, 2022)

    This minor release adds compatibility for WPGraphQL v1.13.x, by removing the new Connection, Edge, and OneToOneConnection GraphQL interfaces from the FormField connections. This is a temporary fix, and will be reverted in a future release.

    • fix: remove incompatible interfaces from FormField connections.
    • fix: remove redundant There was an error while processing the form. prologue from submission UserErrors.
    • chore: update Composer deps.
    • chore: fix PHPStan issues surfaced by new Composer deps.

    Full Changelog: https://github.com/harness-software/wp-graphql-gravity-forms/compare/v0.11.8...v0.11.9

    Source code(tar.gz)
    Source code(zip)
    schema.graphql(650.19 KB)
    wp-graphql-gravity-forms.zip(562.18 KB)
  • v0.11.8(Oct 31, 2022)

  • v0.11.7(Oct 21, 2022)

    This minor release fixes an issue with the GraphQL dataloader storing the GF form, instead of the 'prerendered' version used by many 3rd-party plugins. It also fixes FormQuiz GraphQL fields from resolving if they are not associated with the current gradingType (e.g. passPercent on a LETTER grade ).

    • fix: Run gform_pre_render on Form objects before they are stored in the DataLoader.
    • fix: FormQuiz fields should return null is not associated with current gradingType.
    • chore: Update Composer deps.

    Full Changelog: https://github.com/harness-software/wp-graphql-gravity-forms/compare/v0.11.6...v0.11.7

    Source code(tar.gz)
    Source code(zip)
    schema.graphql(619.23 KB)
    wp-graphql-gravity-forms.zip(561.53 KB)
  • v0.11.6(Oct 6, 2022)

  • v0.11.5(Sep 22, 2022)

    This minor release fixes a bug where gfForm.quiz data was not resolving, as well as changes the GraphQL types for FormQuizConfirmation fields.

    Note: This release is technically a breaking schema change, however since those fields are entirely unusable with their current type definitions, we don't expect this have any negative impact on users when upgrading.

    • (#314) fix!: Change GraphQL field FormQuizConfirmation.isAutoformatted from type String to type Boolean.
    • (#314) fix!: Change GraphQL field FormQuizConfirmation.message from type Int to type String.
    • (#314) fix: Fix resolver for GfForm.quiz returning empty data.
    • (#314) test: Add basic WPUnit tests for GfForm.quiz data.
    • (#315) test: Fix FormConnectionQueriesTest classname corrupted after backporting from v0.11.4.

    Full Changelog: https://github.com/harness-software/wp-graphql-gravity-forms/compare/v0.11.4...v0.11.5

    Source code(tar.gz)
    Source code(zip)
    schema.graphql(625.89 KB)
    wp-graphql-gravity-forms.zip(560.86 KB)
  • v0.11.4(Sep 20, 2022)

    This minor release fixes a bug where form.entries would return entries from all forms, among other things.

    • (#291) feat: Update plugin-update-checker to v4.13 and enable use of local assets on Dashboard screen.
    • (#307) fix: ensure form->entry connections only return entries on that form.
    • (#307) fix: change formIds input description to clarify that it (currently) only accepts database IDs.
    • (#304) chore: update Composer deps.
    • (#307) test: ensure $_gf_state is reset between tests.
    • (#307) test: add some extra WPUnit tests for form/entry connection where args.

    Full Changelog: https://github.com/harness-software/wp-graphql-gravity-forms/compare/v0.11.3...v0.11.4

    Source code(tar.gz)
    Source code(zip)
    schema.graphql(624.89 KB)
    wp-graphql-gravity-forms.zip(560.57 KB)
  • v0.11.3(Aug 12, 2022)

    This minor release fixes a bug where gfEntries.pageInfo fields would have incorrect data after upgrading to WPGraphQL v1.9.0.

    Note: As a result of WPGraphQL v1.9.0, the order of items returned when using backwards pagination (e.g. last:5) is now reversed and identical to the order of items returned when using forward pagination, as per the GraphQL Relay spec.

    • fix: Refactor EntriesConnectionResolver to support WPGraphQL v1.9.0.
    • test: refactor gfForms and gfEntries pagination tests.

    Full Changelog: https://github.com/harness-software/wp-graphql-gravity-forms/compare/v0.11.2...v0.11.3

    Source code(tar.gz)
    Source code(zip)
    schema.graphql(624.08 KB)
    wp-graphql-gravity-forms.zip(552.47 KB)
  • v0.11.2(Jul 15, 2022)

    This minor release fixes a bug where querying for a non-existent Form/Entry ID would throw an error instead of returning null.

    We also added some new GraphQL fields and connections to the FormConfirmation and SubmissionConfirmation types, and made some under-the-hood improvements to both the code and our build scripts.

    • feat: Add isAutoformatted to the FormConfirmation object.
    • feat: Add Page connection to the FormConfirmation object. (h/t @robmarshall )
    • feat: Add pageId and queryString fields and Page connection to the SubmissionConfirmation object.
    • fix: Ensure DataLoader keys return null on non-existent objects, instead of throwing errors. (h/t 6x x6 and Jonathan Ng )
    • dev: Fix return type for Utils::get_possible_form_field_child_types().
    • dev: Refactor ignored Gravity Forms settings to FormFields::ignored_gf_settings().
    • dev: Ensure composer deps are built for PHP 7.4.
    • chore: Update Composer deps.
    • docs: Add usage example for file uploads.
    • ci: Various improvements to workflows.

    Full Changelog: https://github.com/harness-software/wp-graphql-gravity-forms/compare/v0.11.1.1...v0.11.2

    Source code(tar.gz)
    Source code(zip)
    schema.graphql(623.96 KB)
    wp-graphql-gravity-forms.zip(551.75 KB)
  • v0.11.1.1(Jun 25, 2022)

  • v0.11.1(Jun 11, 2022)

    This minor release adds the reCaptcha V2 type and publicKey to gfSettings.recaptcha, the validated confirmation response to form submission mutation payloads, and fixes a handful of bugs.

    • feat: Add recaptcha settings to GFSettings GraphQL object.
    • feat: Add SubmissionConfirmation object to submitGfForm and submitGfDraftEntry mutation responses. Props: @KoduVaal
    • fix: isActive should default to true for new Confirmations / Notifications.
    • fix: Correctly resolve the rangeMin and rangeMax GraphQL fields on NumberField. H/t @natac13
    • fix: Ensure GF Action Monitor setting keys are populated.
    • fix: Ensure checkboxValues load the Post Category choices before attempting to process.
    • fix: Prevent reprocessing the imageValueInput.url when updating PostImage field values.
    • tests: Fix broken test asserts exposed by PHPUnit v9 + WPGraphQL Test Case v2.3.
    • tests: Use gravityformscli for installing GF plugins in test envs.
    • chore: Upgrade composer deps.
    Source code(tar.gz)
    Source code(zip)
    schema.graphql(621.99 KB)
  • v0.9.2.3(Jun 11, 2022)

  • v0.9.2.2(Jun 8, 2022)

    This hotfix release fixes an issue where the rangeMin and rangeMax fields on NumberField would not always return the correct float value.

    • fix: correctly return float values for rangeMin and rangeMax properties.

    Full Changelog: https://github.com/harness-software/wp-graphql-gravity-forms/compare/v0.9.2.1...v0.9.2.2

    Source code(tar.gz)
    Source code(zip)
  • v0.11.0(Mar 22, 2022)

    :warning: This release contains breaking changes.

    This major release adds support for server-side captcha validation, plugin updates from the WordPress backend, and new features from Gravity Forms v2.6. We've also refactored the internal file upload mechanism to better integrate with GF's form submission lifecycle, leading to more reliable (and in some cases, more performant) results.

    Lastly, we fixed the GraphQL type names on some of the Product and Shipping fields, so we can hopefully add mutation support in future minor releases (and not break back-compat).

    Note: The minimum version of WPGraphQL has been bumped to v1.7.0.

    What's new

    • 🚨 Breaking: We've added support for server-side captcha validation with reCAPTCHA. Note: If you are already using captcha fields in your form, you will need to modify your code to to pass the validation token to fieldValues.
    • ?? Breaking: The button field on GfForm has been deprecated in favor of form.submitButon. Both now use the new FormSubmitButton GraphQL type (instead of the old FormButton), which adds support for layoutGridColumnSpan, location and width properties added in GF v2.6.
    • We've added support for plugin updates on the WordPress backend. A warning is displayed along with the update notice when upgrading to a version with possible breaking changes (e.g. v0.X.y ).
    • We've added a new FileUploadValues GraphQL type to the FileUploadField which includes the basePath, baseUrl, and filename fields in addition to the existing url. These fields have also been added to ImageFieldValues.

    Behind the scenes

    • Added the graphql_gf_update_repo_url filter to control the source of the Update Checker.
    • Reworked the logic handling file uploads to use the native GF form submission lifecycle whenever possible.

    Misc

    • chore!: The minimum version of WPGraphQL is now v1.7.0.
    • fix!: The ProductHiddenProductField, ProductSingleProductField, and ShippingSingleShippingField have been renamed to ProductHiddenField, ProductSingleField, and ShippingSingleField, respectively, in line with other child fields.
    • fix: Don't hide the CALCULATION, HIDDENPRODUCT, SINGLEPRODUCT and SINGLESHIPPING values from the FormFieldTypeEnum.
    • fix: Resolve FormQuiz data using the unmodeled form data instead of the FormObject model.
    • dev: The lastPageButton field on GFForm has been deprecated in favor of form.pagination.lastPageButton, where the other pagination fields live.
    • dev: The values field on FileUploadField has been deprecated in favor of fileUploadValues.
    • dev: The GFUtils::handle_file_upload() method has been deprecated.
    • dev: The graphql_gf_form_modeled_data_experimental filter has been deprecated in favor of WPGraphQL's native graphql_model_prepare_fields.
    Source code(tar.gz)
    Source code(zip)
    schema.graphql(619.71 KB)
  • v0.10.5(Mar 10, 2022)

    This minor release fixes a few bugs in the FormsConnectionResolver. We've also added GitHub Actions for PHPStan and GraphQL schema linting.

    • fix: Prevent gfForms queries with the last argument from truncating the final node.
    • fix: Correctly return hasNextPage and hasPreviousPage values on gfForms connections.
    • dev: Refactor bin/install-test-env into resuable functions.
    • chore: Update Composer dependencies.
    • chore: Add GH action to save GraphQL artifact to release.
    • tests: Add GH Action for GraphQL schema linting.
    • tests: Add GH Action for PHPStan
    Source code(tar.gz)
    Source code(zip)
    schema.graphql(317.21 KB)
  • v0.10.4(Mar 4, 2022)

    This minor release adds a form's total entries count and its quizResults to the GfFormToGfEntryConnection connection.

    E.g.:

    query {
      gfForm(id: $id, idType: $idType) {
        entries {
          count # the number of entries submitted
          quizResults { # The quiz results summary
            averagePercentage
              passRate
              gradeCounts { # the frequency of each grade
                count
                grade
              }
              fieldCounts { ## the individual field breakdown
                correctCount
                formField {
                  node {
                    label
                  }
                }
                choiceCounts { ## the frequency of each answer
                  count
                  text
                }
              }
          }
        }
      }
    }
    
    • feat: Add count to GfFormToGfEntryConnection.
    • feat: Add quizResults to GfFormToGfEntryConnection.
    • dev: Make original form data available via the Form model.
    • chore: Update Composer deps.
    • chore: Fix a few GraphQL descriptions that were missing a closing ..
    Source code(tar.gz)
    Source code(zip)
    schema.graphql(317.21 KB)
  • v0.10.3(Feb 20, 2022)

    This minor release adds support for WP Jamstack Deployments. We also fixed a bug where non-authenticated users could not access their own entry on the submitGfForm payload.

    • feat: Add support for WP Jamstack Deployments.
    • fix: Use graphql_gf_can_view_entries filter to expose submitGfFormMutation.entry to non-authenticated users. (h/t @robmarshall and @IlirBajrami )
    • fix: Change WPGatsby Trigger from deprecated gform_after_duplicate_form action to gform_post_form_duplicated.
    • dev: add $resume_token and $draft_entry arguments to graphql_gf_can_view_draft_entries.
    • dev: add $entry_id and $entry arguments to graphql_gf_can_view_entries.
    • tests: use databaseId instead of deprecated formId when testing FormQueriesTest
    • chore: Add new plugin logo and banner ✨
    Source code(tar.gz)
    Source code(zip)
  • v0.10.2(Feb 9, 2022)

    This minor release adds official support for PHP v8.0. We also added Gravity Forms Settings to the schema.

    • feat: Add support for PHP v8.0.
    • feat: Add gfSettings to GraphQL schema.
    • dev: Restore env.dist to the repo, and add .devcontainer to .gitignore.
    • chore: Update composer deps.
    Source code(tar.gz)
    Source code(zip)
  • v0.10.1(Jan 21, 2022)

    This minor release adds support for Gravity Forms Personal Data settings and the isActive field to FormConfirmation objects, and fixes a couple of bugs.

    • feat: Add personalData settings to GfForm and relevant FormField objects.
    • feat: Add field isActive to the FormConfirmation object (h/t @natac13).
    • fix: Prevent PHP notice caused by the PostFormatTypeEnum enum on sites without post-formats support (h/t @noshoesplease ).
    • fix: Ensure timeValues.minutes returns the 2-digit (mm) string.
    • tests: Fix tests incorrectly passing when a node index isn't explicitly set.
    • dev: Update composer dependencies.
    • docs: Fix missing/broken links and wording regarding custom mutation support.
    Source code(tar.gz)
    Source code(zip)
  • v0.10.0.1(Jan 15, 2022)

    This hotfix release fixes compatibility issues with gatsby-source-wordpress introduced in the previous release and WPGraphQL v1.6.11.

    • fix: don't reregister duplicate generated {type}FieldChoice and {type}InputProperty object types.
    • dev: Field type on interface FormField was changed from FormFieldTypeEnum! to FormFieldTypeEnum, since gatsby-source-wordpress doesn't support non-nullable Enums (h/t @sarah-wfaa).
    Source code(tar.gz)
    Source code(zip)
  • v0.9.2.1(Jan 9, 2022)

    This hotfix release fixes an issue where EntryUser would throw an error if the WordPress user who submitted the entry no longer exists. The field now resolves to null instead.

    • fix: resolve missing EntryUser to [] instead of throwing UserError
    Source code(tar.gz)
    Source code(zip)
  • v0.10.0(Jan 1, 2022)

    :warning: This release contains multiple breaking changes.

    This major release is a refactor the entire plugin in preparation for v1.0. GraphQL fields and types have been renamed and reorganized, the codebase is following ecosystem best practices, WP Actions and Filters have been changed to make it easier than ever, and dozens of performance enhancements have been made under the hood.

    We expect this release to be the last major breaking release before v1.0. While we can't make any promises, we don't expect to make any more breaking changes to the GraphQL schema beyond those necessary for bug fixes.

    What's new

    • 🚨 Breaking: Gravity Forms form fields are now autoregistered to the GraphQL schema using their registered GF field settings. That means all form fields (including custom fields) are implictly supported. For development purposes, certain core fields are hidden behind the WPGRAPHQL_GF_EXPERIMENTAL_FIELDS PHP constant. Learn more. Note: As a result of this change, the available fields on by the FormField interface and on individual Form field objects have changed.
    • 🚨 Breaking: Complex Gravity Forms form fields now inherit the properties of their parent $inputTypes. Form fields that can resolve to multiple types are now registed as GraphQL Interfaces (e.g. PostCategoryField), with their child types as GraphQL objects ( e.g. PostCategoryCheckboxField ).
    • 🚨 Breaking: GraphQL objects and fields have been renamed to be self documenting and prevent naming conflicts. Many fields have also been grouped into new GraphQL objects to improve DX and harden against future breaking schema changes. This is equally true for mutation inputs and payloads.
    • 🚨 Breaking: We've replaced the use of gravityForms in the schema with the gf shorthand for improved dx. gravityFormsForms are now gfForms, updateGravityFormsEntry is now updateGfEntry, etc.
    • 🚨 Breaking: Gravity Forms entries and draft entries now inherit the gfEntry interface, and use the GfSubmittedEntry and GfDraftEntry object types.
    • 🚨 Breaking: We've renamed and audited the use of all WordPress filter hooks to ensure they're actually helpful. We're using them internally to support plugin extensions, and have provided several docs on how to use them.
    • We've added support for WPGatsby Action Monitors.

    Behind the scenes

    • 🚨 Breaking: The entire PHP codebase has been refactored to follow WPGraphQL ecosystem best practices. The namespaces, folder structure, and many file names have changed.
    • 🚨 Breaking: We've removed all previously deprecated code. This includes the DraftEntryUpdater mutations, numerous GraphQL fields, and several PHP classes and interfaces.
    • 🚨 Breaking: We're now properly using GraphQL data loaders, models, and connection loaders, bringing with them significant performance boosts. As a result Global Ids are now prefixed with the data loader name, instead of the GraphQL object type.
    • We've stopped unnecessarily double-sanitizing and validating input values that are sanitized/validated by Gravity Forms.

    Misc

    • feat: add connection from Entries to their generated Post object.
    • feat: FormField connections can now be filtered by the form pageNumber.
    • feat!: change dateCreated and dateUpdated to be in the site's timezone, and added the dateCreatedGmt and dateUpdatedGmt for GMT time.
    • fix: correctly fallback to default upload directory wen using GFUtils::handle_file_upload().
    • fix: don't double sanitize/validate input values that are handled natively by GF.
    • fix: prevent existing draft entry properties from being overwritten unnecessarily on update mutations.
    • fix!: The default orderby (formerly sort) direction for Forms is now DESC to match expected behavior.
    • dev!: change arguments for GFUtils::get_resume_url() to allow for empty sourceUrls.
    • chore: move functionality for GF Signature, Quiz, and Chained Selects to the WPGraphQL/GF/Extensions namespace.
    • chore: Update Composer deps.
    • chore: Update PHPStan to v1.x and lint.
    • docs: Updated existing docs to reflect schema changes, and added Recipes that explain in detail how to extend the plugin.
    • tests: Refactored FormField tests to use GF field settings to derive the expected GraphQL response.
    • tests: Add tests for FileUpload, PostCategory, PostImage, PostTags, and Signature fields, as well as for updateGfEntry and updateGfDraftEntry mutations.

    Important Schema Changes:

    Renamed

    • Field allowsPrepopulate was renamed to canPrepopulate.
    • Field chainedSelectsHideInactive was renamed to shouldHideInactiveChoices.
    • Field copyValuesOptionField was renamed to copyValuesOptionFieldId.
    • Field disableAutoformat was renamed to isAutoformatted.
    • Field disableMargins was renamed to hasMargins.
    • Field displayAlt was renamed to hasAlt.
    • Field displayCaption was renamed to hasCaption.
    • Field displayDescription was renamed to hasDescription.
    • Field displayProgressbarOnConfirmation was renamed to hasProgressbarOnConfirmation.
    • Field displayTitle was renamed to hasTitle.
    • Field emailConfirmEnabled was renamed to hasEmailConfirmation.
    • Field enableAttachments was renamed to shouldSendAttachments.
    • Field enableAutocomplete was renamed to hasAutocomplete.
    • Field enableCalculation was renamed to isCalculation.
    • Field enableChoiceValue was renamed to hasChoiceValue.
    • Field enableColumns was renamed to hasColumns.
    • Field enableCopyValuesOption was renamed to shouldCopyValuesOption.
    • Field enableEnhancedUI was renamed to hasEnhancedUI.
    • Field enableOtherChoice was renamed to hasOtherChoice.
    • Field enablePasswordInput was renamed to isPasswordInput.
    • Field enablePrice was renamed to hasPrice.
    • Field enableSelectAll was renamed to hasSelectAll.
    • Field FormPagination.pages was renamed to pageNames.
    • Field gravityFormsEntries was renamed to gfEntries. It now returns the gfEntry interface.
    • Field gravityFormsEntry was removed in favor of the gfEntry Interface.
    • Field isPass was renamed to isPassingScore.
    • Field multipleFiles was renamed to canAcceptMultipleFiles.
    • Field noDuplicates was renamed to shouldAllowDuplicates.
    • Field passwordStrengthEnabled was renamed to hasPasswordStrengthIndicator.
    • Field postFeaturedImage was renamed to isFeaturedImage.
    • Field useRichTextEditor was renamed to hasRichTextEditor.
    • Fields gravityFormsForm was renamed to gfForm.
    • Fields gravityFormsForms was renamed to gfForms.
    • Mutation deleteGravityFormsDraftEntry and its associated Input and Payload objects were renamed to deleteGfDraftEntry.
    • Mutation deleteGravityFormsEntry and its associated Input and Payload objects were renamed to deleteGfEntry and their fields changed.
    • Mutation submitGravityFormsDraftEntry and its associated Input and Payload objects were renamed to submitGfDraftEntry.
    • Mutation submitGravityFormsForm and its associated Input and Payload objects were renamed to submitGfForm and their fields changed.
    • Mutation updateGravityFormsDraftEntry and its associated Input and Payload objects were renamed to updateGfDraftEntry.
    • Mutation updateGravityFormsEntry and its associated Input and Payload objects were renamed to updateGfEntry.
    • Object AddressInput was renamed to AddressFieldInput.
    • Object AddressTypeEnum was renamed to AddressFieldTypeEnum.
    • Object Button was renamed to FormButton.
    • Object ButtonType was renamed to Enum.
    • Object CalendarIconTypeEnum was renamed to FormFieldCalendarIconTypeEnum.
    • Object CalendarIconTypeEnum was renamed to FormFieldCalendarIconTypeEnum.
    • Object CaptchaThemeEnum was renamed to CaptchaFieldThemeEnum.
    • Object CaptchaTypeEnum was renamed to CaptchaFieldTypeEnum.
    • Object ChainedSelectInput was renamed to ChainedSelectFieldInput.
    • Object ChainedSelectsAlignmentEnum was renamed to ChainedSelectFieldAlignmentEnum.
    • Object CheckboxInput was renamed to CheckboxFieldInput.
    • Object ChoiceProperty was replaced with form-field specific {FieldType}FieldChoice objects.
    • Object ConfirmationTypeEnum was renamed to FormConfirmationTypeEnum.
    • Object ConfirmationTypeEnum was renamed to FormConfirmationTypeEnum.
    • Object DateTypeEnum was renamed to DateFieldTypeEnum.
    • Object DescriptionPlacementPropertyEnum was renamed to FormFieldDescriptionPlacementEnum.
    • Object EmailInput was renamed to EmailFieldInput.
    • Object FieldFiltersOperatorInputEnum was renamed to FieldFiltersOperatorEnum.
    • Object FieldValuesInput was renamed to FormFieldValuesInput.
    • Object FormFieldsEnum was renamed to FormFieldTypeEnum.
    • Object GravityFormsForm and its associated connection object Types were renamed to GfForm.
    • Object LabelPlacementPropertyEnum was renamed to FormFieldLabelPlacementEnum and FormLabelPlacementEnum, depending on the context.
    • Object LastPageButton was renamed to FormLastPageButton.
    • Object MinPasswordStrengthEnum was renamed to PasswordFieldMinStrengthEnum.
    • Object NameInput was renamed to NameFieldInput.
    • Object NotificationToTypeEnum was renamed to FormNotificationToTypeEnum.
    • Object PageProgressStyleEnum was renamed to FormPageProgressStyleEnum.
    • Object PageProgressTypeEnum was renamed to FormPageProgressTypeEnum.
    • Object PostImageValueProperty was renamed to ImageFieldValue.
    • Object QuizGrades was renamed to FormQuizGrades.
    • Object QuizGradingTypeEnum was renamed to QuizFieldGradingTypeEnum.
    • Object QuizSettings was renamed to FormQuiz.
    • Object RequiredIndicatorEnum was renamed to FormFieldRequiredIndicatorEnum.
    • Object RuleOperatorEnum was renamed to FormRuleOperatorEnum.
    • Object SaveAndContinue was renamed to FormSaveAndContinue.
    • Object SignatureBorderStyleEnum was renamed to SignatureFieldBorderStyleEnum.
    • Object SignatureBorderWidthEnum was renamed to SignatureFieldBorderWidthEnum.
    • Object SizePropertyEnum was renamed to FormFieldSizeEnum.
    • Object VisibilityPropertyEnum was renamed to FormFieldVisibilityEnum.

    Removed

    • Field adminLabel was removed from object types: CaptchaField, HiddenField, HtmlField, PageField, sectionField.
    • Field adminOnly was removed from all FormFields in favor of visibility.
    • Field autocompleteAttribute was removed from object type EmailField
    • Field conditionalLogic was removed from object type HiddenField
    • Field copyValuesOptionDefault was removed from object type AddressField, in favor of shoudCopyValuesOption
    • Field cssClass was removed from object type HiddenField
    • Field cssClassList (deprecated) was removed from all FormField objects.
    • Field defaultValue was removed from object type EmailField
    • Field formId was removed from individual FormField objects.
    • Field inputName was removed from object types: ConsentField, EmailField, TimeField, FileUploadField, HtmlField, PostImageField.
    • Field isHidden (deprecated) was removed from object type ChainedSelectInputProperty, DateInputProperty, EmailInputProperty,
    • Field isRequired was removed from object type HiddenField
    • Field key (deprecated) was removed from object type DateInputProperty, EmailInputProperty
    • Field label (deprecated) was removed from object type PageField
    • Field name (deprecated) was removed from object type DateInputProperty
    • Field nameFormat was removed from object type NameField
    • Field placeholder was removed from object type PasswordField
    • Field quizType was removed from interface QuizField, in favor of inputType.
    • Field size was removed from object types: AddressField, CaptchaField, ChainedSelectField, CheckboxField, DateField, FileUploadField, HiddenField, HtmlField, ListField, NameField, PageField, RadioField, SectionField, SignatureField, TimeField, PostImageField
    • Field value (deprecated) was removed from object type ListFieldValue
    • Object EntriesSortingInput was removed, in favor of EntriesConnectionOrderbyInput.
    • Object FormsSortingInput was removed, in favor of FormsConnectionOrderbyInput.
    • The following items associated with the deprecated method of form submissions have been removed, including RootQuery.createGravityFormsDraftEntry, RootQuery.updateDraftEntry{FieldType}FieldValue, and their related Input and Payload objects. Most {FieldType}FieldValue types were removed, but AddressFieldValue, CheckboxFieldValue, ListFieldValue, NameFieldValue, TimeFieldValue have been repurposed.
    • Type CheckboxInputValue was removed, in favor of CheckboxFieldInput
    • Type EntryForm was removed, in favor of returning the GfForm directly.
    • Type EntryUser was removed, in favor of returning the User directly.
    • Type GravityFormsEntry was removed, in favor of the GfEntry interface and GfSubmittedEntry object type. The associated Connection object types have been renamed as well.
    • Type ListInputValue was removed, in favor of ListFieldValue
    • Type SortingInputEnum was removed, in favor of the OrderEnum.

    Changed Type

    • Field AddressField.country changed type from String to AddressFieldCountryEnum
    • Field AddressField.defaultCountry changed type from String to AddressFieldCountryEnum
    • Field allowedExtensions changed type from String to [String]
    • Field subLabelPlacement changed type from String to FormFieldSubLabelPlacement on all FormField objects.
    • Field TimeFieldValue.amPm changed type from String to AmPmEnum
    • Field type changed type from String! to FormFieldTypeEnum! on all FormField objects.
    • Input field idType changed type from IdTypeEnum to the Enum relevant to the object type (e.g. FormIdTypeEnum ).
    • Objects PostCategoryField, PostCustomField, PostTagsField, QuizField were changed to a GraphQL Interface, and their possible Form field types added as objects.
    • The generic ChoiceProperty object was replaced with form-field-specific objects {FieldType}ChoiceProperty
    • The generic InputProperty object was replaced with form-field-specific objects {FieldType}InputProperty

    Additions

    • Field captchaBadgePosition was added to object type CaptchaField
    • Field consentValue was added to object type ConsentField
    • Field displayOnly was added to interface FormField.
    • Field hasInputMask was added to object type TextField.
    • Field hasPasswordVisibilityToggle was added to object type PasswordField
    • Field inputMaskValue was added to object type TextField
    • Field isOtherChoice was added to object type QuizChoiceProperty
    • Field isSelected was added to object type QuizChoiceProperty
    • Field labelPlacement was added to the relevant FormField object types.
    • Field text was added to object type CheckboxFieldValue
    • Field value was added to every relevant FormField object type, in addition to their special {FieldType}Value.
    • Field visibility was moved to interface FormField
    • The following fields are no longer deprecated: AddressField.inputName, CaptchaField.visibility, DateInputProperty.autocompleteAttribute, HiddenField.visibility, HtmlField.visibility, NameField.inputName, PageField.visibility, PasswordField.visibility.
    • Type ListFieldInput was added
    • Type NodeWithForm was added
    • Type PostFormatTypeEnum was added.
    • Types FormEntryLimits, FormLogin, FormPostCreation, FormSchedule were added to GfForm. Relevant fields from gfForm have been moved.
    Source code(tar.gz)
    Source code(zip)
  • v0.9.2(Nov 16, 2021)

    This minor release addresses an issue where PostImageInput would be registered to the schema even if WPGraphQL Upload wasn't enabled, breaking gqty and Gatsby schema generation. We also fixed a few other bugs and some overlooked items in the docs, and added some more WPUnit tests.

    • fix: add missing allowsPrepopulate property to PostContentField.
    • fix: Utils::maybe_decode_json() support for multidimensional arrays.
    • fix: Check for WPGraphQL Upload before registering PostImageInput to the schema.
    • chore: define WPGraphQL types with Int instead of Integer for code consistency.
    • docs: Add TimeField to list of formFields that take a value input.
    • docs: add expected object values for FileUploadValues.
    • tests: add WPUnit tests for ListField, MultiSelectField, NameField, TimeField,PostContentField, PostTitleField, PostExcerptField, GFUtils::get_forms(), Utils::maybe_decode_json(), and WPGraphQLGravityForms::instances()
    • tests: remove tests for {fieldType}FieldValue edges, since they're deprecated anyway.

    Note As part of the road to v1.0, the next release will contain numerous breaking changes to the codebase AND schema, including the removal of deprecated code (such as FieldValue edges). Please prepare accordingly.

    Source code(tar.gz)
    Source code(zip)
  • v0.9.1(Nov 1, 2021)

    This minor release adds support for Gravity Forms Quiz fields.

    • feat: Add support for GF Quiz fields.
    • fix: Fixed the type descriptions for NoDuplicatesProperty and RadioChoiceProperty.
    • dev: Use GF_Field::get_input_type() when choosing how to handle input values. This will allow for better support of composite type fields in the future.
    • docs: Update language regarding UpdateDraftEntryFieldValue's upcoming deprecation.
    • docs: Fix link to Deleting Entries doc.
    • tests: Add WPUnit tests for EmailField.
    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Oct 6, 2021)

    This minor release adds the conditionalLogic GraphQL field to gravityFormsForm.confirmations. We also squashed a few bugs and implemented some more WPUnit tests.

    Note: This release technically contains breaking changes for developers making use of DataManipulator class methods in their own code.

    • feat: add conditionalLogic GraphQL field to gravityFormsForm.confirmations.
    • fix: consistently apply Gravity Forms filters and WPGraphQL error checking to GFUtils::get_forms().
    • dev!: makes DataManipulator methods static. If you are using any DataManipulator methods in your custom code, please update accordingly.
    • tests: Refactor formField tests to extend FormFieldTestCase.
    • tests: add WPUnit tests for HtmlField, PageField, PhoneField, SectionField, SelectField, RadioField, and WebsiteField.
    • chore: update Composer deps.
    Source code(tar.gz)
    Source code(zip)
  • v0.8.2(Sep 14, 2021)

    This minor release fixes hasNextPage and hasPreviousPage checks on Entry connections.

    • fix: use entryIds in cursor for hasNextPage and havePreviousPage checks in the Entries resolver.
    • tests: add tests for has{Next|Previous}Page on Form and Entry Connections.
    • tests: add tests for HiddenField, and NumberField.
    • dev: update Composer dependencies.
    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Aug 18, 2021)

  • v0.8.0(Aug 12, 2021)

    :warning: This release requires Gravity Forms v2.5.0 or higher.

    This release reworks all GraphQL connections, implementing data loaders, optimizing database queries, and adding support for more where args in more situations.

    New Features

    • gravityFormsForms can now be filtered by a list of form IDs.
    • FormEntry connections now have access to the following where args: status, dateFilters, fieldFilters, fieldFiltersMode.
    • formField can now be filtered by a list of field IDs, adminLabels, and the field type.
    • [Breaking] Full pagination support has been added to Forms and Entries. Note: cursor generation has changed, so if you are manually generating form or entry cursors, you will need to update your code.
    • [Breaking] FieldFiltersOperatorInputEnum now supports all remaining Gravity Forms entry search operators, such as LIKE, IS, IS_NOT. The GREATER_THAN and LESS_THAN operators have been removed, as they are not supported by Gravity Forms.

    Bugfixes

    • Correctly handle sourceUrl changes in submitGravityFormsForm and updateGravityFormsDraftEntry mutations.
    • wp_graphql_gf_can_view_entries filter now correctly passes $form_ids instead of non-existent $entry_ids.
    • fieldFilters now correctly search through array entry values.
    • EntriesFieldFiltersInput.key is now optional.

    Under the Hood

    • [Breaking] Bumped minimum GF version to v2.5.x.
    • [Breaking] Connections have been completely refactored. The new classes are EntryConnections, FieldConnections and FormConnections.
    • [Breaking] RootQueryEntriesConnectionResolver and RootQueryFormsConnectionResolver classes were renamed to EntriesConnectionsResolver and FormConnectionResolver. They now properly extend AbstractConnectionResolver.
    • Form connections now implement a DataLoader.
    • Added GFUtils::get_forms() for speedy requests from $wpdb.
    • Fixed various code smells.
    • docs: Updated information about queries to reflect pagination and new where args.
    • tests: WPUnit tests now extend GFGraphQLTestCase.
    • tests: [Breaking] WPGraphQLGravityForms\Tests namespace has been renamed to Tests\WPGraphQL\GravityForms.
    Source code(tar.gz)
    Source code(zip)
  • v0.7.3(Aug 3, 2021)

    This release adds compatibility with WPGraphQL v1.6.x, and its new lazy/eager type loading.

    • fix: Add eagerlyLoadType property to WPGraphQL type registration.
    • fix: Hook type registration using get_graphql_register_action().
    • fix: Fix typo in addressField.copyValueOptionsLabel type definition.
    • fix: Check entry values before (unnecessarily) updating them in SubmitGravityFormsForm mutation.
    • dev: Update composer dependencies.
    • tests: Clear WPGraphQL schema before/after each test.
    Source code(tar.gz)
    Source code(zip)
  • v0.7.2.1(Jul 29, 2021)

    (Re-released, as the last one incorectly contained the old version.)

    • Fixes bug where unset formFields properties would cause a type error for Enums. (h/t @natac13)
    Source code(tar.gz)
    Source code(zip)
Owner
Harness Software
Software that makes health & safety programs easy for construction companies.
Harness Software
Wordpress advance plugin with multi purposes features like live chat, custom post type, custom forms, word count etc

What is this? This is wordpress plugin which is created for the multi purpose uses. How to use? Simply install the plugin. Go to the plugin settigs pa

Amir Liaqat 2 Jun 23, 2022
Makes WP GraphQL's authetication "just work". It does this by customizing the CORS headers.

WP GraphQL CORS The primary purpose of this plugin is to make the WP GraphQL plugin authentication "just work". It does this by allowing you set the C

Funkhaus 86 Jan 5, 2023
Query gutenberg blocks with wp-graphql

WPGraphQL Gutenberg Query gutenberg blocks through wp-graphql Usage Docs Join our community through WpGraphQL Slack Install Requires PHP 7.0+ Requires

null 270 Jan 3, 2023
Enable query locking for WPGraphQL by implementing persisted GraphQL queries.

?? WP GraphQL Lock This plugin enables query locking for WPGraphQL by implementing persisted GraphQL queries. Persisted GraphQL queries allow a GraphQ

Valu Digital 21 Oct 9, 2022
Adds meta data registered via register_meta() to the GraphQL output.

WP GraphQL Meta This plugin is an add-on for the awesome WP GraphQL It builds on top of both WP GraphQL and the REST API. Any meta data you register u

Robert O'Rourke 18 Aug 4, 2021
Offset pagination for WP GraphQL

WP GraphQL Offset Pagination This is an extension for the WPGraphQL plugin for WordPress. It adds basic offset pagination as opposed to the standard C

Daryll Doyle 13 Sep 19, 2022
An WPGraphQL extension that adds SearchWP's query functionality to the GraphQL server

QL Search What is QL Search? An extension that integrates SearchWP into WPGraphQL. Quick Install Install & activate SearchWP v3.1.9+ Install & activat

Funkhaus 11 May 5, 2022
Bringing the power of GraphQL to BuddyPress.

WPGraphQL BuddyPress Bringing the power of GraphQL to BuddyPress. Docs (soon) β€’ Join Slack System Requirements PHP >= 7.1 WP >= 4.9 WPGraphQL >= lates

WPGraphQL 31 Jan 2, 2023
A WordPress package for updating custom plugins and themes based on an API response from a custom update server.

WordPress Update Handler A WordPress package for updating custom plugins and themes based on an JSON REST API response from a custom update server. Ch

WP Forge 7 Oct 5, 2022
A custom update API for WordPress plugins and themes

A custom update API for WordPress plugins and themes. Intended to be used in conjunction with my plugin-update-checker library.

Yahnis Elsts 717 Dec 31, 2022
A PHP client for Wordpress websites that closely implement the XML-RPC WordPress API

Wordpress XML-RPC PHP Client A PHP client for Wordpress websites that closely implement the XML-RPC WordPress API Created by Hieu Le MIT licensed. Cur

Hieu Le 112 Nov 10, 2022
Gravity PDF is a GPLv2-licensed WordPress plugin that allows you to automatically generate, email and download PDF documents using Gravity Forms.

Gravity PDF Gravity PDF is a GPLv2-licensed WordPress plugin that allows you to automatically generate, email and download PDF documents using the pop

Gravity PDF 90 Nov 14, 2022
A library of powerful code snippets to help you get the job done with Gravity Forms and Gravity Perks.

Gravity Wiz Snippet Library Gravity Wiz is creating the most comprehensive library of snippets for Gravity Forms ever. We'll be consistently moving ou

Gravity Wiz 151 Dec 27, 2022
πŸ”’ Built a recaptcha for Nifty that works with Wordpress's Gravity Forms

Recaptcha Fully Functioning spam filter that has 10 levels of security, but is slim and rpackaged to integrate with any Gravity Forms form WORKING EXA

Lisa Broadhead 1 May 17, 2022
Transform your WordPress site into a modern GraphQL server: graphql-api.com.

GraphQL API for WordPress Transform your WordPress site into a modern GraphQL server: graphql-api.com. This plugin is the implementation for WordPress

GraphQL API 151 Dec 14, 2022
Monorepo of the PoP project, including: a server-side component model in PHP, a GraphQL server, a GraphQL API plugin for WordPress, and a website builder

PoP PoP is a monorepo containing several projects. The GraphQL API for WordPress plugin GraphQL API for WordPress is a forward-looking and powerful Gr

Leonardo Losoviz 265 Jan 7, 2023
Syntax to query GraphQL through URL params, which grants a GraphQL API the capability to be cached on the server.

Field Query Syntax to query GraphQL through URL params, which grants a GraphQL API the capability to be cached on the server. Install Via Composer com

PoP 4 Jan 7, 2022
Monorepo of the PoP project, including: a server-side component model in PHP, a GraphQL server, a GraphQL API plugin for WordPress, and a website builder

PoP PoP is a monorepo containing several projects. The GraphQL API for WordPress plugin GraphQL API for WordPress is a forward-looking and powerful Gr

Leonardo Losoviz 265 Jan 7, 2023
Twill GraphQL provides easy access to query-specific fields from Twill CMS modules and user-defined modules with GraphQL

Twill CMS GraphQL ?? WIP - not stable Twill GraphQL provides easy access to query-specific fields from Twill CMS modules and user-defined modules with

Izet Mulalic 8 Dec 6, 2022
Interacting with Mastodon's REST API for Kirby v3

Kirby3 Mastodon This plugin provides access to your Mastodon statuses, called 'toots'. Getting started Use one of the following methods to install & u

Fundevogel 5 Dec 31, 2022