{"id":260942,"date":"2025-12-25T16:50:57","date_gmt":"2025-12-25T16:50:57","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tutor-sslcommerz\/"},"modified":"2025-12-25T17:10:09","modified_gmt":"2025-12-25T17:10:09","slug":"tspay","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/tspay\/","author":99830,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.0","stable_tag":"1.1.0","tested":"6.9.4","requires":"5.3","requires_php":"7.4","requires_plugins":null,"header_name":"TS Pay","header_author":"Hasin Hayder","header_description":"SSLCommerz payment gateway integration for Tutor LMS (Free & Pro). Accept online payments directly within your Tutor LMS-powered site.","assets_banners_color":"254236","last_updated":"2025-12-25 17:10:09","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/hasinhayder\/tutor-sslcommerz","header_author_uri":"https:\/\/github.com\/hasinhayder","rating":0,"author_block_rating":0,"active_installs":20,"downloads":283,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"HasinHayder","date":"2025-12-25 17:10:09"}},"upgrade_notice":{"1.1.0":"<p>Plugin renamed to TSPay for compliance with WordPress guidelines. All functionality remains the same.<\/p>","1.0.7":"<p>Critical security update with input sanitization and validation improvements. Update immediately for enhanced security.<\/p>","1.0.6":"<p>Adds internationalization support and improved documentation.<\/p>","1.0.5":"<p>Minor Fixes<\/p>","1.0.4":"<p>Minor Fixes<\/p>","1.0.3":"<p>Replaces cURL with WordPress HTTP API for improved security and compatibility.<\/p>","1.0.2":"<p>Fixes for IPN endpoint. Update immediately.<\/p>","1.0.1":"<p>Fixes payment amount issue. Required for payments to work.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3427401,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3428077,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[11451,1887,187016,21983,179218],"plugin_category":[45],"plugin_contributors":[173032],"plugin_business_model":[],"class_list":["post-260942","plugin","type-plugin","status-publish","hentry","plugin_tags-bkash","plugin_tags-payments","plugin_tags-sslcommerz","plugin_tags-tutor","plugin_tags-tutor-lms","plugin_category-ecommerce","plugin_contributors-hasinhayder","plugin_committers-hasinhayder"],"banners":{"banner":"https:\/\/ps.w.org\/tspay\/assets\/banner-772x250.png?rev=3428077","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tspay\/assets\/icon-256x256.png?rev=3427401","icon_2x":"https:\/\/ps.w.org\/tspay\/assets\/icon-256x256.png?rev=3427401","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>TS Pay integrates SSLCommerz, Bangladesh's leading payment gateway, with Tutor LMS to enable seamless course purchases. Accept payments from local and international customers using cards, mobile banking, and internet banking.<\/p>\n\n<p>Website: <a href=\"https:\/\/hasinhayder.github.io\/tutor-sslcommerz\/\">https:\/\/hasinhayder.github.io\/tutor-sslcommerz\/<\/a><\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>One-time payments for course purchases<\/li>\n<li>Multi-currency support (BDT, USD, EUR, GBP, SGD, INR, MYR)<\/li>\n<li>Sandbox and Live environments for testing and production<\/li>\n<li>IPN (Instant Payment Notification) integration for automatic order updates<\/li>\n<li>Secure payment processing with hash validation and transaction verification<\/li>\n<li>All SSLCommerz payment methods (Cards, Mobile Banking, Internet Banking)<\/li>\n<li>WordPress HTTP API for secure external communications<\/li>\n<li>Comprehensive error handling and logging<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.3 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>Tutor LMS (Free version)<\/li>\n<li>SSLCommerz merchant account<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Student initiates course purchase<\/li>\n<li>Plugin sends payment request to SSLCommerz<\/li>\n<li>Student completes payment on SSLCommerz secure page<\/li>\n<li>SSLCommerz sends IPN notification to your site<\/li>\n<li>Plugin validates transaction and updates order status<\/li>\n<li>Student gains course access upon successful payment<\/li>\n<\/ol>\n\n<h4>Security Features<\/h4>\n\n<ul>\n<li>Hash verification for callback signatures<\/li>\n<li>Transaction validation through SSLCommerz API<\/li>\n<li>Amount verification to prevent tampering<\/li>\n<li>SSL-secured API communications<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>Website: <a href=\"https:\/\/hasinhayder.github.io\/tutor-sslcommerz\/\">https:\/\/hasinhayder.github.io\/tutor-sslcommerz\/<\/a>\nFor plugin issues: <a href=\"https:\/\/github.com\/hasinhayder\/tutor-sslcommerz\/issues\">GitHub Issues<\/a>\nFor SSLCommerz API: support@sslcommerz.com\nFor Tutor LMS: <a href=\"https:\/\/tutorlms.com\/support\/\">Tutor support<\/a><\/p>\n\n<h3>Credits<\/h3>\n\n<p>Developed by Hasin Hayder\nBased on Tutor LMS Payment Gateway framework\nSSLCommerz API integration<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins<\/code><\/li>\n<li>Activate the plugin through the WordPress admin<\/li>\n<li>Ensure Tutor LMS is installed and activated<\/li>\n<li>Go to <strong>Tutor LMS &gt; Settings &gt; Payments<\/strong><\/li>\n<li>Enable SSLCommerz and configure settings<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<p><strong>Step 1: Get SSLCommerz Credentials<\/strong><\/p>\n\n<p><em>Sandbox (Testing):<\/em>\n1. Register at https:\/\/developer.sslcommerz.com\/registration\/\n2. Receive Store ID and Store Password via email<\/p>\n\n<p><em>Live (Production):<\/em>\n1. Apply for merchant account at https:\/\/sslcommerz.com\/\n2. Complete KYC verification\n3. Get Store ID and Store Password from merchant panel<\/p>\n\n<p><strong>Step 2: Configure Plugin<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>Tutor LMS &gt; Settings &gt; Payments<\/strong><\/li>\n<li>Find <strong>SSLCommerz<\/strong> in payment gateways<\/li>\n<li>Enable and configure:\n\n<ul>\n<li><strong>Environment<\/strong>: Sandbox for testing, Live for production<\/li>\n<li><strong>Store ID<\/strong>: Your SSLCommerz Store ID<\/li>\n<li><strong>Store Password<\/strong>: Your Store Password (not login password)<\/li>\n<li><strong>IPN URL<\/strong>: Copy this URL<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<p><strong>Step 3: Configure SSLCommerz Panel<\/strong><\/p>\n\n<ol>\n<li>Login to SSLCommerz merchant panel<\/li>\n<li>Go to IPN Settings<\/li>\n<li>Add the IPN URL from plugin settings<\/li>\n<li>Save settings<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='do%20i%20need%20a%20sslcommerz%20account%3F'><h3>Do I need a SSLCommerz account?<\/h3><\/dt>\n<dd><p>Yes, you need a merchant account. Sign up at https:\/\/sslcommerz.com\/ for live or https:\/\/developer.sslcommerz.com\/registration\/ for sandbox.<\/p><\/dd>\n<dt id='does%20this%20support%20subscriptions%3F'><h3>Does this support subscriptions?<\/h3><\/dt>\n<dd><p>No, only one-time payments are supported. SSLCommerz doesn't provide native recurring payment functionality.<\/p><\/dd>\n<dt id='can%20i%20test%20before%20going%20live%3F'><h3>Can I test before going live?<\/h3><\/dt>\n<dd><p>Yes, use Sandbox environment with test credentials. Test cards available in SSLCommerz documentation.<\/p><\/dd>\n<dt id='what%20currencies%20are%20supported%3F'><h3>What currencies are supported?<\/h3><\/dt>\n<dd><p>BDT (primary), USD, EUR, GBP, SGD, INR, MYR. Non-BDT currencies are auto-converted to BDT at current rates.<\/p><\/dd>\n<dt id='how%20do%20i%20troubleshoot%20payment%20issues%3F'><h3>How do I troubleshoot payment issues?<\/h3><\/dt>\n<dd><ol>\n<li>Verify Store ID and Password are correct<\/li>\n<li>Ensure IPN URL is configured in SSLCommerz panel<\/li>\n<li>Check environment settings (Sandbox vs Live)<\/li>\n<li>Enable WordPress debug logging<\/li>\n<li>Verify SSL certificate on your site<\/li>\n<\/ol><\/dd>\n<dt id='what%20payment%20methods%20are%20supported%3F'><h3>What payment methods are supported?<\/h3><\/dt>\n<dd><p>All SSLCommerz methods: Credit\/Debit Cards, Mobile Banking (bKash, Nagad, Rocket), Internet Banking, and others available in Bangladesh.<\/p><\/dd>\n<dt id='is%20there%20a%20transaction%20fee%3F'><h3>Is there a transaction fee?<\/h3><\/dt>\n<dd><p>Transaction fees depend on your SSLCommerz merchant agreement. Contact SSLCommerz for pricing details.<\/p><\/dd>\n<dt id='can%20i%20process%20refunds%3F'><h3>Can I process refunds?<\/h3><\/dt>\n<dd><p>Refunds must be processed manually through the SSLCommerz merchant panel. The plugin doesn't handle automatic refunds.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed: Plugin has been renamed to TSPay (Tutor SSLCommerz Pay) due to WordPress guidelines on trademark usage<\/li>\n<li>Improvement: Code cleanup and optimization<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Security: Added comprehensive input sanitization to prevent XSS attacks<\/li>\n<li>Security: Implemented proper data validation for all user inputs<\/li>\n<li>Security: Enhanced hash verification with sanitized inputs<\/li>\n<li>Improvement: Enhanced error handling and logging<\/li>\n<li>Improvement: Code organization and structure improvements<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Feature: Added complete internationalization (i18n) support<\/li>\n<li>Feature: Created translation template (.pot file)<\/li>\n<li>Improvement: Added languages directory for translation files<\/li>\n<li>Improvement: Updated plugin constants and code structure<\/li>\n<li>Improvement: Enhanced documentation with translation information<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<p>Minor Fixes<\/p>\n\n<h4>1.0.4<\/h4>\n\n<p>Minor Fixes<\/p>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Improvement: Replaced cURL with WordPress HTTP API for better compatibility<\/li>\n<li>Improvement: Enhanced error handling and JSON validation<\/li>\n<li>Improvement: More descriptive error messages<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Security: Fixed fatal errors in IPN handling<\/li>\n<li>Security: Improved validation for webhook requests<\/li>\n<li>Improved: Better error logging and debugging<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: Corrected payment amount sending (was sending 0)<\/li>\n<li>Fixed: Updated to use correct Tutor LMS field names<\/li>\n<li>Improved: Added payment amount validation<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>One-time payment support<\/li>\n<li>Sandbox and Live environments<\/li>\n<li>IPN integration<\/li>\n<li>Multi-currency support<\/li>\n<li>Transaction validation<\/li>\n<\/ul>","raw_excerpt":"Seamlessly integrate SSLCommerz with Tutor LMS for secure, multi-currency course payments via cards, mobile banking, and more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/260942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=260942"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hasinhayder"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=260942"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=260942"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=260942"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=260942"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=260942"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=260942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}