Docs

GiveWP Integration

3 min readUpdated June 21, 2026

GiveWP is a WordPress donation plugin used by nonprofits, charities, and fundraising campaigns. WP Smart Consent integrates with both GiveWP’s legacy shortcode forms and its newer block-based forms, capturing opt-in consent at donation time and forwarding donor data to your enabled CRM destinations once the donation is confirmed.

Enabling the Integration#

In the WP Smart Consent dashboard, go to Checkout Sources and toggle GiveWP on. No additional configuration is needed on the GiveWP side for legacy forms. The checkbox appears on all legacy GiveWP donation forms immediately after saving.

Screenshot of GiveWP plugin settings. "Inactive" is shown in the top right. Tabs for "General" and "Collect fields" are visible. Options to enable and forward data to CRMs are off. A green "Save GiveWP" button appears at the bottom left.

Custom Fields#

GiveWP does not have a per-form field selector. To forward additional data beyond the standard fields, use the Global data fields tab in the WP Smart Consent dashboard. Set the source to Order meta and enter the GiveWP payment meta key as the source key — for example _give_donor_phone for the donor phone number.

Screenshot of GiveWP donation forms settings. The "Collect fields" tab is open. There are toggles to collect phone number (off) and company name (on), with an option to add a custom field. "Save GiveWP" button is at the bottom. Status shows "Inactive.

How It Works — Legacy Forms#

For shortcode-based and classic block forms, WP Smart Consent injects the opt-in checkbox via give_donation_form_before_submit, placing it directly above the donate button. The consent value is captured from $_POST on the give_insert_payment hook and stored as payment meta (_wpsc_optin). Forwarding to your CRM destinations fires on give_complete_donation, which only runs after the donation payment is confirmed complete.

How It Works — Block Forms#

GiveWP’s v3 block forms run as a React SPA inside an iframe. PHP hooks cannot inject markup into the React render tree, so the WPSC checkbox cannot be automatically injected into block forms.

For block forms, consent is captured via the givewp_donate_controller_donation_created hook, which fires when GiveWP processes the JSON payload submitted by the React form. If a wpsc_optin custom field has been registered on the block form via GiveWP’s FieldsAPI, its value is read from $formData and stored as payment meta. If no such field is registered, the value defaults to 0.

The practical options for block forms are: register a wpsc_optin custom field on the form via GiveWP’s FieldsAPI or a compatible plugin, use GiveWP’s built-in Terms & Conditions or Consent field and enable Send on unchecked on your CRM destinations, or switch to Newsletter mode so every completed donation counts as an opt-in.

What Gets Forwarded#

Email, first name, last name, billing address, city, state, postcode, country, phone (from _give_donor_phone donor meta), and order total (the donation amount as a decimal string).

Send on Unchecked#

When enabled on a specific CRM destination in its Options tab, that destination receives donor data from every completed GiveWP donation regardless of whether the checkbox was ticked. This is particularly useful with block forms where checkbox injection is not available.

Troubleshooting#

Checkbox not appearing on legacy forms — confirm the GiveWP integration is enabled. The checkbox is injected via give_donation_form_before_submit at priority 5. If another plugin hooks the same action at a lower priority and replaces the submit area, the checkbox may be displaced.

Checkbox not appearing on block forms — this is expected. Block forms use a React SPA that cannot receive PHP-injected markup. See the block forms section above for alternatives.

Donor not forwarded after donation — forwarding fires on give_complete_donation. Donations that fail payment or remain pending never trigger this hook. Confirm the donation status is Complete in GiveWP before troubleshooting further.

Phone not forwarded — phone is read from _give_donor_phone in GiveWP donor meta. If GiveWP is not collecting phone on your form, this field will be blank.

This website uses cookies to enhance your browsing experience and ensure the site functions properly. By continuing to use this site, you acknowledge and accept our use of cookies.

Accept All Accept Required Only