SELFiT Payment Gateway for WooCommerce

توضیحات

This plugin connects your WooCommerce store to SELFiT and lets customers pay securely via the SELFiT wallet.
If you are upgrading from a previous version, please read the Upgrade Notice.

Highlights
– Direct integration with the SELFiT API to create secure payment links
– Compatible with WooCommerce (min 5.0), tested up to 10.0
– HPOS-ready (High-Performance Order Storage)
– Full refund from the WooCommerce order screen
– Auto-detects the billing phone; optionally reads Digits plugin fields if present
– Optional request/error logging in a dedicated “SELFiT Logs” admin page
– Supports IRR/Toman (auto-converts IRR by dividing by 10)

Requirements
– WordPress 5.0+ (tested up to 7.0)
– WooCommerce 5.0+ (tested up to 10.0)
– PHP 7.4+
– A SELFiT merchant account and API credentials

External services

This plugin uses an API to connect to the payment gateway. This connection is required to perform the transaction.
The information sent via the API is derived from the order details, including:
* Item name, price and quantity
* Shipping method
* buyer’s information (Name and phone number)
For more detailed description about how Selfit API works, please visit Selfit Terms of Use.

Privacy

To create and verify payments, the plugin sends the following to api.selfit.ir:
– Customer phone number (to validate SELFiT user existence)
– Order ID, amount, and optionally line items (as metadata)

If logging is enabled, limited request/response data are stored in the database for troubleshooting. Store owners are responsible for informing users according to their local privacy laws.

Notes for Developers

  • Gateway ID: selfit
  • Internal confirmation endpoint: woocommerce_api_wc_selfit_gateway
  • Important hooks: woocommerce_order_status_cancelled, woocommerce_order_status_refunded
  • HPOS compatibility declared with FeaturesUtil::declare_compatibility('custom_order_tables', ...)
  • Log table: {prefix}selfit_debug_logs

Support

For support or merchant onboarding, please contact: https://selfit.ir

نصب

  1. Upload the plugin folder to /wp-content/plugins/ or upload the ZIP via Plugins Add New.
  2. Activate the plugin.
  3. Go to WooCommerce Settings Payments and enable SELFiT.
  4. Open the gateway settings and enter your API Username and Password. Save to authenticate and receive tokens.
  5. (Optional) Enable request/error logging for troubleshooting.
  6. Set your store currency (IRR or Toman). In IRR mode, amounts are automatically divided by 10 before sending to SELFiT.

سوالات متداول

The gateway doesn’t appear on checkout

  • Make sure WooCommerce is active.
  • Enter and save your SELFiT API credentials so the plugin can authenticate.
  • A valid customer phone number is required. The plugin uses billing_phone (and Digits fields if Digits is installed).
  • If the SELFiT user doesn’t exist, the gateway may be hidden.

Do you support Toman?

Yes. If your store uses IRR (Rial), the amount sent to SELFiT is automatically divided by 10. If you use Toman, the amount is sent as-is.

Can I refund from WooCommerce?

Yes. Use a Full Refund from the order screen; the plugin will submit a refund request to SELFiT and log the result.

How is the callback URL configured?

The plugin automatically generates the return URL based on the internal WooCommerce endpoint and sends it to the API.

Where can I see logs?

Go to WooCommerce SELFiT Logs.

نقد و بررسی‌ها

نقد و بررسی‌ای برای این افزونه یافت نشد.

توسعه دهندگان و همکاران

“SELFiT Payment Gateway for WooCommerce” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کرده‌اند.

مشارکت کنندگان

ترجمه “SELFiT Payment Gateway for WooCommerce” به زبان شما.

علاقه‌ مند به توسعه هستید؟

کد را مرور کنید، مخزن SVN را بررسی کنید، یا از طریق RSS در گزارش توسعه مشترک شوید.

گزارش تغییرات

1.0.8

  • On checkout the gateway is shown only when the customer mobile number is resolved and confirmed as registered in SELFiT; outside customer payment contexts (accounting integrations, REST, cron, admin) the gateway stays discoverable
  • Fixed: the mobile number typed in the checkout form now always takes priority; previously a stale session/profile number kept being sent to the API
  • New optional setting: a custom user meta key to read the customer mobile number from, for sites that do not use Digits
  • Removed persistent caching of the user-existence check; every availability check now queries the SELFiT API live
  • Payment link errors returned by the SELFiT API are now shown to the customer instead of a generic message

1.0.7

  • Improved payment gateway availability handling for third-party integrations, accounting plugins, background jobs, REST requests, and admin contexts
  • Customer eligibility checks are now limited to customer-facing payment contexts such as cart, checkout, checkout AJAX, and pay-for-order flows
  • SELFiT remains discoverable by WooCommerce integrations outside checkout when the gateway is enabled and configured
  • Existing checkout behavior is preserved: the gateway is still hidden when the customer phone number is invalid or the customer is not registered in SELFiT
  • Payment-time user validation remains in place as an additional safeguard before creating a SELFiT payment

1.0.6

  • Refund amounts are now always sent to SELFiT in Toman (IRR is auto-converted), consistent with payments
  • Detailed per-item refund status (refunded/remaining totals) is sent with partial refunds
  • User-existence check cache reduced from 15 minutes to 1 minute
  • Token expiry and log dates are now displayed in the Jalali (Shamsi) calendar

1.0.5

  • «Partial Refund» problem fixed!

1.0.0

  • Initial release