WP Manifestindependent plugin directory
manifest / ecommerce / wayforpay-givewp

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

1stars
0forks

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.zip

Wayforpay 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):

  1. Download the latest uca-payment-gateway-with-wayforpay-for-givewp.zip file from the Releases page on GitHub.
  2. In your WordPress admin panel, go to Plugins → Add New Plugin.
  3. Click Upload Plugin, select the downloaded .zip file, and click Install Now.
  4. Activate the plugin.

From Source: If you prefer to build the plugin yourself:

  1. Clone this repository.
  2. Run composer install to install dependencies.
  3. Run composer zip to generate the production-ready zip file.
  4. 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.