web-nomads / wn-raisenow
RaiseNow donation forms for TYPO3: configure Tamaro donation widgets in the backend - amounts, currencies, payment methods, purposes, thank-you page - and place them on any page as a content element.
Package info
github.com/web-nomads/wn-raisenow
Type:typo3-cms-extension
pkg:composer/web-nomads/wn-raisenow
Requires
- php: ^8.1
- ext-json: *
- typo3/cms-backend: ^12.4 || ^13.4 || ^14.3
- typo3/cms-core: ^12.4 || ^13.4 || ^14.3
- typo3/cms-fluid: ^12.4 || ^13.4 || ^14.3
- typo3/cms-frontend: ^12.4 || ^13.4 || ^14.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.70
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.5 || ^11.0
- typo3/cms-fluid-styled-content: ^12.4 || ^13.4 || ^14.3
- typo3/coding-standards: ^0.8
- typo3/testing-framework: ^8.2 || ^9.3
Suggests
- typo3/cms-fluid-styled-content: Provides lib.contentElement, which the content element is rendered with
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-26 15:29:31 UTC
README
Puts RaiseNow donation forms on TYPO3 pages. Editors configure a form in the backend — amounts, currencies, payment methods, purposes, thank-you page — and place it on any page as a content element. The form itself is RaiseNow's Tamaro widget, so payments, receipts and reporting run through RaiseNow as before.
Requirements
| TYPO3 | PHP |
|---|---|
| 12.4 LTS | 8.1 – 8.5 |
| 13.4 LTS | 8.2 – 8.5 |
| 14.3 | 8.2 – 8.5 |
Composer-based and classic (non-Composer) installations are both supported.
What you need from RaiseNow
A Tamaro widget ID. RaiseNow sends it with the onboarding e-mail, and it is
listed in RaiseNow Hub under Tamaro donation widgets as the configuration
name. It is the part between tamaro.raisenow.com/ and /latest/widget.js in
the embed code RaiseNow provides:
<script src="https://tamaro.raisenow.com/my-organisation-de/latest/widget.js"></script>
The embeddable forms of RaiseNow Hub's Free plan (iframe) and Paylinks are not Tamaro widgets and are not covered by this extension.
Installation
With Composer:
composer require web-nomads/wn-raisenow vendor/bin/typo3 extension:setup
Without Composer (classic mode): install wn_raisenow from the TYPO3 Extension Repository in the Extension Manager, or upload the archive there. Activating it creates the database tables.
On sites using typo3/cms-fluid-styled-content — through its site set or its
static template — nothing else needs to be included: the extension adds its
TypoScript right after the content rendering of fluid_styled_content, the way
felogin and form do.
Sites rendering content with another library need to include the TypoScript
themselves, and that library has to define lib.contentElement with a
Default layout:
- TYPO3 13 and 14: add the site set RaiseNow donation forms
(
web-nomads/raisenow) to the site. - TYPO3 12, or sites without site sets: include the static template RaiseNow donation forms in the TypoScript record.
Usage
- Create a folder in the page tree and add a Donation form record there (list module). Enter the widget ID; everything else is optional.
- Add the content element RaiseNow donation form to a page and select the record.
Options of a donation form
Every option left empty keeps what RaiseNow configured for the widget. Filling in a field overrides that value for this form only.
| Tab | Option | Tamaro option |
|---|---|---|
| Widget | Widget ID, widget version (latest by default) |
script URL |
| Language: automatic (page language) or fixed | language |
|
| Force test mode | testMode |
|
| Amounts | Currencies, preselected currency | currencies, defaultCurrency |
| One-off / recurring, preselected payment type | paymentTypes, defaultPaymentType |
|
| Intervals, preselected interval, highlight recurring | recurringIntervals, defaultRecurringInterval, highlightRecurring |
|
| Amounts for one-off and for recurring donations | amounts |
|
| Preselected amount, custom amount allowed, minimum, maximum | defaultAmount, allowCustomAmount, minimumCustomAmount, maximumCustomAmount |
|
| Payment methods | Payment methods in the order selected, preselected method | paymentMethods, defaultPaymentMethod |
| Purposes | Purposes with key, label and campaign ID / sub-ID; preselected purpose | purposes, translations, purposeDetails, defaultPurpose |
| Advanced | Thank-you page | redirectToCustomResultPage |
| Additional configuration as JSON | any option |
Purposes are translated like any other record: translate the donation form
and its purposes, and the widget shows the labels of the page language. The
campaign ID and sub-ID are stored with the donation in RaiseNow
(stored_campaign_id, stored_campaign_subid).
Thank-you page: after the payment the donor is redirected there instead of
seeing the result inside the widget. The payment reference and status are
appended to the URL — epms_payment_uuid and epms_payment_status for RaiseNow
Hub, epms_subscription_uuid and epms_subscription_status for recurring
donations, and the epp_* equivalents for widgets still running on the
RaiseNow Manager.
Additional configuration takes a JSON object with any option from the Tamaro documentation. Its top-level keys replace whatever the fields above produced, for example:
{"showFooter": false, "salutations": ["ms", "mr"]}
Invalid JSON is ignored rather than breaking the form.
Things to know
- One donation form per page. Tamaro keeps a single widget instance per page, so only the first donation form on a page is shown.
- Test mode is set by RaiseNow: a new widget starts in test mode and RaiseNow
switches it to production once it is integrated. Force test mode is meant
for a test page; it cannot switch a widget to production. Adding
#widgetdebugto the page URL opens Tamaro's debug panel. - Payment methods only appear if they are activated for your RaiseNow account, whatever is selected here.
- Content Security Policy: the extension extends the frontend policy with
what the widget needs — scripts from
tamaro.raisenow.comandcdn.jsdelivr.net, styles and fonts fromassets.raisenow.io, requests to RaiseNow, and frames of RaiseNow, Datatrans, PayPal and Stripe. This applies to every site whosecsp.yamlkeepsinheritDefault: true; a site that defines its policy from scratch has to add these sources itself.
Styling
The widget sits in a container <div class="wn-raisenow">. A default
stylesheet gives that container a white background and 30 pixels of padding,
so the form does not run up to the edge of the white area Tamaro draws. It is
only added to pages that show a donation form.
Adjust the default in your own CSS — its rule has zero specificity
(:where()), so any selector of yours wins without !important:
.wn-raisenow { --wn-raisenow-padding: 40px; --wn-raisenow-background: transparent; }
Replace the default with your own file, or switch it off:
# own stylesheet instead of the default
tt_content.wnraisenow_form.settings.stylesheet = EXT:my_sitepackage/Resources/Public/Css/donation-form.css
# SCSS, compiled by ws_scss
tt_content.wnraisenow_form.settings.stylesheet = EXT:my_sitepackage/Resources/Private/Scss/donation-form.scss
# no stylesheet at all
tt_content.wnraisenow_form.settings.stylesheet =
SCSS needs the extension ws_scss.
Without it a .scss file is skipped and a warning is logged, rather than a
stylesheet the browser cannot read being linked. Options of ws_scss such as
variables set under plugin.tx_wsscss.variables apply as usual.
Tamaro's own elements carry classes like .tamaro-widget; styling them from
the outside works, but RaiseNow may change that markup with any widget update.
For colours and fonts, prefer the styling options of the widget configuration
(see Tamaro styling).
Templates
The template can be replaced via TypoScript:
tt_content.wnraisenow_form.templateRootPaths.1740 = EXT:my_sitepackage/Resources/Private/Templates/RaiseNow/
It receives {raisenow.form} (the record), {raisenow.config} (the Tamaro
configuration as an array) and {raisenow.settings} (the JSON the JavaScript
reads from data-wn-raisenow). {raisenow} is empty if the selected record is
hidden or has no valid widget ID.
Development
composer install composer ci # coding standards, PHPStan, unit and functional tests composer test:functional # SQLite by default
The GitHub workflow runs the suite against TYPO3 12.4, 13.4 and 14.3 on every supported PHP version.
Licence
GPL-2.0-or-later. This extension is not affiliated with RaiseNow.