=== Flipbooker – PDF Flipbook & Reader Analytics ===
Contributors: flipbooker
Tags: pdf flipbook, flipbook, 3d flipbook, pdf viewer, pdf embed
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Embed hosted PDF flipbooks with a block or shortcode, or turn posts into a 3d flipbook. Paid plans show which pages get read as well as overall views.

== Description ==

= Your PDF deserves better than a download link =

Upload a PDF to WordPress and your visitors get a link that opens a new tab, takes ten seconds to load, and tells you nothing about whether anyone read past the cover.

Flipbooker turns that PDF into a hosted, page-turning flipbook and drops it into any post or page with a block or a shortcode. Readers stay on your site. The flipbook loads from Flipbooker's servers, so your WordPress install carries none of the weight.

Start on the free plan, or take a 14-day trial of any paid plan for $0 today.

= Turn your posts into a flipbook =

Pick published posts or pages from a selector in wp-admin and Flipbooker builds a flipbook from them — a quarterly magazine from your blog, a client-ready case study collection, a printable-feeling annual roundup — without exporting a PDF first.

No other flipbook plugin does this. The content is sent to Flipbooker as structured data; the page-turn, the layout and the hosting happen there.

= A truly three-dimensional page curl =

Most "3D" flipbook effects are a shadow gradient. Flipbooker's viewer bends the page along a true cylindrical curve, with lighting and specular highlights that roll across the paper as it turns and type that curves with it. The result is a more professional, polished look.

= See which pages actually get read =

A view count tells you someone saw your flipbook. It does not tell you that no reader ever gets past page four.

On Professional plans and above, Flipbooker reports which pages were read and for how long, per flipbook. On the Company plan that analysis shows the individual reader: who opened it, which pages they read, whether they came back, and when.

For a catalog, that lets you know what draws the most interest.
For a digital magazine or newsletter, that tells you the stories readers are most interested in.
For a lookbook, you can tell what your most captivating looks are, or even embed videos within the flipbook to capture more emotion.

= How it works in WordPress =

1. Create a Flipbooker account and connect it once with an API key that's easy to find (stored securely using bank-level encryption).
2. Add the Flipbooker block in the editor, or use the shortcode [flipbooker id="…"] anywhere a shortcode works — Elementor, Divi, WPBakery, widgets, or the classic editor. Width and height are attributes. There is no separate Elementor (or other page builder) widget needed.
3. To build a flipbook from your posts, open Flipbooker → Dashboard, select the posts or pages, and create. Simple as that!

Update the flipbook in Flipbooker to have every embed auto-update with it. No re-configuration needed.

= Why hosted with Flipbooker? =

Self-hosted flipbook plugins keep the PDF on your server. That may sound simpler until your PDF is 80 MB,  your host won't let you upload anything that size, and once you finally figure THAT out, the page takes 30 seconds to load. 

Flipbooker converts and serves the flipbook from its own pro-grade infrastructure: no size limit on your WordPress host, mobile-optimized delivery from a CDN, rendering that won't peg your hosting plan's PHP memory limits. The plugin itself is a light embed, easy to use, and made to keep your Wordpress install feeling snappy.

= Made for =

Product catalogs, brochures, magazines and newsletters, restaurant menus, annual reports, proposals, training manuals, portfolios, ebooks and lead magnets. If it's anything that you wish you could send more easily, or wish that PDFs could be more dynamic, this

= Plans and what you need =

This plugin is free. It requires a Flipbooker account to operate. 

* Free: Try out the platform and make sure you like it. And the below features on your free trial, if you decide to go forward:

* Starter: PDF download control and basic flipbook settings.
* Professional: page-level analytics, your own branding, embed and QR codes and more.
* Company: per-reader analytics, lead forms, white-label, API access.

Paid plans come with a 14-day free trial. The trial takes a card and charges nothing today. Free cancelation for 14 days once signed up.

= Third-party service =

This plugin connects to the Flipbooker service to validate your API key, list your flipbooks, create flipbooks from selected content, and embed the viewer from flipbooker.com. Reading activity for flipbooks on plans that include analytics is recorded by Flipbooker. Terms: https://flipbooker.com/terms · Privacy: https://flipbooker.com/privacy

= Privacy and reader data =

Reading activity is recorded by Flipbooker's servers inside the flipbook, no site scripts needed, and only records flipbook activity, not anything else on your Wordpress install. The viewer sets no cookies. The one thing it keeps in the reader's browser (if used) is a cart for shoppable catalogs, in localStorage, so a selection survives a page turn. No Google Analytics or other service required or included. Per-reader data on the Company plan identifies readers by email only where you have gated the flipbook behind a magic link or they have filled out a lead form on that flipbook. Reading data is not sold or shared.

== Installation ==

1. Upload the plugin files to `/wp-content/plugins/flipbooker`, or install through WordPress admin
2. Activate the plugin through the 'Plugins' screen
3. Go to Flipbooker → Settings and enter your API key
4. Site administrators can create flipbooks from selected content.

== Frequently Asked Questions ==

= Does the Flipbooker plugin work without a Flipbooker account? =

No. The plugin embeds flipbooks that Flipbooker hosts, so an account is required. You can try the Flipbooker service out for free.

= Can I make a flipbook from my blog posts? =

Yes. Select published posts or pages in Flipbooker → Dashboard and Flipbooker builds a flipbook from them; you do not need to export a PDF first.

= Are my PDFs stored on my WordPress server? =

No. The PDF uploads to Flipbooker and our flipbook plugin embeds the hosted 3d flipbook. Nothing goes in your media library, and your site's upload limit does not apply.

= Can I see which pages people actually read? =

On Professional and above, yes. Flipbooker shows reader analytics per flipbook, page by page. On the Company plan you can also see it per reader. The free and Starter plans do not include analytics.

= Is it a real 3D page flip? =

Yes. The page is bent along a cylindrical curve with realistic lighting (and a lot of math), rather than a flat image with a shadow drawn on it. The visual effect is one we are proud of, and believe we have the most professional looking 3d page flip animation out there.

= Does this flipbook plugin work with Elementor, Divi, WPBakery or other page builders? =

Yes. Use the shortcode inside any builder's text or HTML element. The Gutenberg block is for the block editor; there is no separate Elementor widget.

= Is there a free plan, and does the trial need a credit card? =

There is a free plan that allows you to look at the platform to decide if it is for you.. Paid plans offer a 14-day trial that takes a card and makes no charge until the trial period ends. If the trial is canceled (which you can do within the Flipbooker platform, without ever needing to talk to a person), you are never charged.

= Does the plugin add Google Analytics or tracking cookies to my site? =

No Google Analytics, no cookies. Reading activity is measured on Flipbooker's platform, inside the flipbook. Shoppable catalogs keep a cart in the reader's browser storage. Nothing else is stored client-side.

= Can visitors download the original PDF? =

That is a setting you can choose. Downloading can be allowed as a whole book, a page, spread, or disallowed entirely.

= Will the flipbook's text be indexed by Google? =

The embed is an iframe, so the text is not part of your page. Public flipbooks on flipbooker.com are searchable. The text and structured data may be found on search engines, with private, gated and expired books excluded (like if someone's plan is canceled).

= Can I customize the flipbook design? =

Design customization is done through your Flipbooker dashboard.

== Screenshots ==

1. Settings page - Connect your Flipbooker workspace
2. Dashboard - Create flipbooks and view existing ones
3. Post selector - Search or page through posts to include
4. Page selector - Search or page through pages to include
5. Gutenberg block - Embed flipbooks in the block editor

== Changelog ==

= 1.0.0 =
* Initial release
* Settings page with API key management
* Create flipbooks from posts
* Shortcode support: [flipbooker id="book_abc123"]
* Gutenberg block support
* AES-256-GCM encryption

== Upgrade Notice ==

= 1.0.0 =
Initial release.

== Shortcode Usage ==

Embed a published flipbook by URL (preferred):
`[flipbooker url="https://view.flipbooker.com/abc123"]`

Or by book ID:
`[flipbooker id="book_abc123"]`

With custom dimensions:
`[flipbooker id="book_abc123" width="100%" height="800px"]`

Shortcode and block embeds are rendered server-side with the same validation. Width and height accept positive numeric values with safe CSS units such as `px`, `%`, `em`, `rem`, `vh`, and `vw`; invalid values fall back to defaults. Embed URLs are restricted to Flipbooker hosts (`flipbooker.com`, `www.flipbooker.com`, `view.flipbooker.com`) over https, and admin preview links are limited to Flipbooker preview hosts.

Flipbooks created from this plugin start as editable drafts: finish and publish them in the Flipbooker editor, then embed the published URL.

== API Integration ==

This plugin communicates with the Flipbooker platform API at https://api.flipbooker.com/api/v1

Data sent includes:
* Site metadata: site URL and site name
* Selected published post fields: ID, title, excerpt, stripped content, featured image URL, permalink, publication date, and author display name
* Selected published page fields: ID, title, excerpt, stripped content, featured image URL, permalink, publication date, and author display name

API keys are encrypted using AES-256-GCM before storage.
All communication is over HTTPS.
Creating flipbooks from selected content uses the stored workspace API key and requires an administrator-level capability by default. Developers can intentionally change this with the `flipbooker_content_export_capability` filter for trusted editorial workflows.

Selectors are paginated and searchable. Each export re-checks the current user's export capability and per-object edit permission before sending content.

Public companion boundary:
* `flipbooker_get_connection_state()` returns connection status and workspace ID without exposing the API key.
* `flipbooker_current_user_can_use_workspace_api()` checks whether the current user can use the stored workspace API key.
* `flipbooker_get_workspace_api()` returns a narrow `Flipbooker\Companion_API` facade for authorized connected requests, or `WP_Error`.
* `flipbooker_get_workspace_api_for_site_sync($workspace_id, 'woocommerce')` returns a distinct catalog-only facade for WooCommerce background sync only when the stored connection still belongs to the captured workspace ID.

Companion plugins should use those functions instead of copying encryption, settings, or embed code, and remain responsible for validating their own selected records.

== External Services ==

This plugin relies on Flipbooker, a hosted software service, to create, store, edit, publish, and display flipbooks. A Flipbooker account and workspace API key are required for creation and dashboard features.

Activation creates empty options in the local WordPress database and makes no request to Flipbooker. External requests begin only after an administrator submits an API key or a site owner embeds Flipbooker content.

* **Connect:** When an administrator submits an API key, the plugin sends it as an HTTPS bearer credential to `GET https://api.flipbooker.com/api/v1/brand` to authenticate it and retrieve the workspace ID. It also requests `GET https://api.flipbooker.com/api/v1/books?limit=1` to check whether the key can read books. The encrypted key, workspace ID, and connection status are then stored locally.
* **Dashboard:** When an authorized administrator opens the connected dashboard, the plugin requests published flipbook metadata from `GET https://api.flipbooker.com/api/v1/books?filter[status]=publish` so it can display the workspace's published books.
* **Content export:** Only after an authorized user selects published posts or pages and clicks Create Flipbook does the plugin send an authenticated `POST` request to `https://api.flipbooker.com/api/v1/books/create-from-template`. The request contains the fields listed under API Integration plus site URL and site name. The returned draft is stored by Flipbooker. Opening a returned editor link loads https://app.flipbooker.com in that administrator's browser.
* **Companion background sync:** An installed companion plugin may use this plugin's fixed, authenticated catalog facade during an administrator action or its scheduled background jobs. The facade can call `/catalogs`, `/catalogs/{catalog_id}/items:bulk-upsert`, `/catalogs/{catalog_id}/items/availability`, `/catalogs/{catalog_id}/items`, and `/catalogs/{catalog_id}/items/{item_id}` below the same API base URL. This may send catalog, product, price, inventory, image, and related site data selected and documented by that companion. The Flipbooker plugin does not start a catalog sync by itself.
* **Embedded viewer:** When a site owner inserts a Flipbooker shortcode or block, visitors' browsers load an iframe from https://view.flipbooker.com or a documented Flipbooker preview URL. The request discloses standard connection data such as IP address and browser user agent and may include the referring page according to browser policy. Flipbooker may use cookies or similar storage and process viewer interaction analytics. If the site owner configures optional lead-capture content inside a flipbook, information a visitor chooses to submit is sent to Flipbooker by the embedded viewer. The WordPress plugin does not add a viewer request until a site owner inserts an embed.

Flipbooker service: https://flipbooker.com
Terms of Service: https://flipbooker.com/terms/
Privacy Policy: https://flipbooker.com/privacy/

== Privacy & Data ==

This plugin sends selected content and site metadata to Flipbooker's API only for the actions described above. Author display names, post/page URLs, and site URL/name may be personal or business data depending on your site. The plugin does not send WordPress passwords, customer records, comments, or arbitrary custom fields. API keys are encrypted and stored locally in your WordPress database. Disconnecting or uninstalling removes the plugin's local connection options but does not delete content already sent to Flipbooker.

For details about the API and embedded viewer, see External Services above.

= Suggested privacy policy text =

Our site uses Flipbooker to display interactive publications. When you view an embedded publication, your browser connects to Flipbooker and shares technical connection data such as your IP address and browser user agent; the referring page may also be shared according to your browser settings. Flipbooker may use cookies or similar technologies and collect interaction analytics. If a publication contains an optional lead form, the information you choose to submit is sent to Flipbooker. We may also send selected site content and its author display name to Flipbooker when creating a publication. See the Flipbooker Privacy Policy at https://flipbooker.com/privacy/ and Terms of Service at https://flipbooker.com/terms/ for more information.
