{"id":350425,"date":"2026-09-18T13:39:18","date_gmt":"2026-09-18T13:39:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mycourse-mysource\/"},"modified":"2026-09-18T13:39:08","modified_gmt":"2026-09-18T13:39:08","slug":"aims-infosoft-lms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/aims-infosoft-lms\/","author":17728263,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Aims Infosoft LMS","header_author":"Aims Infosoft","header_description":"A comprehensive LMS system with video lessons, progress tracking, payment integration, and certificate generation.","assets_banners_color":"fafbfc","last_updated":"2026-09-18 13:39:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/aimsinfosofts\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":59,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"aimsinfosofts","date":"2026-09-18 13:39:08","revision":3702081}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3702079,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3702079,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3702079,"resolution":"1","location":"assets","locale":"","width":1197,"height":634},"Screenshot-10.png":{"filename":"Screenshot-10.png","revision":3702079,"resolution":"10","location":"assets","locale":"","width":1194,"height":652},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3702079,"resolution":"2","location":"assets","locale":"","width":1208,"height":636},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3702079,"resolution":"3","location":"assets","locale":"","width":1345,"height":676},"Screenshot-4.png":{"filename":"Screenshot-4.png","revision":3702079,"resolution":"4","location":"assets","locale":"","width":1323,"height":673},"Screenshot-5.png":{"filename":"Screenshot-5.png","revision":3702079,"resolution":"5","location":"assets","locale":"","width":1204,"height":652},"Screenshot-6.png":{"filename":"Screenshot-6.png","revision":3702079,"resolution":"6","location":"assets","locale":"","width":1349,"height":682},"Screenshot-7.png":{"filename":"Screenshot-7.png","revision":3702079,"resolution":"7","location":"assets","locale":"","width":1195,"height":627},"Screenshot-8.png":{"filename":"Screenshot-8.png","revision":3702079,"resolution":"8","location":"assets","locale":"","width":1200,"height":649},"Screenshot-9.png":{"filename":"Screenshot-9.png","revision":3702079,"resolution":"9","location":"assets","locale":"","width":1198,"height":642}},"screenshots":[]},"plugin_section":[],"plugin_tags":[44546,7114,2195,49614,1887],"plugin_category":[45],"plugin_contributors":[181467],"plugin_business_model":[],"class_list":["post-350425","plugin","type-plugin","status-publish","hentry","plugin_tags-certificates","plugin_tags-courses","plugin_tags-lms","plugin_tags-online-learning","plugin_tags-payments","plugin_category-ecommerce","plugin_contributors-aimsinfosofts","plugin_committers-aimsinfosofts"],"banners":{"banner":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/banner-772x250.png?rev=3702079","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/icon-128x128.png?rev=3702079","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-1.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-2.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-3.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-4.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-5.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-6.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-7.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-8.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-9.png?rev=3702079","caption":""},{"src":"https:\/\/ps.w.org\/aims-infosoft-lms\/assets\/Screenshot-10.png?rev=3702079","caption":""}],"raw_content":"<!--section=description-->\n<p>Aims Infosoft LMS turns WordPress into a paid-course platform:<\/p>\n\n<ul>\n<li>Course catalog and curriculum builder (sections and lessons)<\/li>\n<li>Secure, per-user video and PDF lesson delivery<\/li>\n<li>Sequential lesson unlocking with per-student progress tracking<\/li>\n<li>Checkout with Stripe, PayPal, and Razorpay<\/li>\n<li>Order history and downloadable invoices<\/li>\n<li>Auto-generated, verifiable completion certificates<\/li>\n<li>Student accounts with login, registration, and a My Account dashboard<\/li>\n<\/ul>\n\n<h4>Payments<\/h4>\n\n<p>Stripe, PayPal, and Razorpay are supported for one-time course purchases. Configure API keys and webhook secrets under <strong>Aims Infosoft LMS \u2192 Settings \u2192 Payments<\/strong>.<\/p>\n\n<h4>Certificates<\/h4>\n\n<p>Students can download a certificate once a course reaches 100% completion. Every issued certificate gets a unique, stored certificate ID that can be checked at <code>\/?aimslms_verify_certificate=1&amp;certificate_id=YOUR-ID<\/code>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the following third-party services. Each connection is described below, including what data is sent, when, and links to that service's terms and privacy policy.<\/p>\n\n<p>This plugin relies on Stripe, PayPal, and Razorpay to process course payments; only whichever gateway(s) you configure and a customer actually chooses at checkout are contacted.<\/p>\n\n<ul>\n<li><strong>Stripe<\/strong> - used to process card payments. When a customer opens the checkout page, the plugin loads the Stripe.js library from Stripe's servers (<code>https:\/\/js.stripe.com\/v3\/<\/code>) to securely collect payment details. When a customer submits payment, the order amount, currency, and payment details are sent to Stripe's API to create and confirm the charge; no card numbers are handled by this plugin. If enabled, refunds are also sent to Stripe. <a href=\"https:\/\/stripe.com\/legal\/consumer\">Terms of Service<\/a> | <a href=\"https:\/\/stripe.com\/privacy\">Privacy Policy<\/a><\/li>\n<li><strong>PayPal<\/strong> - used to process PayPal payments. When a customer chooses PayPal at checkout, the plugin sends the order amount, currency, and a description to PayPal's API (<code>api-m.paypal.com<\/code> or, in sandbox\/test mode, <code>api-m.sandbox.paypal.com<\/code>) to create and capture the order. PayPal also sends payment status updates back to this site via webhook. <a href=\"https:\/\/www.paypal.com\/us\/legalhub\/useragreement-full\">Terms of Service<\/a> | <a href=\"https:\/\/www.paypal.com\/us\/legalhub\/privacy-full\">Privacy Policy<\/a><\/li>\n<li><strong>Razorpay<\/strong> - used to process payments (primarily for INR\/India-based checkout). When a customer chooses Razorpay at checkout, the plugin loads Razorpay's checkout script (<code>https:\/\/checkout.razorpay.com\/v1\/checkout.js<\/code>) and sends the order amount, currency, and a receipt reference to Razorpay's API to create the order. <a href=\"https:\/\/razorpay.com\/terms\/\">Terms of Service<\/a> | <a href=\"https:\/\/razorpay.com\/privacy\/\">Privacy Policy<\/a><\/li>\n<li><strong>Frankfurter<\/strong> (<code>api.frankfurter.app<\/code>) - a free currency-exchange-rate API used only when a course is purchased through Razorpay and its listed price needs converting to INR. The source and target currency codes are sent; no personal or payment data is sent. The response is cached for an hour to minimize requests. <a href=\"https:\/\/www.frankfurter.app\/docs\">About\/Terms<\/a> (Frankfurter is an open-source project with no separate privacy policy; it does not require or process personal data.)<\/li>\n<li><strong>Gravatar<\/strong> - WordPress core's built-in avatar service. If a student hasn't uploaded a custom profile picture, their account dashboard requests an avatar image from Gravatar using a hash of their email address. <a href=\"https:\/\/automattic.com\/en\/legal\/terms-of-service\/\">Terms of Service<\/a> | <a href=\"https:\/\/automattic.com\/en\/privacy\/\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/aims-infosoft-lms<\/code>, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Configure payment gateways and certificate design under the <strong>Aims Infosoft LMS<\/strong> admin menu.<\/li>\n<li>Add courses under <strong>Aims Infosoft LMS \u2192 Add New Course<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20happens%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What happens if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>The plugin's front-end pages (My Account, Courses, Checkout, etc.) show a \"plugin is not available\" notice instead of a broken page. No course data, orders, or pages are deleted. Reactivating the plugin restores those pages automatically.<\/p><\/dd>\n<dt id=\"which%20payment%20gateways%20are%20supported%3F\"><h3>Which payment gateways are supported?<\/h3><\/dt>\n<dd><p>Stripe, PayPal, and Razorpay, each configurable independently with sandbox\/live modes.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: course catalog and curriculum builder, secure video\/PDF lesson delivery, sequential progress tracking, Stripe\/PayPal\/Razorpay checkout, order history and invoices, student accounts, and downloadable completion certificates (3 selectable designs).<\/li>\n<li>Security: Stripe webhook signatures are verified; secure lesson file links expire; CSRF nonce checks on bulk order\/student admin actions; the manual cron-reconciliation endpoint is capability-gated; a duplicate, unauthenticated PayPal cancel-order handler was removed in favor of the existing ownership-checked one; the secure lesson-file download path is resolved and verified against the uploads directory; nonce and login checks were added to the admin chart-data and profile-update endpoints.<\/li>\n<li>Performance: PHP sessions are only started for the checkout flow and related AJAX\/redirect endpoints, not on every page load, so full-page caching isn't bypassed site-wide.<\/li>\n<li>Discloses all third-party\/external service usage (Stripe, PayPal, Razorpay, Frankfurter, Gravatar) in an \"External services\" section below.<\/li>\n<li>Certificates get a real, unique, stored certificate ID with a public verification page.<\/li>\n<li>Only the My Account and Courses pages are added to site navigation on activation; other auto-created pages remain accessible by URL but aren't linked in menus.<\/li>\n<li>Deactivating (or deleting) the plugin shows a \"plugin is not available\" notice on its pages instead of a broken shortcode; reactivating restores the original content. No data is deleted.<\/li>\n<li>General front-end visual polish (spacing, typography, responsiveness) across course, lesson, checkout, dashboard, and auth pages.<\/li>\n<li>Consolidated all function, class, define, option, post type, and shortcode names onto a single unique <code>aimslms_<\/code>\/<code>AIMSLMS_<\/code> prefix, replacing the previous inconsistent naming, to avoid any conflicts with other plugins.<\/li>\n<li>The admin menu no longer uses a fixed position, so it no longer competes with core WordPress menu items for placement.<\/li>\n<li>Replaced hardcoded <code>&lt;link&gt;<\/code>\/<code>&lt;script&gt;<\/code> tags on the secure PDF viewer and certificate verification pages with proper <code>wp_enqueue_style()<\/code>\/<code>wp_enqueue_script()<\/code> calls.<\/li>\n<li>Removed non-essential development files (CI configs, test suites, changelogs, editor configs) from the bundled third-party libraries.<\/li>\n<li>Fixed a bug that could prevent the bundled payment\/PDF libraries from loading correctly.<\/li>\n<li>Fixed the Certificate Settings page's assets (styles\/scripts) not loading due to an incorrect internal reference.<\/li>\n<li>Redesigned the Settings page, Certificate Settings page, and course editor's \"Course Settings\" panel for visual consistency with the rest of the admin UI.<\/li>\n<li>Fixed the front-end \"Profile Updated\" confirmation popup rendering with broken spacing\/layout.<\/li>\n<\/ul>","raw_excerpt":"A course\/LMS platform for WordPress with video lessons, progress tracking, Stripe\/PayPal\/Razorpay payments, and completion certificates.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350425"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aimsinfosofts"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350425"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350425"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350425"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350425"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350425"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}