UCA Payment Gateway with WayForPay for GiveWP
Wayforpay Payment Gateway integration for the GiveWP WordPress Plugin.
by Ukrainian Charity Alliance · github.com/ukrainian-charity-alliance/wayforpay-givewp
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/ukrainian-charity-alliance/wayforpay-givewp/archive/refs/heads/main.zipWayforpay Payment Gateway integration for the GiveWP WordPress Plugin.
Installation
The recommended way to install this plugin is by downloading the pre-built release from GitHub.
From a Release (Recommended):
- Download the latest
uca-payment-gateway-with-wayforpay-for-givewp.zipfile from the Releases page on GitHub. - In your WordPress admin panel, go to Plugins → Add New Plugin.
- Click Upload Plugin, select the downloaded
.zipfile, and click Install Now. - Activate the plugin.
From Source: If you prefer to build the plugin yourself:
- Clone this repository.
- Run
composer installto install dependencies. - Run
composer zipto generate the production-ready zip file. - Upload the generated zip file to your WordPress installation.
Testing
The plugin uses PHPUnit with the WordPress test suite. A Docker container provides the MySQL test database.
Prerequisites
- Docker installed and running
- Composer dependencies installed (
composer install)
Running Tests
Use the Composer scripts defined in composer.json:
# Run everything in one command:
# brings the test database up, runs PHPUnit, then tears it back down
composer test
If you want to manage the test database manually:
# Start the test database
composer docker:up
# Run PHPUnit against the running database
./vendor/bin/phpunit --colors
# Stop the test database
composer docker:down
Plugin Check
Plugin Check is the WordPress.org review tooling. It validates readme.txt, the plugin headers and the shipped code against the plugin directory guidelines, which is a different job from composer lint — PHPCS enforces the coding standards, Plugin Check enforces the directory guidelines.
It runs against the distributed plugin rather than the working tree, so tests/, scripts/ and dev dependencies are not reported. The plugin is built into build/uca-payment-gateway-with-wayforpay-for-givewp/ from .distignore — the same file list composer zip ships — and left there afterwards, so you can inspect exactly what was checked.
Prerequisites
- Docker installed and running — Plugin Check is itself a WordPress plugin, so it needs a WordPress install to run in. The script keeps a throwaway one in Docker volumes; nothing is installed on the host.
Running Plugin Check
composer plugin-check
The first run pulls the Docker images and downloads WordPress and Plugin Check; later runs reuse them and take seconds. Any extra arguments are passed through to wp plugin check:
composer plugin-check -- --format=csv
composer plugin-check -- --categories=security,plugin_repo
composer plugin-check -- --clean # discard the cached WordPress install
Only the static checks run locally — that is the WP-CLI default. The runtime checks additionally need the plugin activated against a working GiveWP install.
One check is ignored by default: trunk_stable_tag, because Stable tag: trunk is the placeholder this repository commits and the release tooling stamps the real version into readme.txt. A genuine disagreement between the plugin header and readme.txt reports as stable_tag_mismatch, which is not ignored.
Releasing
This repository uses GitHub Actions to automatically build and attach the production .zip file whenever a new release tag is pushed.
Changelog
Record user-facing changes under the [Unreleased] heading in CHANGELOG.md as you work, using the Keep a Changelog format. Do not edit the changelog in readme.txt by hand — the release tooling converts the changelog entries into WordPress readme.txt format and stamps the Stable tag automatically.
Cutting a release
A release takes two commands: one to open the release pull request, one to tag it after it merges.
1. Prepare. From a clean working tree — it does not matter which branch you are on:
composer release:prepare patch # e.g., 1.0.0 -> 1.0.1
composer release:prepare minor # e.g., 1.0.0 -> 1.1.0
composer release:prepare major # e.g., 1.0.0 -> 2.0.0
This moves the [Unreleased] entries into a dated ## [X.Y.Z] section, pushes a release/X.Y.Z branch, and opens its pull request. Review and merge it as usual.
2. Tag, once that pull request has merged:
composer release:tag # tags the version that just merged
composer release:tag 1.2.0 # or name the version explicitly
The GitHub Action then runs the test suite, stamps the new version into the plugin files, syncs the changelog into readme.txt, and attaches uca-payment-gateway-with-wayforpay-for-givewp.zip to a new GitHub Release.
Always release through these two commands. Tagging by hand, or drafting a release from the GitHub UI, skips the changelog roll that the tooling depends on and leaves the next release unable to work out its own version.
Support Ukrainian Charity Alliance
This plugin is built and maintained by Ukrainian Charity Alliance, a nonprofit dedicated to helping the people of Kharkiv. If you find it useful, please consider supporting our work.