DOCS

WooCommerce Integration

The WooCommerce integration is a Pro feature that connects Fundations fundraisers with WooCommerce’s order system. It is not a standalone payment provider. Donors still pay through Mollie, Stripe, or PayPal. WooCommerce handles the fulfilment of physical or digital products attached to a donation.

Requirements:

  • WooCommerce installed and activated
  • Fundations Pro with an active license

Why use this integration

Some campaigns pair a donation with a reward or product: a donor gives a set amount and receives a t-shirt, a thank-you package, or digital content. The WooCommerce integration lets you attach specific WooCommerce products to a fundraiser page. When a donor pays, a WooCommerce order is created automatically and handled through your existing fulfilment workflow.

This is also useful if you already use WooCommerce and want a single order management interface across your store and fundraising activity.

What it does

The integration runs in two phases.

In phase 1, when a donation transitions to paid status, Fundations creates a pending WooCommerce order linked to that donation.

In phase 2, when the payment is fully confirmed (get_fund_donation_completed), the pending WC order is marked as paid and processing begins.

Additional behaviour:

  • A custom column in the WooCommerce orders list links back to the associated fundraiser.
  • A Fundations tab appears in the WooCommerce order edit screen.
  • All WooCommerce customer emails for these orders are suppressed automatically. Donors receive the Fundations confirmation email instead of the WooCommerce order emails.
  • The integration only creates orders for products explicitly enabled for Fundations (see setup below).

How to set up the WooCommerce integration

Step 1: Confirm WooCommerce is active

The WooCommerce plugin must be installed and activated. If it is not present, Fundations will display an error notice in the settings.

Step 2: Enable the integration

  1. Go to Fundations → Settings → WooCommerce.
  2. The tab shows the integration status and a list of products already enabled.
  3. The integration activates automatically when WooCommerce is present and Pro is licensed. There is no separate enable toggle.
Fundations woocommerce settings tab

Step 3: Enable products for Fundations

For each WooCommerce product you want to offer on a fundraiser page:

  1. Open the product in WooCommerce → Products → Edit.
  2. Go to the Fundations Donation tab in the product data section.
  3. Check Enable for Fundations checkout.
  4. Optionally add a description that will appear on the fundraiser page.
  5. Optionally restrict the product to specific fundraiser pages by checking Limit to specific fundations and selecting the pages.
  6. Save the product.
Woocommerce product fundations tab

Step 4: Add blocks to your fundraiser page

Two blocks are available for fundraiser pages.

get-fund/product-selector displays WooCommerce products enabled for the current fundraiser, with quantity controls for the donor.

get-fund/checkout-button is a button that links the donor to the Fundations checkout page. Customisable text, colour, size, border radius, and outline style.

Add both blocks to your fundraiser page template or individual fundraiser pages using the block editor.

Fundations checkout button block

Step 5: Test the flow

  1. Use a payment provider in test mode (Mollie or Stripe test, or PayPal sandbox).
  2. Visit a fundraiser page and select a product.
  3. Complete a donation.
  4. Check WooCommerce → Orders to confirm the order was created and shows the correct status.
  5. Check Fundations → Donations to confirm the donation is marked paid.

Product settings reference

SettingDescription
Enable for Fundations checkoutMakes this product available on fundraiser pages.
DescriptionShort text shown below the product on the fundraiser page. Accepts HTML.
Limit to specific fundationsWhen enabled, the product only appears on the selected fundraiser pages.
Selected fundationsList of fundraiser post IDs to restrict the product to.

These settings are stored as product meta:

Meta keyValue
_get_fund_checkout_enabledyes or no
_get_fund_checkout_descriptionHTML string
_get_fund_specific_actionsyes or no
_get_fund_selected_actionsArray of post IDs

What you can and cannot do

You can attach physical or digital products to any fundraiser page, restrict products to specific pages, and manage fulfilment through the existing WooCommerce order workflow. Any WooCommerce-compatible shipping, tax, or inventory plugin works alongside the integration.

You cannot use WooCommerce as a replacement payment gateway for donations. Donors still pay through Mollie, Stripe, or PayPal configured in Fundations. WooCommerce customer emails are suppressed for these orders; donors receive only the Fundations confirmation email. The integration requires both WooCommerce and a valid Fundations Pro license. Recurring donation-linked orders are not supported (recurring donations are currently disabled).

Troubleshooting

Products do not appear on the fundraiser page. Confirm the product has Enable for Fundations checkout checked in the Fundations Donation tab. If you enabled Limit to specific fundations, confirm the correct fundraiser page is in the selected list. Also confirm the Product Selector block is placed on the fundraiser page template.

WooCommerce order is created but not marked paid. This means phase 2 did not fire. Confirm that the payment completed correctly and that get_fund_donation_completed was fired. Check the payment provider’s webhook (Mollie or Stripe) to confirm the payment was confirmed asynchronously.

Donors are receiving WooCommerce emails. The integration disables 7 WooCommerce email types for these orders. If emails are still arriving, a WooCommerce plugin or customisation may be re-enabling them. Check for custom email plugins that override woocommerce_email_enabled_* filters.

The WooCommerce settings tab shows an error notice. WooCommerce is not active. Install and activate WooCommerce and then return to Fundations → Settings → WooCommerce.

The settings tab shows an upsell notice instead of the configuration. Fundations Pro is not active or the license is not valid. See your Pro license settings to confirm the license is activated for this site.

Developer reference

How the two-phase order creation works

Phase 1 hooks onto get_fund_donation_status_transition at priority 10 with 3 arguments:

add_action( 'get_fund_donation_status_transition', [ $this, 'create_pending_order' ], 10, 3 );
// Receives: int $donation_id, string $new_status, string $old_status
// Creates a WC order when $new_status === 'paid'

Phase 2 hooks onto get_fund_donation_completed:

add_action( 'get_fund_donation_completed', [ $this, 'complete_wc_order' ], 10, 2 );
// Receives: int $donation_id, array $data
// Marks the pending WC order as paid

WooCommerce emails suppressed

The integration disables the following WooCommerce email types for Fundations-linked orders by filtering woocommerce_email_enabled_{type}:

  • new_order
  • cancelled_order
  • customer_processing_order
  • customer_completed_order
  • customer_refunded_order
  • failed_order
  • customer_on_hold_order

To re-enable a specific email for Fundations orders, remove the filter added by the integration or return true selectively based on order meta.

Blocks

BlockSlugDescription
Checkout Buttonget-fund/checkout-buttonLinks to the Fundations checkout page. Supports: button text, colour, font size, border radius, outline style.
Product Selectorget-fund/product-selectorLists enabled WC products for the current fundation with quantity controls.

Actions

ActionWhen firedRelevance
get_fund_donation_status_transitionEvery status change on any donationWooCommerce integration listens here to create the pending order.
get_fund_donation_completedPayment fully confirmedWooCommerce integration listens here to complete the order.