=== Library Management System ===
Contributors: owthub
Plugin link: https://onlinewebtutorblog.com/library-management-system-wordpress-plugin/
Tags: library, management, system, books, LMS
Author URI: https://onlinewebtutorblog.com/
Author: Online Web Tutor
Donate link: https://paypal.me/owthub
Requires at least: 5.0
Requires PHP: 7.4
Tested up to: 7.0
Stable tag: 3.6.2
Version: 3.6.2
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Run your library from WordPress: manage books, users, branches, bookcases, sections, borrow/return workflows, and reports—all in one place.

== Description ==

**Library Management System (LMS)** is a powerful and easy-to-use WordPress plugin designed to simplify library operations from both the admin dashboard and the frontend. From managing books and members to handling borrowing, returns, fines, and reports — everything is organized in one place for a smooth library experience. Whether you run a school, college, coaching institute, community library, or private book collection, LMS helps you automate daily tasks and save valuable time.

### Why Choose Library Management System? ###

📚 **Complete Library Control** — Organize your collection with categories, bookcases, and sections. Add books with details (name, ISBN, author, publication, cover image, stock) and manage your catalogue from one dashboard.

👥 **User & Branch Management** — Manage library branches and LMS users with contact details. Keep track of who borrowed what and from which branch.

📖 **Borrow & Return** — Process book checkout and returns with configurable loan periods. Track every transaction and return condition (normal, damaged, late). Calculate and manage late fines from the return list.

📊 **Reports & Export** — Generate detailed reports with filters and export to PDF, print, or CSV. See borrow history, return history, and key metrics at a glance.

🌐 **Public Library Page** — Display your book collection on the frontend with the [owt7_library_books] shortcode. Visitors can browse books; logged-in users get a single book page view. Pagination and filters keep the listing tidy.

⚙️ **Flexible Settings** — Configure borrow days, late fines, country, currency, and shortcode options. Multilingual support (English, Hindi, Italian, Spanish, French) and test data import help you get started quickly.

🛡️ **WordPress-Native** — Built with WordPress standards: capability checks, nonces, and sanitization. No coding required to use or customize.

### Perfect For ###

✔ Schools and Colleges
✔ Small community libraries
✔ Institutions that need a simple, reliable library system

---

### ✨ Free Version — What You Get ✨

**Dashboard & Organization**
* Central dashboard with key stats: total books, stock, users, borrows, returns, and quick links to books, users, bookcases, reports, and settings
* Manage categories, bookcases, and sections to organize your physical layout
* Assign books to sections and keep your catalogue structured

**Book Management**
* Add and edit books with name, ISBN, author, publication, cover image, and stock
* Manage multiple book copies with accession numbers for individual physical copies
* List books with filters; view single book page on the frontend
* Test data import tool to try sample categories, books, and users

**Users & Branches**
* Manage user branches and LMS users with contact details
* Dedicated **Library User LMS** role with a separate dashboard experience for library patrons
* Link users to branches for clearer reporting

**Transactions**
* Borrow and return books with a fixed 30-day loan period in the free version
* Track checkout and return status; record return conditions (normal, damaged, late)
* Late fine calculation and management from the return list
* Generate late fine receipts for fee collection records
* Full borrow and return history

**Reports**
* Export DataTables data to PDF, CSV, and Excel for day-to-day record keeping

**Frontend & Shortcodes**
* Shortcode [owt7_library_books] to display the book collection on any page
* Book listing with pagination
* Single book page view for detailed book information
* Public LMS page for guests and logged-in users to browse, with filters and display settings

**Settings & Localization**
* Configure late fines, country, currency, labels/texts, public page display, and admin theme options
* Multilingual support: English, Hindi, Italian, Spanish, and French
* Manage labels/texts for a personalized experience
---

### Limitations of the Free Version ###

The free edition is designed for smaller libraries and has the following limits:

* **Quantity limits:** Up to 30 categories, 30 bookcases, 30 sections, 30 user branches; up to 30 books and 30 LMS users
* **Single book per checkout:** One book can be borrowed per transaction (Pro: multiple books per checkout)
* **Public page:** Frontend display controls are more limited than Pro, with fewer advanced layout and workflow options
* **No data backup/restore:** Backup and restore tool is available in Pro only
* **Data tools stay limited:** Free includes basic import/export support, while Pro expands data management, backup/restore, and advanced workflows
* **Fixed loan period:** The free version uses a fixed 30-day loan period (Pro: configurable loan periods)
* **No WordPress user sync:** One-click sync of WP users into LMS is Pro only
* **No self-checkout/self-return:** Users cannot checkout or return books themselves from the frontend (Pro: self-checkout and self-return with optional admin approval)
* **No request workflow:** Users cannot submit borrow/return requests from the frontend (Pro: request and approval workflow)
* **No clone or bulk operations:** Clone and bulk delete/activate/deactivate for bookcases, sections, categories, and books are Pro only
* **Single librarian:** Multi-librarian and role-based permissions are Pro features
* **No WooCommerce book store:** Selling eBooks via WooCommerce is available in the full Pro version

Upgrading to **Basic Premium** removes quantity limits and adds multi-book borrow/return, data backup, CSV import, and more. The **Full Pro** version adds WordPress user sync, self-checkout/return, clone, bulk operations, multi-librarian support, and WooCommerce integration.

---

### Basic Premium Features ###

➜ Unlimited categories, bookcases, sections, books, branches, and users
➜ Borrow and return multiple books per transaction
➜ Data backup tool (export and import)
➜ CSV data import
➜ Public LMS page with category and availability filters
➜ Multilingual support across all versions (English, Hindi, Italian, Spanish, French)
➜ Full customizable settings (borrow days, fines, country, currency, shortcodes)

Contact **onlinewebtutorhub@gmail.com** to learn more about **Basic Premium**.

### Full Pro Add-ons ###

➜ Sync WordPress users to LMS in one click
➜ Self-checkout and self-return from the frontend (with optional admin approval)
➜ Library User portal: Books List, My Books, Returned Books
➜ User request-to-borrow workflow
➜ Clone and bulk operations (delete, activate, deactivate) for bookcases, sections, categories, books
➜ Multi-librarian support with role permissions
➜ Sell PDF/eBooks via WooCommerce store

== Installation ==

From your WordPress dashboard
1. Visit ‘Plugin > Add new’.
2. Search for ‘Library management system’.
3. Activate Library management system from your Plugins page.

From WordPress.org
1. Search, select and download "Library management system".
2. Activate the plugin through the ‘Plugins’ menu in WordPress Dashboard.

== Screenshots ==

1. Dashboard of LMS 
2. Users List 
3. User Branches List
4. Add New User
5. Add New User Form Validation
6. Add New Branch
7. List of Books
8. Add New Book
9. Borrow a Book
10. Free Version Settings
11. Country and Currency Settings
12. Free Vs Pro LMS
13. LMS in Hindi Language
14. Add New Book in Hindi Language
15. Filter User By Branch
16. Books Borrow History
17. Book Return Form
18. Book Return History
19. Plugin Data Backup
20. All LMS Settings
21. Data Backup Feature
22. All LMS Books on Frontend
23. Single Book view Page
24. Books listing on Public Page via Shortcode
25. Shortcode to Display Books
26. Single Book Page View
27. Available in Italian Language
28. Available in Spanish Language

== Frequently Asked Questions ==

**Is LMS plugin free of cost for lifetime?**
The plugin will always be available for Free. There are no hidden charges. We do have 2-tiers of premium versions of LMS (Basic, and Full). You can buy to use it with full features and functionalities.

**Is the LMS plugin compatible with other WordPress themes and plugins?**
Yes. It works with standard WordPress themes and plugins and should not conflict with your existing setup.

**My LMS Premium version license key is not working...**
If you have license key verification issues with your premium LMS setup. Please make sure your website runs with https:// (SSL Certification must be Enabled).

**How can I purchase basic premium version of the plugin?**
The plugin is free to download. To purchase its premium basic version, please do an enquiry mail to **Email: onlinewebtutorhub@gmail.com**, you will get reply and proceed accordingly to buy the extra addon features.

**What is Basic Premium Version LMS?**
LMS comes with 2-tier Premium Levels: **Basic** and **Full**. The Basic tier removes quantity limits and adds multi-book borrow/return, data backup, and CSV import. The Full version adds WordPress user sync, self-checkout/return, clone and bulk operations, multi-librarian support, and WooCommerce integration.

**What are the limits of the free version?**
The free version allows up to 30 categories, bookcases, sections, and branches; up to 40 books and 40 LMS users. You can borrow one book per transaction. See the "Limitations of the Free Version" section above for the full list and how Pro expands on it.

**Can I use the plugin on multiple sites?**
No, you can use the plugin according to the license key for a specific WordPress site.

**Do I need to know any coding to use this plugin?**
No, we have built **Library management system** to be extremely easy to use and manage.

**Do you provide support?**
Yes. Our LMS support team is available. You can send your query to the email address mentioned above (onlinewebtutorhub@gmail.com).

**Is plugin data backup feature available?**
Yes, but it is available in a Pro version of the LMS plugin. By using this, you can take plugin data backup anytime and restore it in future to the same website or a different website.

== Changelog ==

= 3.6.2 =
* **Motivational quote empty state:** Every admin data table now shows a clean "No data found" panel with an icon whenever a module has no records, keeping empty screens professional and helpful
* **Bottom-right quote card:** A floating motivational-quote card (with author) appears in the corner on empty screens, auto-advancing one quote at a time with a progress bar that tracks the timer—hover to pause, or dismiss it anytime
* **Configurable timing:** The quote rotation interval is controlled from a single constant (LIBMNS_QUOTE_SLIDE_INTERVAL, default 30 seconds)
* **Curated quote library:** A new motivational_quotes database table ships pre-seeded with a hand-picked collection of quotes from renowned authors across categories such as Reading, Knowledge, Motivation, Perseverance, and Wisdom
* **Reusable component:** Added a shared, reusable empty-state renderer (available in both PHP and JavaScript) so it can be dropped into any module that needs it
* **Theme aware:** The empty-state panel and quote card are fully styled for both light and dark themes and adapt to smaller screens
* **Manage Masters Data:** New menu (placed right after Dashboard) opening a hub of cards to manage Authors, Publications, Languages, Categories and Bookcase & Section from one place
* **Authors, Publications & Languages modules:** Full listing, add, edit, view and delete screens for each—backed by their own dedicated database tables
* **Tag-based categories:** A book can now belong to multiple categories; the Category field is a tag input with type-ahead suggestions, replacing the single dropdown
* **Auto-create masters while adding books:** Authors, publications, languages and categories typed into a book form are saved to their master lists automatically and become available as suggestions everywhere
* **Many-to-many relationships:** Books are linked to their authors, publications, languages and categories through dedicated relation tables
* **Inactive borrower login block:** Borrowers whose LMS account is set to Inactive can no longer sign in to WordPress
* **Inactive books hidden:** Inactive books are no longer shown in the Library User book catalogue or the public book listing
* **Dropdown styling fix:** Plugin dropdowns now always use the plugin's own styling instead of falling back to the default WordPress admin (.wp-core-ui) look

= 3.6.1 =
* **Books List author filter:** The admin Books List (Library User portal) Author filter now lists each author individually—books saved with multiple comma-separated authors no longer appear as a single combined option
* **My Books & Returned Books filters:** Category and Author filter dropdowns are now available on the My Books and Returned Books screens, shown automatically only when the list has data
* **Book details modal:** Inside the Borrowed and Returned book details modals, the Book Information and Borrow & Return Information cards now sit side by side to save space
* **Single book page:** Redesigned the single book details screen with a cleaner header, status chips, and a tidy meta layout for a more professional look
* **Book details popup:** Polished the Books List single-book modal for clearer, better-structured details
* **Book cover:** Fixed the single book page cover image being stretched/cropped—covers now display in full at their natural aspect ratio
* **Portal navigation:** For the Library User role, clicking the portal icon or title now goes to the Books List screen
* **Return Book modal:** The quick Return Book modal now keeps its header and footer fixed while the details scroll, so the actions stay in view

= 3.6 =
* **Parameterized books shortcode:** The [owt7_library_books] shortcode now accepts optional attributes to display a pre-filtered list of specific books on any page or post—filter by category_id, author, and/or book_id (all comma-separated for multiple values), e.g. [owt7_library_books category_id="1,2" author="sample"] or [owt7_library_books book_id="BK-2024-001"]
* **Shortcode reference:** The LMS Shortcode(s) settings screen now documents every shortcode attribute with copy-ready examples
* **Author filter:** Books saved with multiple comma-separated authors now appear as individual options in the public Author filter dropdown instead of a single combined entry
* **Empty state:** The public catalog now shows a clear, friendly "No books found" message with an icon when no books match the selected filters
* **New modern UI:** A refreshed, cleaner admin interface across all library screens for a more professional and intuitive experience
* **Full-width admin portal:** The admin library portal now uses a full-width layout, giving you more room to manage books, users, and reports comfortably
* **Dark / Light theme switcher:** Instantly switch between dark and light themes to match your preference and reduce eye strain
* **More user-friendly workflows:** After adding a new book, branch, category, bookcase, section, or borrower you are taken straight to its edit screen to continue working
* **Codebase modernization:** Refactored to a Composer-based, PSR-4 namespaced structure for better maintainability and reliability (fully backward compatible with existing installs)
* **Library screens updated:** Tables, modals, and forms have been polished with improved layouts and consistent styling
* **Various fixes & improvements:** Layout corrections, upgrade screen enhancements, and general stability improvements

= 3.5.9 =
* **Books:** Author(s), Publication(s), and Book Language(s) on the Add/Edit Book form are now Bootstrap-style tag inputs—type and press Enter or comma to add each value as a removable tag, with autocomplete suggestions from your existing catalogue
* **Deactivation:** New deactivation modal on the Plugins screen—when you deactivate LMS you can now choose to deactivate only (keep all data), download a full JSON backup of your data first, or permanently erase all library tables and settings before deactivating

= 3.5.8 =
* Security: Fixed an unauthenticated SQL injection in the self-checkout AJAX handler

= 3.5 =
* **Fee receipts:** New fee receipt concept for late fines and payments—track and issue receipts for library fees from the return list and reports
* **Library User (LMS) role:** New dedicated user role "Library User LMS" for patrons—restricted access to Books List, My Books, and Returned Books for a clear, role-based experience
* **Book copies & accession numbers:** Support for multiple copies per book with unique accession numbers—manage and track individual physical copies alongside your catalogue
* **Dashboard:** Refined layout and quick-access links for books, users, bookcases, reports, and settings
* **UI:** Updated admin and frontend styles for a cleaner, more consistent experience across library pages
* **Security:** Strengthened capability checks and input sanitization on borrow/return and user management flows
* **Performance:** Optimized book listing and report queries for faster load times on larger catalogues
* **UX:** Improved single book page and public library shortcode display with better responsive behavior

= 3.4 =
* Added Spanish Translation
* Database Schema Fix: Updated table structures to support multilingual data entry (English, Hindi, Italian, Spanish)
* Increased VARCHAR field sizes for name fields (users, books, categories, branches, bookcases) to VARCHAR(255) for proper multilingual character support
* Added automatic database migration function to convert existing tables to utf8mb4 charset and update column sizes
* Enhanced multilingual support: All text input fields now properly store and display data in English, Hindi, Italian, and Spanish languages

= 3.3 =
* Design Updated
* New Translation Added - Italian

= 3.2.1 =
* Added more free credit limits to use plugin
* Shortcode is available to display books on Frontend
* Single book page is also available
* Added More Plugin Screenshots 
* Updated "Upgrade to Pro" Screen
* Added CSS for Single Book Page View
* Added WP_Editor for Textarea in Add / Edit Book
* Add Book Page View Preview Link to Edit Book Page
* Book Filter by Category Issue Fixed

= 3.2 =
* Added Security to plugin functions handler
* LMS Cards designs updated
* Added Code to escape unwanted characters entry with data for Italian language.

= 3.1 =
* Updated 'Upgrade Feature Screen': Added Sync WordPress Users to LMS
* Updated 'Upgrade Feature Screen': Self Checkout / Self Return by User from Frontend
* Updated 'Upgrade Feature Screen': Borrowed Books / Returned Books list for Users
* Updated 'Upgrade Feature Screen': Users can Request to Borrow Book
* Updated 'Upgrade Feature Screen':  Data Clone Function for any module like Bookcases, Sections, Categories, Books, etc
* Updated 'Upgrade Feature Screen': Bulk Data Operation for Delete, Move to Active Status, Inactive Status for any module like Bookcases, Sections, Categories, Books, etc
* Updated 'Upgrade Feature Screen': Multi-Librarian Support
* Updated 'Upgrade Feature Screen': Sell PDF eBooks with WooCommerce store

= 3.0 =
* Feature - Added WooCommerce Integration
* Feature - Enhanced User History Management

= 2.5 =
* Fix - Improved Transaction Tracking
* Fix - Enhanced Reporting Options

= 2.0 =
* Feature - Multilingual Support

= 1.0 =
* Initial release.

== Upgrade Notice ==

= 3.5 =
Upgrade for an improved dashboard, refreshed UI, stronger security on transactions, and faster book listing and reports. Recommended for all users.

= 3.4 =
Upgrade to enjoy the new Spanish translation support and improved multilingual database schema that properly handles data entry in English, Hindi, Italian, and Spanish languages. The database will automatically update on activation to support multilingual characters.

= 3.3 =
Upgrade to enjoy the updated design and new Italian translation support.

= 3.2 =
Upgrade to the latest version of this plugin to remove any security risk into this plugin.

== Additional Notes ==

We would be happy to assist you anytime.
If you are interested in paid service, feel free to contact me via email **onlinewebtutorhub@gmail.com**.