WP Manifestindependent plugin directory
manifest / forms / dpo_gravity_forms

DPO Pay Add-On for Gravity Forms WP Registry grade D+. High-severity findings · 2 findingsWP RegistryHigh-severity findings · 2 findingsOpen the reportD+

This is the DPO Group plugin for Gravity Forms.

★ 3stars
402release downloads
≈40active sites
v1.2.0latest · 1 year ago

Install

Download gravity-forms-dpo-group-plugin.zip From the v1.2.0 release on GitHub, Jul 16, 2025

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/dpo-group/dpo_gravity_forms/releases/download/v1.2.0/gravity-forms-dpo-group-plugin.zip
Updates itself. It ships its own updater, so new versions appear under Dashboard → Updates.

DPO Pay plugin v1.2.0 for Gravity Forms v2.9.10

This is the DPO Pay plugin for WooCommerce. Please feel free to contact the DPO Pay support team should you require any assistance.

Installation

  1. Download the Latest Release

  2. Install the Plugina

    • Log in to your WordPress Admin panel.
    • Navigate to Plugins > Add New > Upload Plugin.
    • Click Choose File and locate the gravity-forms-dpo-group-plugin.zip file.
    • Click Install Now.
    • Click Activate Plugin.
  3. Configure the Plugin

    • Click on the Forms link in your WordPress Admin.
    • Select the form you want to integrate with DPO Pay.
    • Under Form Settings, click DPO Pay.
    • Under the DPO Pay Feeds section, click Add New and provide the required data:
      • Select transaction type: Choose Products and Services. Additional settings will appear.
      • Map fields: Match DPO Pay fields with your form fields:
        • Ensure your form includes Pricing Fields, Address Fields, and an Email Field.
        • Map the DPO Pay country field to the form's country field.
        • Map the DPO Pay email field to the form's email field.
    • Click Update Settings or Save Settings when done.

sample-1.jpg sample-2.jpg

  1. Configure Confirmation Messages
    • Go to the Confirmations section.
    • Add three new confirmations with the following names:
      • Confirmation Name: failed
      • Confirmation Name: cancelled
      • Confirmation Name: approved

sample-3.jpg

Collaboration

Please submit pull requests with any tweaks, features or fixes you would like to share.

Releases

10 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.2.0 latest
Jul 16, 2025 1 year ago
gravity-forms-dpo-group-plugin.zip
32
Jun 3, 2025 1 year ago
gravity-forms-dpo-group-plugin.zip
9
Apr 29, 2024 2 years ago
Gravity_Forms_2.8.8_DPO_Plugin_1.0.7.zip
39
Mar 2, 2023 3 years ago
Gravity_Forms_2.6.9_DPO_Plugin_1.0.6.zip
96
Jan 27, 2023 3 years ago
Gravity_Forms_2.6.9_DPO_Plugin_1.0.5.zip
33
Oct 12, 2022 4 years ago
Gravity_Forms_2.6.7_DPO_Plugin_1.0.4.zip
55
Apr 13, 2022 4 years ago
Gravity_Forms_2.5.2_DPO_Plugin_1.0.3.zip
56
May 19, 2021 5 years ago
Gravity_Forms_2.5.2_DPO_Plugin_1.0.2.zip
44
Jan 27, 2020 6 years ago
Gravity_Forms_2.4.16_DPO_Plugin_1.0.1.zip
25
Dec 9, 2019 6 years ago
Gravity_Forms_2.4.15_DPO_Plugin_1.0.0.zip
13

Active-site estimate ≈40 comes from the median of recent superseded releases. Method.

D+ grade

Security

DPO Pay Add-On for Gravity Forms 1.2.0 · audited by WP Registry

High-severity findings.

1 high 1 medium
Audited release
1.2.0
Findings
2
Worst severity
high
Content hash
7184883037035cd96f2919e6…

Findings

  • high Declined DPO callback writes payment_status using attacker-controlled CompanyRef as entry ID

    missing_auth

    When verifyToken returns Result 901, notify_handler maps status to 2 and falls into notifyFailed(). That helper updates payment_status=Declined and adds an entry note using $notify_data['REFERENCE'], which is copied from GET CompanyRef (sanitize_text_field only). There is no check that CompanyRef equals the lead in gf_dpo_group_return, that the lead is a DPO payment, or that it is still Pending. Observable: complete a checkout that DPO declines (Result 901), keep that TransactionToken and the minted gf_dpo_group_return so the feed/company token still load, then replay with CompanyRef=<any sequential GF entry id>. GFAPI::update_entry_property marks that lead Declined, including already-Approved or non-DPO entries.

    class-gf-dpo-group.php:93-98,159-172,252-263

    Recommendation

    Update and annotate only the lead decrypted from gf_dpo_group_return (lead_id/eid). Treat CompanyRef as an integrity check against the stored companyRef, never as an entry id. Ignore leads that are not this add-on's and do not overwrite a terminal payment_status.

  • medium Unauthenticated eid parameter loads any Gravity Forms entry into post content merge tags

    information_disclosure

    gw_dpo_group_post_content_merge_tags() is invoked with defaults (encrypt_eid=false, auto_append_eid=false) and hooks the_content on every front-end request. get_entry_id() takes GET eid; maybe_decrypt_entry_id() returns a numeric eid unchanged when encryption is off, then GFFormsModel::get_lead() loads that entry and GFCommon::replace_variables(..., $esc_html=false) substitutes merge tags in the post body. Entry IDs are sequential. If any public page or confirmation body contains {all_fields} or field merge tags (the add-on documents this pattern for confirmation pages), an unauthenticated visitor can enumerate ?eid=1,2,... and read other payers' PII. Encrypted eids from payment returns also decrypt here because the non-numeric branch always calls DPO_Group_GF_encryption().

    includes/dpo-group-tools.php:32-67,181-213,232-237

    Recommendation

    Default encrypt_eid to true (always require DPO_Group_GF_encryption of eid). Do not accept raw numeric IDs. Restrict merge-tag replacement to confirmation/success pages rather than every the_content call, and pass $esc_html=true into GFCommon::replace_variables.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.