=== SELFiT Payment Gateway for WooCommerce === Contributors: selfit, abdiscript Donate link: https://selfit.ir Tags: woocommerce, payment, gateway, iran, toman Requires at least: 5.0 Tested up to: 6.8 Requires PHP: 7.4 Stable tag: 1.0.5 License: GPL v3 or later License URI: https://www.gnu.org/licenses/gpl-3.0.html **Official SELFiT payment gateway for WooCommerce.** == Description == 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 8.5 - 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 6.8) - WooCommerce 5.0+ (tested up to 8.5) - 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](https://selfit.ir/about)**. == Installation == 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. == Frequently Asked Questions == = 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**. == Screenshots == 1. Checkout page with “Pay with SELFiT” 2. Gateway settings showing token status 3. SELFiT logs page == Changelog == = 1.0.5 = - «Partial Refund» problem fixed! = 1.0.0 = - Initial release == 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