| 开发者 |
optimisthub
fatih-toprak |
|---|---|
| 更新时间 | 2026年10月15日 22:58 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPL-3.0-or-later |
| 版权网址: | 版权信息 |
has_fields = false) — only your description text.Yes, for live payments. You need a Moka United merchant account and the dealer code, API username and API password issued to you. Moka United also issues a separate test account, which you can use with Test Mode to rehearse the whole flow — placing an order, paying on the hosted page and receiving the callback — without moving real money.
Go to WooCommerce → Settings → Payments → Moka United and tick Test Mode. While it is on, all requests go to the Moka United test environment. Remember to turn it off before going live: sending a test dealer to the live environment returns an InvalidAccount error.
Installment options are rendered by Moka United on its own payment page. In the plugin settings you control whether installments are offered at all (Installment Options / "Taksit Seçenekleri"), the highest installment count to offer (Maximum Installment / "Maksimum Taksit"), and exactly which installment counts are listed (Installment List / "Taksit Listesi", for example 1,2,3,6,9,12). Tick Reflect Commission in Installments / "Komisyonu Taksite Yansıt" if you want Moka United to apply the card BIN's commission rates to the displayed installment amounts.
They are never seen by your store. The card number, expiry date and CVC code are entered by the customer directly on Moka United's page, which is operated by Moka United, not by this plugin. The plugin does not collect, transmit or store card data under any circumstance — not even in debug logs. This keeps your PCI-DSS scope at SAQ A.
Not from this plugin. Refunds are handled in the Moka United merchant panel (https://pos.mokaunited.com). The plugin deliberately does not declare WooCommerce refund support, so the refund button is hidden on the order screen rather than offering an action that cannot complete.
The old moka-woocommerce plugin distributed through GitHub used the same gateway ID (mokapay), so your existing settings are inherited automatically. Both plugins also define the same constants, so they cannot run at the same time: if the old plugin is still active when you activate this one, it is deactivated for you automatically and a notice explains what happened. On upgrade, the plugin also purges any card data that the old version may have recorded in plain text, and removes a table the old version no longer uses. Take a database backup first.
The plugin ships in English and includes a Turkish (tr_TR) translation, so a Turkish WordPress site shows the interface in Turkish and any other locale shows English. Every string is translatable, so additional languages can be added through translate.wordpress.org. If you want to ship your own translation, drop a .po/.mo pair into the plugin's languages/ folder.
You choose it in the plugin settings. The default is Completed.
canMakePayment property in the registration; without it the registry threw a TypeError and the method was never registered. The classic checkout was unaffected, which is why this went unnoticed.TRY is mapped to Moka's own code TL.cdn.moka.com) to the "External services" section, together with what the visitor's browser sends when it loads a logo.$_GET/$_POST values are read, so no raw request value can reach the callback handler or the payload stored as order_details. That stored payload is text-sanitized as well.wp_kses() and an explicit tag list instead of echoing it unescaped.$_SERVER read.optimisthub-moka-united-payment-for-woocommerce, which is the text domain as well.str_ends_with() is PHP 8.0+). The same check now also rejects a bare .moka.com host.wp_enqueue_style() instead of being printed into the page as an inline <style> block; the remaining inline style attributes moved into that stylesheet.$_SERVER value through a sanitising helper and validates the ClientIP it falls back to, so a request header can no longer carry an unvalidated value into a payment request. ClientPort is reduced to digits before use.[purged] whatever the field happens to be called, so the promise that card data never reaches a debug log or a database row no longer depends on knowing every field name in advance.Requires Plugins: woocommerce header, so WordPress verifies WooCommerce is present before activation.wp_remote_request()), which is the transport the plugin already injected at runtime.PaymentStatus = 2 and TrxStatus = 1. Previously only TrxStatus was checked, so cancelled (3,1) and pre-authorised (1,1) transactions were treated as paid even though no money was captured.ResultCode error is no longer accepted merely because Data.IsSuccessful is true — that flag means "the request was processed", not "the payment succeeded".moka-woocommerce plugin (gateway ID mokapay).