Event Payment Plugin for WooCommerce
Source |
First-party — auto-fetched from its GitHub release (private repo) |
Purpose |
Bridges WooCommerce checkout and the EMS Event & Membership API |
Special infra |
None (API integration; no writable filesystem paths) |
This is the WordPress side of the EMS payment integration: it creates a WooCommerce order for a new registration, and calls the EMS API back when the order status changes (e.g. on successful payment). It requires WooCommerce to be active. For the end-to-end design see WordPress Payment Integration.
Install — auto-fetched release
Unlike the licensed artefacts, this plugin is ours, so it does not need hand-staging. The
build fetches the pinned GitHub release asset (event-payment-plugin-<ver>.zip, whose root
folder is event-payment-plugin/) with gh and bakes it in:
# scripts/build-image.sh — before the docker build
gh release download "${EVENT_PAYMENT_PLUGIN_VERSION}" \
-R <org>/event-payment-plugin-woocommerce --pattern '*.zip' --dir packages
unzip -q packages/event-payment-plugin-*.zip -d web/app/plugins # -> web/app/plugins/event-payment-plugin
Pin EVENT_PAYMENT_PLUGIN_VERSION to a release tag for reproducibility. To upgrade, bump the
version and rebuild the image (the immutable-update path — see
Immutable WordPress architecture). It is activated in
bootstrap after WooCommerce, since it depends on it.
Configuration — Event API settings
Settings live under WooCommerce → Event API Settings and are stored as plain epa_* WordPress
options. The environment-specific ones can be seeded declaratively in bootstrap from the
Secret/ConfigMap (guarded — set them there, or fill them in the admin):
| Option | Env (bootstrap) | Meaning |
|---|---|---|
|
|
EMS admin-service API base the plugin calls for order updates. |
|
|
API key authenticating those calls. |
|
|
Registration portal URL users are sent to when entering an event. |
|
|
WooCommerce product used when a cart arrives without a product id. |
|
|
Post-action redirect target. |
|
— (auto) |
The plugin’s own inbound callback endpoint + key (generated by the plugin, not set by hand).
The registration portal POSTs orders to |
|
— (admin) |
Diagnostics / validation toggles. |
Secrets (epa_admin_api_key) come from the Kubernetes Secret; non-secret URLs/ids from the
ConfigMap. Because they are stored as WordPress options in the database, they persist across
pod restarts once set.