Wajub is the official payment plugin for WordPress sites that need Mobile Money and card checkout without custom code.
You need a Wajub merchant account to take payments: create one in the Wajub Dashboard. Until you connect the plugin to it, the plugin contacts no Wajub server and loads nothing from Wajub in your visitors’ browsers.
Set up in minutes
A checkout payers trust
WP_DEBUG), it goes to your logs (WooCommerce Status Logs, source wajub).Everything in one place
Supported integrations
[wajub_pay], [wajub_pay_content], [wajub_pay_message]Other form, booking and event plugins have no direct integration: a [wajub_pay] button can take a payment on their pages, but the payment is not recorded in them. Crowdfunding plugins built on WooCommerce pay through the WooCommerce integration.
Checkout modes
If Wajub.js cannot load in the payer’s browser, inline and overlay checkouts fall back to the hosted payment page. So do the separate methods, which also use it on the order’s payment page and when their form cannot load; the page then offers that method only.
Shortcodes
[wajub_pay amount="5000" currency="XAF" description="" mode="redirect|inline|overlay" button_text="" class=""] — a pay button (redirect by default). product_id="123" charges a WooCommerce product’s price; type="donation" turns it into a donation form, and amounts="1000,2500,5000" gives that form preset amounts.[wajub_pay_content content_id="premium" amount="2500" currency="XAF" description="" mode="overlay" button_text="" class=""]…[/wajub_pay_content] — content shown once paid (overlay by default).[wajub_pay_message type="success|failure|processing"] — the message of a return page, checked with Wajub.Default button labels are “Pay %s”, “Donate” and “Unlock for %s”. The pay buttons use your theme’s button styles; the colours can be adjusted with the CSS custom properties listed at the top of assets/css/frontend.css.
For developers
The actions and filters the plugin offers are listed in the FAQ.
This plugin connects to Wajub, a payment service, to take payments. It cannot work without it.
https://api.wajub.com). Every request is made with your API key. When a payment starts, the plugin sends the amount, the currency, a description, your order reference and metadata (the plugin, and the order, donation, entry or product the payment is for; for paid content and courses, the ID of the WordPress account that pays, the price, and an identifier of the browser that pays, taken from the wajub_buyer cookie described under Privacy), the return URLs, and the payer’s name, email address and phone number when they are known. It reads payments to confirm them, and a payment’s refunds before it counts toward an order, cancels a payment left open when the payer starts another one for the same order, cancels the payment of an order that is cancelled when nobody started paying it, closes an instalment payment the payer can no longer finish (keeping what it collected), and sends refunds you start from WordPress. Checking a key reads the name of your Wajub business. When the setup assistant registers the webhook, it sends your site’s webhook URL, the events it listens to and the description “WordPress: “.https://js.wajub.com), Wajub’s checkout script, once a key is saved. The visitor’s browser loads it as soon as the page opens, before the visitor chooses how to pay: on the WooCommerce checkout and order payment pages (classic or Blocks), the Cart block page and the mini-cart once opened (WooCommerce loads the payment methods’ scripts there), when the Wajub method uses inline or overlay mode or the Mobile Money or Card method is on; and on any page whose pay button ([wajub_pay], [wajub_pay_content] or a course button) opens the payment in the page. This shows Wajub the visitor’s IP address, browser details and the address of the page. Wajub.js shows the payment form from https://pay.wajub.com.https://pay.wajub.com). In redirect mode, whenever Wajub.js cannot load, and when the Mobile Money or Card form cannot be used (on the order’s payment page, or when the form does not load), the payer goes to the payment page Wajub gives for the payment, opened in your site’s language when Wajub’s checkout has it (French, English, Spanish, Portuguese or Arabic). What the payer types in Wajub’s payment form, on that page or inside your checkout (their card or Mobile Money number), goes straight to Wajub, never through your site, with basic information about their device and browser, which Wajub uses to prevent fraud.https://dashboard.wajub.com), for “Connect with Wajub” only, and only when an administrator clicks one of its buttons: in the setup assistant, in Wajub Settings, or in the admin notice shown when the key it created expires within 14 days or has expired. The site asks the Dashboard for a connection request and sends your site’s name and domain, the environment asked for (Sandbox or Live), the kind of client, a hash of your site’s address, the permissions the plugin needs, and, when the site has a public https:// address, the setup assistant’s address to come back to. While the request waits for your approval (15 minutes at most), it asks the Dashboard every few seconds whether you approved it, while an admin page that shows the request is open. On approval, it receives the new key, its environment, its type and permissions, the date it expires (or that it does not), and the name of your Wajub business. The Dashboard sees your server’s IP address, and the administrator’s browser opens the Dashboard’s approval page in a new tab.All of the services above are provided by Wajub. Wajub’s Merchant Terms, End User Terms (for payers) and Privacy Policy apply.
wp_wajub_transactions, with your table prefix): reference, Wajub id, amount, status, payment method, environment, date, the payer’s email address, the metadata sent with the payment and the last payment details Wajub sent.[wajub_pay_content]) or for a LearnDash, LifterLMS or Tutor LMS course with the Wajub button, the plugin sets the wajub_buyer cookie in their browser: a random identifier, kept 30 days, so that what they paid for opens in that browser once paid, with or without an account. The plugin sets no other cookie of its own.Deleting the plugin removes what it stored, on every site of a network: its settings (those of the Mobile Money and Card methods included), keys and secrets, the record of which keys “Connect with Wajub” gave (their fingerprint, business and dates, never the key), the record of which of its updates ran, its payments table, its temporary data, the expiry e-mails it scheduled for those keys, the Gravity Forms feeds that use Wajub, its users’ screen preferences, and the record of which accounts paid for locked content and LearnDash courses (LearnDash keeps the enrolments themselves; a reinstall does not bring the record back). The return pages it created are moved to the trash if you never edited them. Orders, donations, entries and transactions keep their Wajub details (the _wajub_* meta, wajub_* on Gravity Forms entries and MemberPress transactions, and their notes): they are your sales history. The webhook endpoints registered in your Wajub account stay, and so do the API keys “Connect with Wajub” created: delete them in the Wajub Dashboard (Settings Developers API keys). The Wajub settings that other plugins keep among their own (the payment method enabled in Easy Digital Downloads, GiveWP, Charitable, MemberPress or Tutor LMS) and WooCommerce’s log files for the wajub source stay with those plugins.