🛑 This repo holds historical code for GiveWP's v3.0 journey. Since the core release this repo has been archived.
🚨 Warning this project is a work in progress and should not be used on a live site to accept donations. With that disclaimer out of the way, let's answer the question of what the heck this is. The goal of this project is to provide GiveWP admins complete flexibility over the donation form creation process via a brand new visual donation builder.
GiveWP is developing a solution to allow fundraisers to create their donation forms in a more powerful, drag-and-drop, visual way.
At the core of the project is a new interface designed to give administrators new tools to create and edit their donation forms. It will be similar to other form builders, but specifically tailored to the unique needs of nonprofit organizations.
In this new interface admins will be able to add custom fields to various locations of their donation form and map the corresponding custom data to either donor or donation metadata. The default required fields for donation forms (first and last name, email, and relevant payment fields) will be customizable by allowing label changes, placeholder text, tooltips, and more.
To achieve this new functionality the team is engaging in UX/UI design and development, frontend and backend database development, and an extensive overhaul of the payment gateways API.
Want to help contribute? Awesome! We're always looking for new contributors to help us out.
- Clone this repository locally in your
wp-content/plugins/
directory. - Run
composer install
from the CLI - Run
npm install
from the CLI
To compile your CSS & JS assets, run one of the following:
npm run build
— Compiles all assets for the add-on and form buildernpm run dev
— Compiles all assets for the addonnpm run dev:form-builder
— Compiles all assets for the form-buildernpm run watch
— Compiles all assets for the addon and then watches for changesnpm run watch:form-builder
— Compiles all assets for the form builder and then watches for changes
Parts of the codebase are separated out into packages, making the repository a "monorepo". This allows for related functionality to be maintained in the same repository, but allows for technical differences in development.
Packages are managed using NPM "workspaces" and NPM commands can be passed to individual packages using the -w
flag and are namespaced as @givewp/{package-name}
.
The Visual Donation Form Builder package - uses WordPress Gutenberg components to create a custom block editor (not to be confused with THE WordPress Block Editor, which is the main solution built with the Gutenberg components).