=== Topomer === Contributors: anisawadni, chouaybaroua Tags: woocommerce, payment, promo codes, coupons, topomer Requires at least: 5.0 Tested up to: 6.9 Stable tag: 1.1.3 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Manage automatic and manual promo codes for WooCommerce, with Topomer balance payment support. == Description == Topomer extends WooCommerce with two main capabilities: 1. Promo code management (automatic and manual) 2. A Topomer payment flow that lets eligible customers pay with their Topomer balance The plugin validates customer tokens through Topomer services, calculates discount rules from remote price intervals, and updates balances after successful checkout. == Features == * Automatic promo code generation based on cart total * Manual promo code creation and management from the admin area * Dynamic discount percentage based on configured price intervals * WooCommerce checkout integration * Topomer token validation through API * Customer balance display at checkout * Balance consumption and synchronization after successful payment == Requirements == * WordPress 5.0+ * WooCommerce installed and activated * PHP 7.4+ == Installation == = Install from WordPress Admin = 1. In WordPress admin, go to Plugins > Add New. 2. Search for "Topomer". 3. Click Install Now. 4. Click Activate. = Manual Install (ZIP) = 1. Download the plugin ZIP. 2. In WordPress admin, go to Plugins > Add New > Upload Plugin. 3. Upload the ZIP file and click Install Now. 4. Activate the plugin. == Setup == 1. Confirm WooCommerce is active. 2. Configure your Topomer settings and API-related options. 3. Verify promo intervals and manual promo settings. 4. Test checkout using a valid Topomer token. == External Services == This plugin relies on external services provided by Topomer (hosted on files-pub.com) for core functionality. Without these services, token validation, balance handling, and some promo/payment logic will not work. = Service Provider = * Provider: Topomer * Service base domain: files-pub.com * Terms of service: https://topomer.com/terms * Privacy policy: https://topomer.com/privacy = Endpoints, Data Sent, and Purpose = 1. Token verification endpoint * URL: https://files-pub.com/api/plugin/users/get-by-token * Purpose: Validate customer token and retrieve account data. * Trigger: Checkout flow and visits containing ?idTopomer=TOKEN. * Data sent: Token value (URL parameter). 2. Price intervals endpoint * URL: https://files-pub.com/api/interval-prix * Purpose: Retrieve discount intervals used for dynamic promo calculation. * Trigger: Cart/checkout logic when discount rules are needed. * Data sent: No customer personal data. 3. Balance update endpoint * URL: https://files-pub.com/api/plugin/users/update-solde * Purpose: Update user balance after successful payment. * Trigger: After order completion/payment processing. * Data sent: Token, updated balance amount, user ID. 4. Token expiration endpoint * URL: https://files-pub.com/api/plugin/users/update-expired * Purpose: Mark a token as used/expired. * Trigger: After token usage or validation workflow. * Data sent: Token, expiration status. 5. Personal shopper balance endpoint * URL: Hosted on files-pub.com (Topomer internal endpoint) * Purpose: Retrieve available shopper balance for payment checks. * Trigger: Access with ?idTopomer=ID and during checkout. * Data sent: Personal shopper ID and authentication token in headers. 6. Promo code management endpoints * URL: Hosted on files-pub.com (Topomer internal endpoints) * Purpose: Create/update promo codes from admin actions. * Trigger: Admin creates or updates promo definitions. * Data sent: Promo details (code, percentage, type, and ID for updates). 7. Order processing endpoint * URL: Hosted on files-pub.com (Topomer internal endpoint) * Purpose: Create/process order records after payment. * Trigger: After successful payment. * Data sent: Order data (order ID, customer info, items, totals, payment method). 8. Authentication endpoint * URL: Hosted on files-pub.com (Topomer internal endpoint) * Purpose: Obtain access token for API requests. * Trigger: Plugin authentication flow. * Data sent: Authentication credentials. == Frequently Asked Questions == = Does this plugin require WooCommerce? = Yes. WooCommerce must be installed and active. = How are automatic promo codes generated? = Promo rules are applied dynamically using cart total and price intervals from Topomer APIs. = How does Topomer payment appear at checkout? = When conditions are met (for example a valid token and eligible promo/payment context), Topomer payment becomes available in checkout. = What if the user balance is not enough? = The payment is rejected and the customer is notified about the insufficient amount. == Screenshots == 1. Topomer admin dashboard 2. Manual promo management screen 3. Customer balance display during checkout 4. Topomer payment option in WooCommerce checkout 5. Topomer logo asset used for branding 6. Topomer mobile profile screen preview 7. Topomer mobile balance screen preview == Changelog == = 1.1.3 = * Refactor plugin bootstrap into modular files for maintainability. * Restrict core upgrade loading to activation context only (guarded dbDelta usage). * Remove direct WP_List_Table core file loading from templates. * Ensure sessions are started only in the narrow Topomer flow (?idTopomer). * Improve session data sanitization and validation in payment flow. * Escape API error output to prevent unsafe admin/frontend notices. * Add session_write_close() after session writes to reduce lock duration. = 1.0 = * Initial release * Automatic promo code generation * Manual promo management * WooCommerce integration * Topomer payment method * Token verification via API * Dynamic discount calculation * Balance synchronization after payment == Upgrade Notice == = 1.1.3 = Security and compatibility update to satisfy WordPress.org review requirements. This release hardens session handling, sanitization/escaping, and activation-only core loading. = 1.0 = Initial release. Ensure WooCommerce is installed and active before activation. == Credits == Developed by Topomer.