=== Pretty Bookshelf ===
Contributors: jshbldt
Tags: books, bookshelf, authors, book showcase, book gallery
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Display books on WordPress with beautiful galleries, author pages, ISBN lookup, and your own retailer links.

== Description ==
Create beautiful book galleries and author pages on WordPress—without coding.

Pretty Bookshelf gives authors and book lovers a simple way to display books, share descriptions, and help readers find where to buy. Add a book by ISBN or enter its details yourself, then display it with a block or shortcode.

**Start free with five published books and unlimited drafts.**

See sample layouts: [Book gallery](https://prettyplugins.com/bookshelf-demo/) | [Author page](https://prettyplugins.com/author-page-demo/) | [Single-book page](https://prettyplugins.com/single-book-demo/).

= Everything you need to show your books =

* **Less manual entry.** Look up book details and covers using Open Library, then review and edit the results.
* **Ready-made layouts.** Start with a bookstore gallery, author page, or single-book launch page.
* **Your own purchase links.** Add up to four retailer buttons per book, including your affiliate links.
* **Update once.** Edit a book in one place and its details update wherever you display it.
* **Fits your site.** Layouts inherit your theme’s fonts and colors.

Use a Pretty Bookshelf block in the WordPress editor, or choose display options and copy a generated shortcode from the Shortcodes & Layouts screen.

= Need a larger collection? =

The free version includes five published books. Plus supports 50 and Pro supports 500. [Compare the paid editions](https://prettyplugins.com/pretty-bookshelf-premium/).

= Documentation & support =

* [Illustrated Getting Started guide](https://prettyplugins.com/getting-started-with-pretty-bookshelf/)
* [Plugin support forum](https://wordpress.org/support/plugin/prettyplugins-pretty-bookshelf/)
* [Pretty Plugins website](https://prettyplugins.com/)

== Installation ==
1. In WordPress, go to Plugins > Add Plugin, search for Pretty Bookshelf, then install and activate it. If you downloaded the ZIP, use Upload Plugin instead.
2. Go to Pretty Bookshelf > Add Book. Enter an ISBN and choose Find Book, or enter the details manually.
3. Review the result and choose Use these details. Check the cover, description, and retailer links, then publish the book.
4. Edit a page and insert a Pretty Bookshelf block. Choose the book or collection to display, preview, and publish your page.

Publishing a book saves it for use in your displays; it does not automatically create a standalone book page.

For ready-made pages, open Patterns > Pretty Bookshelf in the block editor. Choose a layout, select your book or author, and replace the sample text. You can also copy a shortcode from Pretty Bookshelf > Shortcodes & Layouts into a Shortcode block.

[Follow the illustrated Getting Started guide](https://prettyplugins.com/getting-started-with-pretty-bookshelf/).

== Frequently Asked Questions ==
= How many books can I display for free? =
Five published book records across your site, with unlimited drafts. Displaying the same book on multiple pages still uses one slot.

= Can I use Amazon, Bookshop, or other affiliate links? =
Yes. Add your own links and button labels to each book. Pretty Bookshelf does not generate affiliate links or add affiliate IDs. You are responsible for the disclosures required by your affiliate programs, including Amazon Associates’ required statement where applicable.

= What if an ISBN lookup is missing a cover or description? =
You can enter or edit the details manually and choose a cover from your Media Library. No Open Library account or API key is required.

= Do I need the block editor? =
The included page patterns require the WordPress block editor. You can also display books using shortcodes generated in Shortcodes & Layouts.

= Why is a book missing from my collection? =
Check that it is published and that its Author field matches the collection when displaying books by author. Clear your site’s page cache after making changes if necessary.

= What happens when I deactivate the plugin? =
Your book records remain saved. Book blocks require the plugin to display, and shortcodes may appear as text while it is inactive.

== External services and privacy ==
ISBN lookup uses the Open Library APIs, operated by the Internet Archive. Requests happen when an editor clicks Find Book. An uncached lookup can make up to four server-side requests for an edition, description, and missing details. Requests send the ISBN, server IP address, and a User-Agent identifying Pretty Bookshelf and the site's public URL.

Results are cached for 24 hours, or five minutes when details are incomplete. Repeated lookups use that cache. Lookups are spaced and serialized to respect provider limits. No API key or Open Library account is required. Manual entry works if the service is unavailable.

Imported covers load from Open Library’s cover service (covers.openlibrary.org), so visitors' browsers send that service normal image-request information such as IP address and browser headers. Upload your own covers to avoid those requests. Saved metadata and descriptions are displayed from your website without catalog requests.

The plugin does not send book descriptions, retailer links, account credentials, or visitor details in ISBN lookup requests. It includes no analytics, tracking, or automatic external requests on activation. Check imported content and your rights to use cover artwork and descriptions before publishing.

= Open Library (third-party service) links =

* [API documentation](https://openlibrary.org/dev/docs/api/books)
* [Usage](https://openlibrary.org/developers/api)
* [Privacy](https://openlibrary.org/privacy)
* [Terms](https://archive.org/about/terms.php)

== Screenshots ==
1. Display book covers, descriptions, and retailer links in a ready-made gallery. Appearance follows your WordPress theme.
2. Introduce an author with a portrait and biography, then display their published books in an automatic collection.
3. Look up a book by ISBN and review the cover and details before importing.
4. Choose a book or collection, set display options, and copy a generated shortcode into your page.
5. Feature one book with a description, purchase buttons, and edition details.

== Changelog ==

= 1.0.1 =
* Match the translation text domain to the approved WordPress.org slug, prettyplugins-pretty-bookshelf.

= 1.0 =
* Clear Plus and Pro upgrade options with direct Freemius checkout links.
* Added an upgrade page explaining purchase, installation and license activation.
* Basic remains free, with five published books and unlimited drafts.


= 0.9.6 =
* Restore the Pretty Bookshelf name and original text domain; retain the 0.9.5 updates.

= 0.9.5 =
* Add an author icon and replace shortcode lists with examples and a copyable shortcode generator.
* Support all="true" for automatic all-book shortcode galleries.

= 0.9.3 =
* Add Pretty Bookshelf All Books with an automatic published-book grid.
* Name the three blocks clearly and show book and author selectors directly in the editor.
* Match newly inserted books to gallery styling and simplify the gallery pattern.

= 0.9.2 =
* Explain when a selected book is unavailable because it is in draft mode.
= 0.9.1 =
* Simplify the Bookstore gallery introduction.
* Keep shortcode-based book cards visible in the block editor.

= 0.9 =
* Raise the Author edition to five published books, with unlimited drafts.
* Update publication messages, setup instructions, and directory screenshot captions.

= 0.5.5 =
* Add an optional three-step Getting Started guide with layout choices and practical troubleshooting.
* Simplify ISBN lookup controls and add an explicit manual-entry path.
* Preview imported descriptions and ISBNs before applying details.
* Clarify missing-cover recovery, edit preservation, and when changes are saved.
* Refine editor spacing and update product copy around ease of use and good design.
* Keep the Author edition at three published books and unlimited drafts.

= 0.5.4 =
* Add a Plus/Pro upgrade link to publication-limit notices.
* Remove shortcut links from the Author publication-count notice.

= 0.5.3 =
* Use the theme’s wide layout width for the bundled page patterns.
* Avoid a cover-fallback observer error while the block editor creates its preview document.
* Resolve Plugin Check findings and simplify the plugin name to Pretty Bookshelf.

= 0.5.0 =
* Introduce the Author edition: three published books and unlimited drafts.
* Enforce publication limits on regular saves, bulk publishing, scheduling and programmatic publishing.
* Add published-book counters and a selection screen.
* Preserve excess books as drafts when changing editions.
* Update publisher and support information to Pretty Plugins.

= 0.4.4 =
* Fix the title placeholder overlapping titles imported by ISBN.
* Keep book descriptions left aligned under themes that justify paragraph text and give gallery cards more room.

= 0.4.2 =
* Simplify setup, pattern, and shortcode instructions and remove outdated readme text.
* Correct the author layout description and generate advanced shortcode examples from the site's own books.
* Use cached ISBN results on repeat lookups and keep service errors distinct from an ISBN not found.
* Hide password-protected books from public displays and author lists.
* Hide empty gallery cards and launch-page frames when their books are unpublished.
* Give each book preview its own accessible label without duplicate heading IDs.
* Add translation support for editor and lookup messages and address Plugin Check findings.
* Improve shortcode fields and prevent justified text from creating uneven spacing in book layouts.

= 0.4.1 =
* Add an automatic Author Collection block and author-based shortcode.
* Add Pretty Bookshelf > Shortcodes & Layouts, with copy buttons for each published book and author, display options, and pattern instructions.
* Match published book author fields exactly, ignoring capitalization and extra whitespace, and sort by title.
* Use the automatic collection in the bundled Author page pattern. Existing pages and book records are unchanged.

= 0.4.0 =
* Bundle three optional block patterns: Bookstore gallery, Author page, and Single-book launch.
* Add scoped, responsive pattern styling and a local author portrait placeholder.
* Add the description word limit to block settings; gallery cards start at 45 words.
* Keep all book records, settings, and existing pages unchanged.

= 0.3.4 =
* Remove repeated publisher names during import, ignoring capitalization and extra whitespace. Keep the first spelling and preserve genuinely different publishers, including names with commas.
* Use a fresh versioned lookup cache so old imported duplicates are not reused.
* Leave all existing book records unchanged.

= 0.3.3 =
* Optional gallery description excerpts with accessible, keyboard-operable Read more / Read less controls. Full descriptions stay in the book records.
* Add description_words="45" to a shortcode to collapse longer descriptions after 45 words; omit it or use 0 to keep the full display. Short descriptions and empty descriptions never get an empty toggle.

= 0.3.2 =
* Validate ISBN-10 and ISBN-13 checksums in the editor before sending requests, so invalid input gets a clear ISBN message even on hosts that replace HTTP error bodies.
* Show a bundled neutral cover placeholder when a cover is missing or fails to load, including the editor, lookup results, blocks, and shortcodes.
* Keep existing saved cover URLs and all book records unchanged. The placeholder is only a display fallback.

= 0.1.0 =
First testing version.

Missing or unavailable cover images use an included SVG placeholder. It is served from your own site and never saved over a book’s cover URL.
