=== Evolve's LearnDash to Lifter ===
Contributors: elearningevolve
Donate link: https://elearningevolve.com
Tags: learndash, lifterlms, migration, courses, elearning
Requires at least: 5.8
Tested up to: 7.0
Stable tag: 2.3.7
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Migrate LearnDash courses, lessons, topics, quizzes, and mapped settings to LifterLMS using batch processing.

== Description ==

Evolve's LearnDash to Lifter helps you move LearnDash course content into LifterLMS using batch processing to reduce PHP timeouts on larger sites.

**What gets migrated:**

* Courses (title, content, excerpt, featured image, and available mapped meta)
* Lessons (linked to the migrated courses)
* Topics (migrated as related LifterLMS lesson content where supported)
* Quizzes (linked to the migrated courses)
* Quiz questions and answers (when LearnDash quiz tables are available)
* Mapped course and lesson settings that have LifterLMS equivalents

**Key Features:**

* Batch processing (20 courses per batch) to help avoid PHP timeouts
* Real-time progress bar and activity log
* Nonce-secured AJAX requests with capability checks
* Input sanitization and output escaping
* Reset and retry support
* Translation ready (text domain: evolve-learndash-to-lifter)

**Requirements:**

* LearnDash LMS must be installed and active
* LifterLMS must be installed and active

Always run on a staging site first and take a full backup before migrating a live site.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`
2. Activate the plugin through the **Plugins** menu in WordPress
3. Go to **Evolve's LearnDash to Lifter** in the admin sidebar
4. Select the courses to migrate and click **Start Migration**
5. Wait for the progress bar to reach 100%

== Frequently Asked Questions ==

= Will this overwrite existing LifterLMS content? =

No. The migrator creates new LifterLMS posts and does not delete existing LifterLMS content.

= What if migration stops halfway? =

Click **Reset** and then **Start Migration** again. Batch processing helps reduce timeouts on large sites.

= Is it safe to run on a live site? =

We recommend running on a staging site first and taking a full backup before migrating.

= How many courses can it handle? =

The plugin uses batch processing so there is no fixed course limit. Large course libraries have been tested successfully.

== Screenshots ==

1. Migration admin page with course selection, progress bar, and activity log.

== Changelog ==

= 2.3.7 =
* Standards: Slug set to evolve-learndash-to-lifter

= 2.3.6 =
* Standards: Removed load_plugin_textdomain() (handled by WordPress.org since 4.6)
* Standards: Plugin URI removed; Author URI retained

= 2.3.5 =
* Standards: Renamed plugin to Evolve's LearnDash to Lifter
* Standards: Slug, main file, and text domain alignment

= 2.3.4 =
* Standards: Plugin name, main file, slug, and text domain alignment

= 2.3.3 =
* Standards: Renamed plugin display name and admin menu slug

= 2.3.2 =
* Security: Escape admin JS log output and AJAX error details
* Standards: Trademark-safe plugin display name
* Standards: Enqueue dedicated admin CSS instead of inline wp-admin styles
* Standards: Full GPLv2 LICENSE file
* Standards: Readme changelog structure and Tested up to update
* Improved: Safer quiz table existence checks before direct DB reads
* Improved: Complete JS i18n strings for admin UI text

= 2.3.1 =
* Fixed: Course titles not showing in selection list
* Fixed: Migration error — improved AJAX error reporting with exact server response
* Fixed: Added dependency check for LearnDash and LifterLMS before migration starts
* Improved: JS now shows exact HTTP error and server response for easier debugging

= 2.3.0 =
* Added: Full quiz settings migration (passing score, time limit, attempts, randomization)
* Added: Question answers migration with correct/incorrect mapping
* Added: All question types supported (MCQ, True/False, Essay, Fill-in-blank, Sort, Match)
* Added: Question hints and feedback messages migration
* Added: Course settings migration (access, pricing, expiry, prerequisites, capacity)
* Added: Lesson settings migration (video, drip content, force completion)
* Added: Certificate association migration
* Added: class-quiz-migrator.php for modular quiz handling
* Added: class-settings-migrator.php for modular settings handling

= 2.2.0 =
* Added: Course selection UI — choose which courses to migrate
* Added: Select All / Deselect All buttons
* Added: Selected courses counter
* Fixed: Plugin URI updated to elearningevolve.com
* Fixed: Author updated to eLearning Evolve
* Fixed: Version synced across all files

= 2.1.0 =
* Fixed: Removed @ error suppression — not allowed by WP.org
* Fixed: All AJAX actions now use unique ldlifter_ prefix
* Fixed: Added absint(), sanitize_text_field(), wp_kses_post() throughout
* Fixed: Added sanitize_key() on all meta keys
* Fixed: JS localized object renamed to ldlifterData (unique prefix)
* Added: languages/ folder for translation readiness
* Added: LICENSE file (GPL v2)
* Updated: readme.txt with full WP.org format

= 2.0.0 =
* Complete rewrite with batch processing
* Added progress bar, migration log, reset functionality
* Added nonce security and capability checks
* Added full support for topics, quizzes, quiz questions
* Fixed lesson duplication bug

= 1.0.0 =
* Initial release


