[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fjyN9fnMYNk8dayUwIw4B8w7fSNTJpnKx8QqF4gTGso8":3},{"slug":4,"name":4,"version":5,"author":6,"author_profile":7,"description":8,"short_description":9,"active_installs":10,"downloaded":11,"rating":12,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":23,"download_link":24,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":36,"analysis":144,"fingerprints":632},"wp2epub","0.65","tcrouzet","https:\u002F\u002Fprofiles.wordpress.org\u002Ftcrouzet\u002F","\u003Cp>wp2epub generate epub files, ready to publish, for iPad, iPhone and other readers. Just choose the tags, categories or dates to export. It’s done. You are now a bloguer and a writer. wp2epub also export in html, and then you can open with a wordprocessor to convert into PDF or other formats. A good way to backup your blog. Possible integration on each post.\u003C\u002Fp>\n","wp2epub generate ePub files directly from WordPress.",60,40201,66,3,"2013-02-01T10:39:00.000Z","3.5.2","2.7","",[19,20,21,22,4],"ebook","epub","html","ipad","http:\u002F\u002Fblog.tcrouzet.com\u002Fwp2epub\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp2epub.0.65.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":6,"display_name":6,"profile_url":7,"plugin_count":13,"total_installs":31,"avg_security_score":32,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},80,90,30,87,"2026-04-04T11:40:26.864Z",[37,64,87,106,127],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":59,"download_link":60,"security_score":61,"vuln_count":62,"unpatched_count":26,"last_vuln_date":63,"fetched_at":28},"fb-reviews-widget","Reviews Widgets for Google, Yelp & TripAdvisor","2.7.3","richplugins","https:\u002F\u002Fprofiles.wordpress.org\u002Fwidgetpack\u002F","\u003Cp>⭐ \u003Cstrong>Reviews Widgets for Google, Yelp & TripAdvisor\u003C\u002Fstrong> is a simple and powerful WordPress plugin that displays real customer reviews from major platforms (Google, Yelp & TripAdvisor) and \u003Cstrong>Facebook recommendations\u003C\u002Fstrong> into combined feed.\u003C\u002Fp>\n\u003Ch3>⭐ Unified feed — Google + Facebook + Yelp + TripAdvisor together!\u003C\u002Fh3>\n\u003Cp>📌 This plugin brings together reviews from \u003Cstrong>Facebook Recommendations\u003C\u002Fstrong>, \u003Cstrong>Google\u003C\u002Fstrong>, \u003Cstrong>Yelp\u003C\u002Fstrong>, and \u003Cstrong>TripAdvisor\u003C\u002Fstrong> into a single combined feed.\u003Cbr \u002F>\n📌 You no longer need separate plugins for each platform — everything is managed in one place using one widget, one shortcode and one settings panel.\u003Cbr \u002F>\n📌 This reduces setup time, avoids plugin conflicts and keeps your site lighter and easier to manage.\u003C\u002Fp>\n\u003Ch3>⭐ Unlimited business locations & unlimited widgets\u003C\u002Fh3>\n\u003Cp>📍 \u003Cstrong>Unlimited locations\u003C\u002Fstrong> — connect any number of Google places, Yelp listings or Facebook Pages.\u003Cbr \u002F>\n🗂️ \u003Cstrong>Unlimited widgets\u003C\u002Fstrong> — each widget can use its own layout and source selection.\u003Cbr \u002F>\n🔧 Each widget can display a different location, different platform or any custom combination of Google, Yelp or Facebook sources.\u003C\u002Fp>\n\u003Cp>There are no limits on:\u003Cbr \u002F>\n– number of locations\u003Cbr \u002F>\n– number of widgets\u003Cbr \u002F>\n– number of shortcodes\u003Cbr \u002F>\n– number of pages where you display reviews\u003C\u002Fp>\n\u003Ch3>⭐ API usage & platform limitations\u003C\u002Fh3>\n\u003Cp>This plugin uses the official Facebook Graph API to show \u003Cstrong>all recommendations\u003C\u002Fstrong> and requires an owner rights to the FB page. It displays up to \u003Cstrong>10 Google reviews\u003C\u002Fstrong> and \u003Cstrong>3 Yelp reviews\u003C\u002Fstrong> at the first install and can \u003Cstrong>collect it daily to show more reviews\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>⭐ Why display social reviews?\u003C\u002Fh3>\n\u003Cp>📈 Build trust and credibility\u003Cbr \u002F>\n📌 Improve conversions\u003Cbr \u002F>\n📉 Reduce bounce rate\u003Cbr \u002F>\n⏱️ Increase dwell time\u003Cbr \u002F>\n🏆 Strengthen local business reputation\u003Cbr \u002F>\n🚀 Add verified social proof near your call-to-action\u003C\u002Fp>\n\u003Cp>This plugin gives you full control — show a few top reviews or an entire feed.\u003C\u002Fp>\n\u003Ch3>⭐ Manual filtering & moderation\u003C\u002Fh3>\n\u003Cp>You have full manual control over what is displayed.\u003Cbr \u002F>\nIf a review is irrelevant or not needed — hide it with one click.\u003Cbr \u002F>\nThis helps maintain a clean and relevant feed.\u003C\u002Fp>\n\u003Ch3>⭐ Multiple display layouts\u003C\u002Fh3>\n\u003Cp>Choose between:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>List\u003C\u002Fli>\n\u003Cli>Grid\u003C\u002Fli>\n\u003Cli>Slider (carousel)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Suitable for sidebars, landing pages, homepage sections, footers and full-width layouts.\u003C\u002Fp>\n\u003Ch3>⭐ SEO & performance benefits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Lightweight and optimized\u003C\u002Fli>\n\u003Cli>Improves engagement\u003C\u002Fli>\n\u003Cli>Clean HTML markup (SEO-friendly)\u003C\u002Fli>\n\u003Cli>Compatible with caching plugins\u003C\u002Fli>\n\u003Cli>Lazy-loading for images\u003C\u002Fli>\n\u003Cli>Fully responsive on all screens\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>⭐ Sources & review limits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Google\u003C\u002Fstrong> — up to 10 reviews via public API, more synced manually every 3 days using the “Refresh” option\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Yelp\u003C\u002Fstrong> — up to 3 reviews via public API, more synced manually every 3 days using the “Refresh” option\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Facebook\u003C\u002Fstrong> — all Recommendations available through the official Graph API (no limits)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cp>• Display Google reviews, Yelp reviews & Facebook Recommendations\u003Cbr \u002F>\n• Unified feed — combine all platforms into one widget\u003Cbr \u002F>\n• Unlimited business locations\u003Cbr \u002F>\n• Unlimited widgets and shortcodes\u003Cbr \u002F>\n• Multiple layouts: list, grid, slider (carousel)\u003Cbr \u002F>\n• Manual moderation (hide\u002Fshow any review)\u003Cbr \u002F>\n• Responsive design\u003Cbr \u002F>\n• Manual refresh every 3 days\u003Cbr \u002F>\n• Pagination for long lists\u003Cbr \u002F>\n• SEO-friendly clean markup\u003Cbr \u002F>\n• Lazy-loading for images\u003Cbr \u002F>\n• Official APIs only — no scraping\u003Cbr \u002F>\n• Compatible with Elementor, Divi, Beaver Builder, SiteOrigin, WPBakery\u003Cbr \u002F>\n• Gutenberg block and classic widget included\u003Cbr \u002F>\n• Dark mode and light mode\u003Cbr \u002F>\n• Works immediately with no coding\u003C\u002Fp>\n\u003Ch3>Demo\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ftrust.reviews\u002Fdemos\" rel=\"nofollow ugc\">Online demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FTEqz4RDr7EI?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Email support support@trust.reviews\u003C\u002Fli>\n\u003Cli>Forum support https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Ffb-reviews-widget\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n","Combine Facebook recommendations with Google, Yelp and TripAdvisor reviews in a widget, block or shortcode. Build a trusted website!",10000,538882,98,324,"2026-02-02T00:23:00.000Z","6.9.4","4.7","5.2",[54,55,56,57,58],"facebook","google-reviews","reviews","tripadvisor","yelp-reviews","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffb-reviews-widget","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffb-reviews-widget.2.7.3.zip",96,2,"2025-12-08 00:00:00",{"slug":65,"name":66,"version":67,"author":68,"author_profile":69,"description":70,"short_description":71,"active_installs":72,"downloaded":73,"rating":74,"num_ratings":75,"last_updated":76,"tested_up_to":50,"requires_at_least":77,"requires_php":17,"tags":78,"homepage":84,"download_link":85,"security_score":47,"vuln_count":62,"unpatched_count":26,"last_vuln_date":86,"fetched_at":28},"insert-headers-and-footers-script","Insert Headers and Footers Code – HT Script","1.1.8","HT Plugins","https:\u002F\u002Fprofiles.wordpress.org\u002Fhtplugins\u002F","\u003Cp>Insert Headers and Footers Code allows you to insert Google Analytics, Facebook Pixel, custom CSS, custom HTML, JavaScript code to your website header and footer without modifying your theme code.\u003C\u002Fp>\n\u003Cp>This plugin has the option to add any custom code to your theme in one place, no need to edit the theme code. It will save your time and remove the hassle for the theme update.\u003C\u002Fp>\n\u003Cp>Pro version is also available : \u003Ca href=\"https:\u002F\u002Fhasthemes.com\u002Fplugins\u002Finsert-headers-and-footers-code-ht-script\u002F\" rel=\"nofollow ugc\">Check it out now!\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Video Documentation:\u003C\u002Fh3>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Ftv4q46ZD8lA?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Very easy to use\u003C\u002Fli>\n\u003Cli>Insert Unlimited Scripts\u003C\u002Fli>\n\u003Cli>Insert Code to header \u002F footer\u003C\u002Fli>\n\u003Cli>Add custom CSS\u002Fjs to any theme\u003C\u002Fli>\n\u003Cli>Add Google Analytics code\u003C\u002Fli>\n\u003Cli>Add Facebook Pixel code\u003C\u002Fli>\n\u003Cli>Show On Full website\u003C\u002Fli>\n\u003Cli>Show on Only Homepage (Pro)\u003C\u002Fli>\n\u003Cli>Show on Selected Pages (Pro)\u003C\u002Fli>\n\u003Cli>Show on Selected Posts (Pro)\u003C\u002Fli>\n\u003Cli>Show on Selected Categories (Pro)\u003C\u002Fli>\n\u003Cli>Show on Selected Tags (Pro)\u003C\u002Fli>\n\u003Cli>Exclude Pages (Pro)\u003C\u002Fli>\n\u003Cli>Exclude Posts (Pro)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other Projects\u003C\u002Fh3>\n\u003Cp>We have a lot of plugins and extensions that might interest you. Try out other projects by following this link:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoolentor-addons\u002F\" rel=\"ugc\">Woolentor Addons\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nWoolentor is a WooCommerce page builder plugin that extends the functionality of the WooCommerce store. These Elementor Addons provide additional features and options for WooCommerce stores. Woolentor is the best alternative for ShopReady, Kadence, JetWidgets, ShopEngine, and CoDesigner. The Woolentor addons come with 50+ free Elementor widgets like Wishlist Extension Addon, Product compare, Product Filters, Product Variation Swatches, Shopify Style Checkout, Product Slider and 50+ pro Elementor Widgets like Checkout Fields Editor, Partial Payment, Email Customizer for WooCommerce with ready Email Templates, WooCommerce Email Automation, Multi Step Checkout, and many much more. Also it provide 90+ WooCommerce Elementor templates, 22+ WooCommerce Modules, and Gutenberg Blocks.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fht-mega-for-elementor\u002F\" rel=\"ugc\">HT Mega For Elementor\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nHT Mega is an Elementor Addons that comes with custom page builder,  header builder, footer builder, mega menus, and more for your Elementor based website. The HT Mega plugin also includes a comprehensive set of Elementor widgets, readymade Elementor templates and Elementor Blocks.  HT Mega plugin works like ElementsKit, Essential Addons for Elementor, Royal Elementor Addons, Premium Addons, Happy Addons, PowerPack Addons, Unlimited Elements, Qi Addons, etc. The HT Mega plugin provides 84+ free Elementor widgets like Post Grid widget, Slider widget, Accordion widget, Elementor Forms widget, Contact Form Widget, Elementor tables, and other related items. It also provides 18+ pro widgets like Filterable Gallery Widget, Event Box Widget, Breadcrumbs Widget, Elementor Facebook Review Widget, Elementor Category List Widget, etc.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fhashbar-wp-notification-bar\u002F\" rel=\"ugc\">Hashbar Wp Notification Bar\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nHashBar is a WordPress Notification Bar Plugin that enables you to create unlimited notification bars on your WordPress website. You can create as many notification bars as you want and customize their content to meet your needs.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-plugin-manager\u002F\" rel=\"ugc\">WP Plugin Manager – Deactivate plugins per page\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nWP Plugin Manager is the perfect solution for those who want to disable certain plugins on specific pages or posts. With this plugin, you can easily activate or deactivate plugins on a per-page or per-post basis. Whichever plugin you don’t need you can deactivate or disable that plugin with the help of WP plugin Manager.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fextensions-for-cf7\u002F\" rel=\"ugc\">Extensions For Cf7\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nContact Form 7 is an excellent plugin for organizing your contact page. The CF7 extensions plugin includes Contact Form 7 Database, enabling Conditional Fields for Contact Form 7, etc. It allows fields to be set up as either visible or hidden depending upon the input from visitors. In addition, integrating seamlessly with Mailchimp brings leads generated every time someone fills out one form into an associated email list immediately.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwhols\u002F\" rel=\"ugc\">Whols\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nWhols is an outstanding plugin for WooCommerce that allows store owners to set wholesale prices for the products of their online stores. With Whols, you can easily add custom fields to your registration form, set minimum product requirements, and control how wholesale prices are displayed on both the shop and product detail pages. Whols work  like Wholesale Suite, B2Bking and B2B plugins.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjust-tables\u002F\" rel=\"ugc\">Just Tables\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nJustTables is a WooCommerce product table plugin that helps you easily create and manage tables for your products. It includes 28 pre-built columns with options to enable\u002Fdisable, and you can add custom columns with custom fields\u002Ftaxonomies. Just Tables also allows you to order table columns using drag and drop and set the number of products per page.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fswatchly\u002F\" rel=\"ugc\">Swatchly\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nSwatchly is a WooCommerce product variation swatches plugin that allows you to add color swatches to your product pages. With Swatchly, you can enable swatches for the shop, product list, and product details pages. There are three swatch types (label swatche, color swatche, image swatche), and the plugin supports multi-colored swatches.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fht-slider-for-elementor\u002F\" rel=\"ugc\">HT Slider For Elementor\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nHT Slider For Elementor is a powerful and user-friendly slider addon for Elementor. You can customize the look and feel of your slider with HT Slider’s custom styling options. You also have the option to display your slides by id and category. Plus, HT Slider For Elementor comes with custom design options for slider navigation and pagination, so you can easily control the look and feel of your slider.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fht-contactform\u002F\" rel=\"ugc\">HT Contact form\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nHT Contact Form 7 Widget is an Elementor addon that allows you to easily drag and drop Contact Form 7 forms into your web pages. With the help of this plugin, you can choose your form from the drop-down list, Custom Styling Options, and add it to any page or place on your website. The HT Contact Form 7 Widget is an essential tool for anyone using Contact Form 7 on their website.\u003C\u002Fp>\n\u003Ch3>Need Help?\u003C\u002Fh3>\n\u003Cp>Is there any feature that you want to get in this plugin?\u003Cbr \u002F>\nNeeds assistance to use this plugin?\u003Cbr \u002F>\nFeel free to \u003Ca href=\"https:\u002F\u002Fhasthemes.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Contact us\u003C\u002Fa>\u003C\u002Fp>\n","This plugin allows you to insert Google analytic code, Facebook pixel code, custom javascript, custom style in your website's header and footer.",7000,102148,100,8,"2026-02-26T07:32:00.000Z","5.0",[79,80,81,82,83],"facebook-pixel","google-analytics","inject-code","inject-html","inject-javascript","https:\u002F\u002Fhtplugins.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Finsert-headers-and-footers-script.1.1.8.zip","2025-11-07 14:55:13",{"slug":88,"name":89,"version":90,"author":91,"author_profile":92,"description":93,"short_description":94,"active_installs":95,"downloaded":96,"rating":74,"num_ratings":97,"last_updated":98,"tested_up_to":99,"requires_at_least":51,"requires_php":17,"tags":100,"homepage":104,"download_link":105,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"allow-epub-and-mobi-formats-upload","Allow ePUB and MOBI formats upload","1.0","eKnizky","https:\u002F\u002Fprofiles.wordpress.org\u002Feknizky\u002F","\u003Cp>WordPress does not allow upload ePUB and MOBI formats.\u003Cbr \u002F>\nThis plugin will enable the uploading of ePUB and MOBI files.\u003C\u002Fp>\n\u003Ch4>Social Media\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002FeKnizky\u002F\" rel=\"nofollow ugc\">Like Us\u003C\u002Fa> on Facebook and \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002FeKnizky\" rel=\"nofollow ugc\">follow us\u003C\u002Fa> on Twitter.\u003C\u002Fp>\n","WordPress does not allow upload ePUB and MOBI formats.",3000,18145,5,"2017-01-17T23:30:00.000Z","4.7.32",[19,20,101,102,103],"formats","mobi","upload","https:\u002F\u002Feknizky.sk","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fallow-epub-and-mobi-formats-upload.zip",{"slug":107,"name":108,"version":109,"author":110,"author_profile":111,"description":112,"short_description":113,"active_installs":114,"downloaded":115,"rating":47,"num_ratings":116,"last_updated":117,"tested_up_to":50,"requires_at_least":77,"requires_php":118,"tags":119,"homepage":123,"download_link":124,"security_score":125,"vuln_count":13,"unpatched_count":26,"last_vuln_date":126,"fetched_at":28},"mpl-publisher","MPL-Publisher — Ebook & Audiobook Creator","2.22.0","ferranfg","https:\u002F\u002Fprofiles.wordpress.org\u002Fferranfg\u002F","\u003Cp>MPL-Publisher 📚 creates an ebook, print-ready PDF book, EPUB for KDP, Flipbook, or Audiobook MP3 converting your WordPress posts.\u003C\u002Fp>\n\u003Cp>If you are looking for a WordPress ebook generator or you are a self-publishing author ✍️, it will solve the “how to publish my digital book” problem, doing it in the simplest possible way 👌. Convert your posts to book, posts to ebook (EPUB compatible with Amazon Kindle Direct Publishing KDP), posts to PDF print-ready, posts to MS Word (Docx), posts to Flipbook, posts to Audiobook (MP3)… etc.\u003C\u002Fp>\n\u003Cp>It is free to self-publish on the most popular book and ebook platforms, like Amazon Kindle Direct Publishing (KDP), NOOK Press, or KOBO. You just need a formatted ebook file to load to the self-publishing platforms. This is your completed, edited manuscript in specific formats: .epub for Amazon Kindle Direct Publishing (KDP) and other stores, or PDF for print-ready books.\u003C\u002Fp>\n\u003Cp>With our plugin, you can create an ebook from your WordPress posts in a matter of seconds. If you already have a WordPress site, you are ready to start selling online your self-published books.\u003C\u002Fp>\n\u003Cp>The plugin is full of features (check the features section and roadmap to future releases) and open to any comments, bugs, or issues you may have. Use the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmpl-publisher\u002F\" rel=\"ugc\">MPL-Publisher Support Forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Use cases\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Lead Magnets:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Convert your WordPress content into a powerful lead magnet. Easily compile blog posts into an engaging ebook, offering it as a free download to capture valuable visitor information and grow your email list.\u003C\u002Fp>\n\u003Cp>For example: \u003Ca href=\"https:\u002F\u002Ffantasypadeltour.com\u002Fblog\u002Fmas-que-padel\" rel=\"nofollow ugc\">“Más que Padel: Domina Cómo Jugar al Padel”\u003C\u002Fa> by \u003Ca href=\"https:\u002F\u002Ffantasypadeltour.com\" rel=\"nofollow ugc\">Fantasy Padel Tour\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Self-Published Books:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Turn your WordPress site into a self-publishing platform. Effortlessly curate and format your posts into a professional ebook. Whether you’re a blogger or an author, showcase your expertise and sell or distribute your self-published book directly from your site.\u003C\u002Fp>\n\u003Cp>For example: \u003Ca href=\"https:\u002F\u002Fentrenamientociclista.pro\u002Fblog\u002Facerca-de\" rel=\"nofollow ugc\">“Ciclismo de Calculadora: 7 simples fórmulas que explican tu rendimiento ciclista”\u003C\u002Fa> by \u003Ca href=\"https:\u002F\u002Fentrenamientociclista.pro\" rel=\"nofollow ugc\">EC(PRO)⁴\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>For now, these are the current features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Convert your WordPress blog to unlimited ebooks per site with unlimited exports per ebook.\u003C\u002Fli>\n\u003Cli>Select individual chapters (posts, pages, and “secret chapters”) to include in your ebook.\u003C\u002Fli>\n\u003Cli>Set meta-information about your ebook: Title, Description, Authors, ISBN, Publisher, and Book Cover.\u003C\u002Fli>\n\u003Cli>Create your ebook as EPUB 2.0 or EPUB 3.0, Markdown, MS Word (Docx), print-ready PDF, Flipbook, and Audiobook (mp3).\u003C\u002Fli>\n\u003Cli>Add a widget to your sidebar to promote your ebook to your readers.\u003C\u002Fli>\n\u003Cli>Promote your ebook using the shortcode [mpl] and their available options.\u003C\u002Fli>\n\u003Cli>Extended filter to search and sort your chapters individually.\u003C\u002Fli>\n\u003Cli>Add additional ebook chapters and edit current content to customize your book.\u003C\u002Fli>\n\u003Cli>Include the post date and post author on every chapter (optional).\u003C\u002Fli>\n\u003Cli>Include the featured image related to every chapter (optional).\u003C\u002Fli>\n\u003Cli>Include your custom CSS styles in your ebooks or choose our designs.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Premium Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Multiple professional designs are available.\u003C\u002Fli>\n\u003Cli>Customize your audiobook voice (more than 100+ available).\u003C\u002Fli>\n\u003Cli>Export all your posts as individual PDF files.\u003C\u002Fli>\n\u003Cli>Advanced cover editor included.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Other Plugins Compatibility\u003C\u002Fh4>\n\u003Cp>We believe in WordPress as the tool for creating the web and, for this reason, MPL-Publisher is compatible with other plugin’s custom post types. This will allow you to create books, ebooks, flipbooks, and audiobooks without changing your current tools.\u003C\u002Fp>\n\u003Cp>Some of these plugins have been tested by ourselves and guarantee proper compatibility. This list includes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwedocs\u002F\" rel=\"ugc\">weDocs\u003C\u002Fa> – Create great-looking documentation for your products. Organize your product documentation on your site, beautifully!\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fecho-knowledge-base\u002F\" rel=\"ugc\">Echo Knowledge Base\u003C\u002Fa> – Instantly create an online self-service Knowledge Base for your users, customers, and employees.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Also, there is a fantastic community of plugins available if MPL-Publisher doesn’t meet your criteria:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fprint-my-blog\u002F\" rel=\"ugc\">Print My Blog\u003C\u002Fa> – Make printing your blog easy and impressive. For you & your visitors. One post or thousands.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdk-pdf\u002F\" rel=\"ugc\">DK PDF\u003C\u002Fa> – DK PDF allows site visitors to convert posts and pages to PDF using a button.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsearch\u002Fanthologize\u002F\" rel=\"ugc\">Anthologize\u003C\u002Fa> – Use the power of WordPress to transform your content into an ebook.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003Cli>WordPress 5.0 or higher\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For further information, visit the \u003Ca href=\"https:\u002F\u002Fwordpress.mpl-publisher.com\u002F\" rel=\"nofollow ugc\">MPL-Publisher plugin’s homepage\u003C\u002Fa>.\u003C\u002Fp>\n","MPL-Publisher 📚 creates an ebook, print-ready PDF book, EPUB for KDP, Flipbook, or Audiobook MP3 converting your WordPress posts.",800,46357,42,"2026-01-21T17:27:00.000Z","7.4",[120,121,19,20,122],"audiobook","docx","kindle","https:\u002F\u002Fwordpress.mpl-publisher.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmpl-publisher.2.22.0.zip",97,"2025-04-22 00:00:00",{"slug":128,"name":129,"version":130,"author":131,"author_profile":132,"description":133,"short_description":134,"active_installs":135,"downloaded":136,"rating":74,"num_ratings":13,"last_updated":137,"tested_up_to":50,"requires_at_least":138,"requires_php":118,"tags":139,"homepage":17,"download_link":143,"security_score":74,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"simple-ebook-viewer","Simple Ebook Viewer","1.0.0","Francesco Martini","https:\u002F\u002Fprofiles.wordpress.org\u002Fwrcisco\u002F","\u003Cp>After installing this plugin, you will be able to upload various ebook formats as normal media files and to display them in your site using a shortcode.\u003C\u002Fp>\n\u003Cp>Every ebook uploaded in your site will have an “ebook slug” (by default it will be the ebook name) that you can view and edit in the Edit Media page of the Admin Panel.\u003C\u002Fp>\n\u003Cp>The full source code of the plugin is hosted on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FwrCisco\u002Fsimple-ebook-viewer-for-wp\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Supported formats\u003C\u002Fstrong>\u003Cbr \u002F>\nAt the moment, the plugin will let you upload and display the following file types, provided that they are DRM-free:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>epub\u003C\u002Fli>\n\u003Cli>mobi\u003C\u002Fli>\n\u003Cli>azw\u003C\u002Fli>\n\u003Cli>azw3\u003C\u002Fli>\n\u003Cli>fb2\u003C\u002Fli>\n\u003Cli>fbz\u003C\u002Fli>\n\u003Cli>cbz\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Usage\u003C\u002Fstrong>\u003Cbr \u002F>\nInsert the shortcode \u003Ccode>[simebv_viewer book=\"MY_EBOOK_SLUG_HERE\"]\u003C\u002Fcode> in any one of your posts.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Styling\u003C\u002Fstrong>\u003Cbr \u002F>\nYou can add css styles and classes for the viewer container by adding these attributes to the shortcode:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>height\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>width\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>max-height\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>max-width\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>border\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>style\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>class\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Height, width, max-height, max-width and border accept any valid CSS value for those property. \u003Cbr \u002F>\nStyle and class accept any valid value for the respective HTML attributes.\u003C\u002Fp>\n\u003Cp>Some examples:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[simebv_viewer book=\"MY_EBOOK_SLUG_HERE\" style=\"height:30em;border:2px inset black\"]\n\n[simebv_viewer book=\"MY_EBOOK_SLUG_HERE\" max-height=\"100vh\" height=\"40em\"]\n\n[simebv_viewer book=\"MY_EBOOK_SLUG_HERE\" class=\"my-container-class my-container-second-class\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Settings\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The users of your site will be able to set their preferences about the appearance of the ebook in the Viewer by opening the Viewer menu (the cog icon on the top right) and by selecting the appropriate entries.\u003C\u002Fp>\n\u003Cp>The plugin sets some reasonable defaults for these preferences, but if you’re not happy with those defaults, you can change them by adding one or more of the following attributes to the shortcode, with the appropriate values:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>layout\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>paginated\u003C\u002Fstrong>” or “\u003Cstrong>scrolled\u003C\u002Fstrong>” (default: \u003Cstrong>paginated\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>max-pages\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: \u003Cstrong>1\u003C\u002Fstrong>, \u003Cstrong>2\u003C\u002Fstrong>, \u003Cstrong>3\u003C\u002Fstrong> or \u003Cstrong>4\u003C\u002Fstrong> (default: \u003Cstrong>2\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>default-font-size\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>small\u003C\u002Fstrong>“, “\u003Cstrong>medium\u003C\u002Fstrong>“, “\u003Cstrong>large\u003C\u002Fstrong>“, “\u003Cstrong>x-large\u003C\u002Fstrong>” (default: \u003Cstrong>medium\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>font-family\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted_values: “\u003Cstrong>auto\u003C\u002Fstrong>“, “\u003Cstrong>serif\u003C\u002Fstrong>“, “\u003Cstrong>sans-serif\u003C\u002Fstrong>“, “\u003Cstrong>monospace\u003C\u002Fstrong>“, “\u003Cstrong>opendyslexic\u003C\u002Fstrong>” (default: \u003Cstrong>auto\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>page-margins\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>small\u003C\u002Fstrong>“, “\u003Cstrong>medium\u003C\u002Fstrong>“, “\u003Cstrong>large\u003C\u002Fstrong>” (default: \u003Cstrong>medium\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>show-annotations\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>true\u003C\u002Fstrong>“, “\u003Cstrong>false\u003C\u002Fstrong>” (default: \u003Cstrong>false\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>show-page-delimiters\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>true\u003C\u002Fstrong>“, “\u003Cstrong>false\u003C\u002Fstrong>” (default: \u003Cstrong>false\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>zoom\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>fit-page\u003C\u002Fstrong>“, “\u003Cstrong>fit-width\u003C\u002Fstrong>” or a number in the range \u003Cstrong>10 – 400\u003C\u002Fstrong> (default: \u003Cstrong>fit-page\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>color-scheme\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>auto\u003C\u002Fstrong>“, “\u003Cstrong>sepia\u003C\u002Fstrong>“, “\u003Cstrong>light\u003C\u002Fstrong>“, “\u003Cstrong>dark\u003C\u002Fstrong>” (default: \u003Cstrong>auto\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Layout\u003C\u002Fstrong>, \u003Cstrong>max-pages\u003C\u002Fstrong>, \u003Cstrong>default-font-size\u003C\u002Fstrong> and \u003Cstrong>page-margins\u003C\u002Fstrong> are only available for reflowable ebooks, while \u003Cstrong>zoom\u003C\u002Fstrong> is only available for fixed layout ones.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Max-pages\u003C\u002Fstrong> is the maximum number of pages (in the “paginated” layout) that the user will be able to see in a single view (if there is enough screen space).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Show-annotations\u003C\u002Fstrong> and \u003Cstrong>show-page-delimiters\u003C\u002Fstrong> let the user see on the pages the Calibre annotations (as highlighted text, if there are Calibre annotations in the ebook) and the page delimiters (as short vertical bars, if the ebook contains a page list).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Color-scheme\u003C\u002Fstrong>: “auto” means that the Viewer will adapt to the preferred color-scheme set by the user in their device or browser (light or dark).\u003C\u002Fp>\n\u003Cp>For most ebooks these preferences should be enough, but sometimes there are ebooks with style rules that don’t play well with the styles set by the Viewer, so the users have also the option to apply some filters to the Viewer’s colors (with the menu entry “Color filter…”).\u003C\u002Fp>\n\u003Cp>You can set the default values for these filters with the following shortcode’s attributes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>activate-color-filter\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>true\u003C\u002Fstrong>“, “\u003Cstrong>false\u003C\u002Fstrong>” (default: \u003Cstrong>false\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>invert-color-filter\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: a number in the range \u003Cstrong>0 – 1\u003C\u002Fstrong> (default: \u003Cstrong>0\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>rotate-color-filter\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: a number in the range \u003Cstrong>0 – 360\u003C\u002Fstrong> (default: \u003Cstrong>0\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>bg-transparent-filter\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>true\u003C\u002Fstrong>“, “\u003Cstrong>false\u003C\u002Fstrong>” (default: \u003Cstrong>true\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>bg-color-filter\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: a valid CSS hex color code (default: \u003Cstrong>#FFFFFF\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Set \u003Cstrong>activate-color-filter\u003C\u002Fstrong> to “true” is necessary to enable all the other filters, and set \u003Cstrong>bg-transparent-filter\u003C\u002Fstrong> to false is necessary to enable \u003Cstrong>bg-color-filter\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Bg-transparent-filter\u003C\u002Fstrong> and \u003Cstrong>bg-color-filter\u003C\u002Fstrong> are available for reflowable ebooks only.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Invert-color-filter\u003C\u002Fstrong> inverts the lightness of the colors. With a value of 0 it has no effect, with a value of 1, the white will become black and the black will become white.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Rotate-color-filter\u003C\u002Fstrong> rotates the hues of all the colors in the ebook, like in a \u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FGlossary\u002FColor_wheel\" rel=\"nofollow ugc\">Color Wheel\u003C\u002Fa> (so, no effect on black and white).\u003C\u002Fp>\n\u003Cp>There are some other settings that the users won’t be able to change by themselves. These are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>always-full-viewport\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>true\u003C\u002Fstrong>“, “\u003Cstrong>false\u003C\u002Fstrong>” (default: \u003Cstrong>false\u003C\u002Fstrong>. If \u003Cstrong>true\u003C\u002Fstrong>, \u003Cstrong>return-to-url\u003C\u002Fstrong> is also required)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>return-to-url\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: a URL with the same hostname than the page that contains the ebook viewer (default: ”)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>real-fullscreen\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>true\u003C\u002Fstrong>“, “\u003Cstrong>false\u003C\u002Fstrong>” (default: \u003Cstrong>false\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>allow-js\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>true\u003C\u002Fstrong>“, “\u003Cstrong>false\u003C\u002Fstrong>” (default: \u003Cstrong>false\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>math-styles\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>fonts\u003C\u002Fstrong>“, “\u003Cstrong>styles\u003C\u002Fstrong>“, “\u003Cstrong>all\u003C\u002Fstrong>” (default: ”)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>ebook-author\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: any string, max 260 characters (default: ”)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>ebook-title\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: any string, max 260 characters (default: ”)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>popup-notes\u003C\u002Fcode>\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>accepted values: “\u003Cstrong>true\u003C\u002Fstrong>“, “\u003Cstrong>false\u003C\u002Fstrong>” (default: \u003Cstrong>true\u003C\u002Fstrong>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>With \u003Cstrong>always-full-viewport\u003C\u002Fstrong> set to “true”, the ebook viewer will automatically cover the entire webpage when it is opened, and the “full screen” icon will be replaced by a “close viewer” icon. \u003Cstrong>always-full-viewport=”true”\u003C\u002Fstrong> requires that also \u003Cstrong>return-to-url\u003C\u002Fstrong> is present, with a valid URL that indicates the destination of the user when they choose to close the viewer. The URL can be relative, like “\u002F” or “\u002Fbooks-gallery”, or it can be absolute, but it needs to have the same hostname of the webpage that contains the ebook viewer (e.g. if the ebook viewer is opened in https:\u002F\u002Fwww.example.com\u002Febook-viewer, the URL in \u003Cstrong>return-to-url\u003C\u002Fstrong> needs to start with https:\u002F\u002Fwww.example.com).\u003C\u002Fp>\n\u003Cp>If \u003Cstrong>real-fullscreen\u003C\u002Fstrong> is set to “true”, the ebook viewer will cover the entire screen instead of only the viewport of the webpage when the user clicks on the “full screen” icon. With \u003Cstrong>real-fullscreen\u003C\u002Fstrong> set to true, \u003Cstrong>always-full-viewport\u003C\u002Fstrong> is ignored, since the full screen requires an explicit action by the user.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Allow-js\u003C\u002Fstrong>: normally, the plugin forbids, as far as possible, script execution from inside the ebooks. If you set \u003Cstrong>allow-js\u003C\u002Fstrong> to true, this restriction is relaxed, and scripts within the ebook can be executed.\u003Cbr \u002F>\n\u003Cstrong>Caveat 1\u003C\u002Fstrong>: you need to be absolutely certain that the code inside the ebook is not malicious, since it can harm your entire webpage.\u003Cbr \u002F>\n\u003Cstrong>Caveat 2\u003C\u002Fstrong>: the ebook viewer is not strongly equipped to deal with dynamic content created or removed after the ebook opening, so you might encounter errors or inaccuracies when jumping from one ebook location to another in such a circumstance.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Math-styles\u003C\u002Fstrong>: in recent years all the major browser have implemented a good deal of the MathML Core specification, so it is now possible to represent natively many mathematical expression without the use of third party libraries. However, not all browsers and systems load automatically appropriate fonts. With math-styles set to “fonts” or “all”, all the contents of MathML expression will use the Latin Modern font.\u003Cbr \u002F>\nAnother shortcoming in the current support of MathML, is that only Gecko based browsers (i.e. Firefox) implement a breaking lines algorithm, so long math expressions within small screens usually don’t fit entirely. With math-styles set to “styles” or “all”, the plugin will use some html+css tricks to try to allow either line breaks or horizontal scrolling.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Ebook-author\u003C\u002Fstrong> and \u003Cstrong>ebook-title\u003C\u002Fstrong>: you can use these optional values to override the ones that the ebook viewer retrieves from the ebook metadata in order to display them to the users.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Popup-notes\u003C\u002Fstrong>: show footnotes and endnotes as popup instead of just links. The notes (and their references) need to be marked with the appropriate epub:type attributes to ensure that they are displayed as popups (the ebook viewer will try to recognize them anyway, but without guarantees).\u003C\u002Fp>\n\u003Ch3>Warning\u003C\u002Fh3>\n\u003Cp>Ebooks can contain scripted content that might be executed on your webpage. The plugin does its best to forbid script execution from inside the loaded content, but it can’t guarantee 100% safety. Don’t display ebooks from untrusted sources and\u002For check your ebooks before uploading and displaying them. If you can, provide a strict Content Security Policy for your site.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>This plugin embeds a slightly modified version of the foliate-js library\u003Cbr \u002F>\nby John Factotum (https:\u002F\u002Fgithub.com\u002Fjohnfactotum\u002Ffoliate-js),\u003Cbr \u002F>\nwhich is distributed under the MIT license.\u003C\u002Fp>\n\u003Cp>As secondary dependencies of the foliate-js library, the plugin embeds other three libraries:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>zip.js (https:\u002F\u002Fgithub.com\u002Fgildas-lormeau\u002Fzip.js), licensed under the BSD-3-Clause;\u003C\u002Fli>\n\u003Cli>fflate (https:\u002F\u002Fgithub.com\u002F101arrowz\u002Ffflate), MIT licensed.\u003C\u002Fli>\n\u003Cli>PDF.js (https:\u002F\u002Fgithub.com\u002Fmozilla\u002Fpdf.js), licensed under the Apache v2.0 license.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>PDF.js is present in the repository’s source code, but is not included in the distribution of the current version of the plugin.\u003C\u002Fp>\n\u003Cp>Other libraries embedded by the plugin are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>vite-for-wp by Dzikri Aziz (https:\u002F\u002Fgithub.com\u002Fkucrut\u002Fvite-for-wp),\u003Cbr \u002F>\nlicensed under the GPL v2.0 license\u003C\u002Fli>\n\u003Cli>Speech Rule Engine (https:\u002F\u002Fgithub.com\u002FSpeech-Rule-Engine\u002Fspeech-rule-engine),\u003Cbr \u002F>\nlicensed under the Apache v2.0 license\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Embedded fonts:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>OpenDyslexic (https:\u002F\u002Fopendyslexic.org\u002F) by Abbie Gonzales, licensed under the SIL Open Font License v1.1;\u003C\u002Fli>\n\u003Cli>Manrope (https:\u002F\u002Fgithub.com\u002Fsharanda\u002Fmanrope) by The Manrope Project Authors, licensed under the SIL Open Font License v1.1;\u003C\u002Fli>\n\u003Cli>Latin Modern (https:\u002F\u002Fwww.gust.org.pl\u002Fprojects\u002Fe-foundry) by the Polish TeX Users Group, licensed under the GUST Font License.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>OpenDyslexic and Latin Modern fonts have been converted from their original OpenType format to the woff2 format for use on the web, without, at the best of my knowledge, modifying their internal parameters and metadata.\u003C\u002Fp>\n","Embed and display Ebooks in your website.",300,1521,"2026-03-12T01:28:00.000Z","6.0",[140,19,20,141,142],"azw3","reader","viewer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-ebook-viewer.1.0.0.zip",{"attackSurface":145,"codeSignals":165,"taintFlows":300,"riskAssessment":615,"analyzedAt":631},{"hooks":146,"ajaxHandlers":157,"restRoutes":158,"shortcodes":159,"cronEvents":163,"entryPointCount":164,"unprotectedCount":26},[147,153],{"type":148,"name":149,"callback":150,"file":151,"line":152},"action","admin_menu","wp2epub_admin_menu","wp2epub.php",21,{"type":148,"name":154,"callback":155,"file":151,"line":156},"save_post","wp2epub_cleancache",40,[],[],[160],{"tag":4,"callback":161,"file":151,"line":162},"wp2epub_button",53,[],1,{"dangerousFunctions":166,"sqlUsage":183,"outputEscaping":185,"fileOperations":298,"externalRequests":26,"nonceChecks":26,"capabilityChecks":26,"bundledLibraries":299},[167,172,175,178,181],{"fn":168,"file":169,"line":170,"context":171},"unserialize","wp2epub.class.php",440,"$imgcover=unserialize($e->epub_cover);",{"fn":168,"file":169,"line":173,"context":174},633,"$efile=unserialize($e);",{"fn":168,"file":169,"line":176,"context":177},733,"$imgcover=unserialize($efile->epub_cover);",{"fn":168,"file":169,"line":179,"context":180},969,"$imgcover=unserialize($efile->epub_postcover);",{"fn":168,"file":169,"line":182,"context":177},972,{"prepared":152,"raw":26,"locations":184},[],{"escaped":186,"rawEcho":162,"locations":187},4,[188,192,195,197,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296],{"file":189,"line":190,"context":191},"myphp\\list.php",193,"raw output",{"file":193,"line":194,"context":191},"pclzip-2-8-2\\pclzip.lib.php",4101,{"file":193,"line":196,"context":191},4114,{"file":198,"line":199,"context":191},"simplehtmldom\\simple_html_dom.php",157,{"file":198,"line":201,"context":191},162,{"file":198,"line":203,"context":191},233,{"file":169,"line":205,"context":191},139,{"file":169,"line":207,"context":191},141,{"file":169,"line":209,"context":191},281,{"file":169,"line":211,"context":191},307,{"file":169,"line":213,"context":191},311,{"file":169,"line":215,"context":191},326,{"file":169,"line":217,"context":191},327,{"file":169,"line":219,"context":191},331,{"file":169,"line":221,"context":191},348,{"file":169,"line":223,"context":191},349,{"file":169,"line":225,"context":191},352,{"file":169,"line":227,"context":191},378,{"file":169,"line":229,"context":191},379,{"file":169,"line":231,"context":191},382,{"file":169,"line":233,"context":191},388,{"file":169,"line":235,"context":191},389,{"file":169,"line":237,"context":191},413,{"file":169,"line":239,"context":191},428,{"file":169,"line":241,"context":191},469,{"file":169,"line":243,"context":191},471,{"file":169,"line":245,"context":191},473,{"file":169,"line":247,"context":191},475,{"file":169,"line":249,"context":191},476,{"file":169,"line":251,"context":191},477,{"file":169,"line":253,"context":191},478,{"file":169,"line":255,"context":191},479,{"file":169,"line":257,"context":191},480,{"file":169,"line":259,"context":191},481,{"file":169,"line":261,"context":191},482,{"file":169,"line":263,"context":191},499,{"file":169,"line":265,"context":191},500,{"file":169,"line":267,"context":191},502,{"file":169,"line":269,"context":191},503,{"file":169,"line":271,"context":191},504,{"file":169,"line":273,"context":191},508,{"file":169,"line":275,"context":191},509,{"file":169,"line":277,"context":191},511,{"file":169,"line":279,"context":191},517,{"file":169,"line":281,"context":191},519,{"file":169,"line":283,"context":191},540,{"file":169,"line":285,"context":191},544,{"file":169,"line":287,"context":191},545,{"file":169,"line":289,"context":191},1025,{"file":169,"line":291,"context":191},1400,{"file":169,"line":293,"context":191},1468,{"file":151,"line":295,"context":191},59,{"file":151,"line":297,"context":191},61,127,[],[301,320,341,434],{"entryPoint":302,"graph":303,"unsanitizedCount":164,"severity":319},"parse (myphp\\list.php:64)",{"nodes":304,"edges":316},[305,310],{"id":306,"type":307,"label":308,"file":189,"line":309},"n0","source","$_REQUEST",92,{"id":311,"type":312,"label":313,"file":189,"line":314,"wp_function":315},"n1","sink","get_row() [SQLi]",93,"get_row",[317],{"from":306,"to":311,"sanitized":318},false,"high",{"entryPoint":321,"graph":322,"unsanitizedCount":62,"severity":319},"\u003Clist> (myphp\\list.php:0)",{"nodes":323,"edges":337},[324,325,326,329,333],{"id":306,"type":307,"label":308,"file":189,"line":309},{"id":311,"type":312,"label":313,"file":189,"line":314,"wp_function":315},{"id":327,"type":307,"label":308,"file":189,"line":328},"n2",150,{"id":330,"type":331,"label":332,"file":189,"line":328},"n3","transform","→ smartReadFile()",{"id":334,"type":312,"label":335,"file":189,"line":190,"wp_function":336},"n4","echo() [XSS]","echo",[338,339,340],{"from":306,"to":311,"sanitized":318},{"from":327,"to":330,"sanitized":318},{"from":330,"to":334,"sanitized":318},{"entryPoint":342,"graph":343,"unsanitizedCount":433,"severity":319},"maker (wp2epub.class.php:22)",{"nodes":344,"edges":415},[345,347,351,354,356,359,363,365,367,370,372,374,378,380,382,386,388,390,394,397,399,403,405,407,411,413],{"id":306,"type":307,"label":346,"file":169,"line":162},"$_POST (x3)",{"id":311,"type":312,"label":348,"file":169,"line":349,"wp_function":350},"query() [SQLi]",54,"query",{"id":327,"type":307,"label":352,"file":169,"line":353},"$_POST['do_proxypsw']",28,{"id":330,"type":331,"label":355,"file":169,"line":353},"→ mem_option()",{"id":334,"type":312,"label":357,"file":169,"line":298,"wp_function":358},"update_option() [Settings Manipulation]","update_option",{"id":360,"type":307,"label":361,"file":169,"line":362},"n5","$_POST['do_proxyurl']",29,{"id":364,"type":331,"label":355,"file":169,"line":362},"n6",{"id":366,"type":312,"label":357,"file":169,"line":298,"wp_function":358},"n7",{"id":368,"type":307,"label":369,"file":169,"line":33},"n8","$_POST['do_maxtime']",{"id":371,"type":331,"label":355,"file":169,"line":33},"n9",{"id":373,"type":312,"label":357,"file":169,"line":298,"wp_function":358},"n10",{"id":375,"type":307,"label":376,"file":169,"line":377},"n11","$_POST['do_integration']",31,{"id":379,"type":331,"label":355,"file":169,"line":377},"n12",{"id":381,"type":312,"label":357,"file":169,"line":298,"wp_function":358},"n13",{"id":383,"type":307,"label":384,"file":169,"line":385},"n14","$_POST['do_style']",32,{"id":387,"type":331,"label":355,"file":169,"line":385},"n15",{"id":389,"type":312,"label":357,"file":169,"line":298,"wp_function":358},"n16",{"id":391,"type":307,"label":392,"file":169,"line":393},"n17","$_GET['do_book']",39,{"id":395,"type":331,"label":396,"file":169,"line":393},"n18","→ menu_book()",{"id":398,"type":312,"label":335,"file":169,"line":235,"wp_function":336},"n19",{"id":400,"type":307,"label":401,"file":169,"line":402},"n20","$_POST['do_book']",49,{"id":404,"type":331,"label":396,"file":169,"line":402},"n21",{"id":406,"type":312,"label":335,"file":169,"line":235,"wp_function":336},"n22",{"id":408,"type":307,"label":409,"file":169,"line":410},"n23","$_POST['do_bookid']",99,{"id":412,"type":331,"label":396,"file":169,"line":410},"n24",{"id":414,"type":312,"label":335,"file":169,"line":235,"wp_function":336},"n25",[416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432],{"from":306,"to":311,"sanitized":318},{"from":327,"to":330,"sanitized":318},{"from":330,"to":334,"sanitized":318},{"from":360,"to":364,"sanitized":318},{"from":364,"to":366,"sanitized":318},{"from":368,"to":371,"sanitized":318},{"from":371,"to":373,"sanitized":318},{"from":375,"to":379,"sanitized":318},{"from":379,"to":381,"sanitized":318},{"from":383,"to":387,"sanitized":318},{"from":387,"to":389,"sanitized":318},{"from":391,"to":395,"sanitized":318},{"from":395,"to":398,"sanitized":318},{"from":400,"to":404,"sanitized":318},{"from":404,"to":406,"sanitized":318},{"from":408,"to":412,"sanitized":318},{"from":412,"to":414,"sanitized":318},11,{"entryPoint":435,"graph":436,"unsanitizedCount":614,"severity":319},"\u003Cwp2epub.class> (wp2epub.class.php:0)",{"nodes":437,"edges":574},[438,440,441,444,445,446,450,452,453,455,457,458,460,461,465,466,470,471,475,476,477,478,479,480,481,482,483,485,487,489,491,493,495,497,499,501,503,505,507,509,511,513,515,518,521,523,527,530,532,535,538,541,544,547,549,552,555,558,561,564,566,569,572],{"id":306,"type":307,"label":439,"file":169,"line":162},"$_POST (x6)",{"id":311,"type":312,"label":348,"file":169,"line":349,"wp_function":350},{"id":327,"type":307,"label":442,"file":169,"line":443},"$_POST",94,{"id":330,"type":312,"label":357,"file":169,"line":298,"wp_function":358},{"id":334,"type":307,"label":346,"file":169,"line":443},{"id":360,"type":312,"label":447,"file":169,"line":448,"wp_function":449},"get_results() [SQLi]",303,"get_results",{"id":364,"type":307,"label":451,"file":169,"line":443},"$_POST (x18)",{"id":366,"type":312,"label":335,"file":169,"line":211,"wp_function":336},{"id":368,"type":307,"label":454,"file":169,"line":443},"$_POST (x5)",{"id":371,"type":312,"label":313,"file":169,"line":456,"wp_function":315},367,{"id":373,"type":307,"label":454,"file":169,"line":443},{"id":375,"type":312,"label":459,"file":169,"line":170,"wp_function":168},"unserialize() [Object Injection]",{"id":379,"type":307,"label":346,"file":169,"line":443},{"id":381,"type":312,"label":462,"file":169,"line":463,"wp_function":464},"file_get_contents() [SSRF\u002FLFI]",946,"file_get_contents",{"id":383,"type":307,"label":442,"file":169,"line":443},{"id":387,"type":312,"label":467,"file":169,"line":468,"wp_function":469},"header() [Header Injection]",1023,"header",{"id":389,"type":307,"label":442,"file":169,"line":443},{"id":391,"type":312,"label":472,"file":169,"line":473,"wp_function":474},"fopen() [File Access]",1972,"fopen",{"id":395,"type":307,"label":352,"file":169,"line":353},{"id":398,"type":331,"label":355,"file":169,"line":353},{"id":400,"type":312,"label":357,"file":169,"line":298,"wp_function":358},{"id":404,"type":307,"label":361,"file":169,"line":362},{"id":406,"type":331,"label":355,"file":169,"line":362},{"id":408,"type":312,"label":357,"file":169,"line":298,"wp_function":358},{"id":412,"type":307,"label":369,"file":169,"line":33},{"id":414,"type":331,"label":355,"file":169,"line":33},{"id":484,"type":312,"label":357,"file":169,"line":298,"wp_function":358},"n26",{"id":486,"type":307,"label":376,"file":169,"line":377},"n27",{"id":488,"type":331,"label":355,"file":169,"line":377},"n28",{"id":490,"type":312,"label":357,"file":169,"line":298,"wp_function":358},"n29",{"id":492,"type":307,"label":384,"file":169,"line":385},"n30",{"id":494,"type":331,"label":355,"file":169,"line":385},"n31",{"id":496,"type":312,"label":357,"file":169,"line":298,"wp_function":358},"n32",{"id":498,"type":307,"label":392,"file":169,"line":393},"n33",{"id":500,"type":331,"label":396,"file":169,"line":393},"n34",{"id":502,"type":312,"label":335,"file":169,"line":235,"wp_function":336},"n35",{"id":504,"type":307,"label":401,"file":169,"line":402},"n36",{"id":506,"type":331,"label":396,"file":169,"line":402},"n37",{"id":508,"type":312,"label":335,"file":169,"line":235,"wp_function":336},"n38",{"id":510,"type":307,"label":409,"file":169,"line":410},"n39",{"id":512,"type":331,"label":396,"file":169,"line":410},"n40",{"id":514,"type":312,"label":335,"file":169,"line":235,"wp_function":336},"n41",{"id":516,"type":307,"label":442,"file":169,"line":517},"n42",391,{"id":519,"type":331,"label":520,"file":169,"line":517},"n43","→ form_line()",{"id":522,"type":312,"label":335,"file":169,"line":283,"wp_function":336},"n44",{"id":524,"type":307,"label":525,"file":169,"line":526},"n45","$_POST (x2)",435,{"id":528,"type":331,"label":529,"file":169,"line":526},"n46","→ formatdatas()",{"id":531,"type":312,"label":459,"file":169,"line":173,"wp_function":168},"n47",{"id":533,"type":307,"label":525,"file":169,"line":534},"n48",616,{"id":536,"type":331,"label":537,"file":169,"line":534},"n49","→ make_file()",{"id":539,"type":312,"label":313,"file":169,"line":540,"wp_function":315},"n50",778,{"id":542,"type":307,"label":442,"file":169,"line":543},"n51",703,{"id":545,"type":331,"label":546,"file":169,"line":543},"n52","→ format_text()",{"id":548,"type":312,"label":335,"file":169,"line":291,"wp_function":336},"n53",{"id":550,"type":307,"label":346,"file":169,"line":551},"n54",712,{"id":553,"type":331,"label":554,"file":169,"line":551},"n55","→ add()",{"id":556,"type":312,"label":348,"file":169,"line":557,"wp_function":350},"n56",1813,{"id":559,"type":307,"label":442,"file":169,"line":560},"n57",798,{"id":562,"type":331,"label":563,"file":169,"line":560},"n58","→ make_epub()",{"id":565,"type":312,"label":467,"file":169,"line":468,"wp_function":469},"n59",{"id":567,"type":307,"label":525,"file":169,"line":568},"n60",1012,{"id":570,"type":331,"label":571,"file":169,"line":568},"n61","→ make_style()",{"id":573,"type":312,"label":462,"file":169,"line":463,"wp_function":464},"n62",[575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613],{"from":306,"to":311,"sanitized":318},{"from":327,"to":330,"sanitized":318},{"from":334,"to":360,"sanitized":318},{"from":364,"to":366,"sanitized":318},{"from":368,"to":371,"sanitized":318},{"from":373,"to":375,"sanitized":318},{"from":379,"to":381,"sanitized":318},{"from":383,"to":387,"sanitized":318},{"from":389,"to":391,"sanitized":318},{"from":395,"to":398,"sanitized":318},{"from":398,"to":400,"sanitized":318},{"from":404,"to":406,"sanitized":318},{"from":406,"to":408,"sanitized":318},{"from":412,"to":414,"sanitized":318},{"from":414,"to":484,"sanitized":318},{"from":486,"to":488,"sanitized":318},{"from":488,"to":490,"sanitized":318},{"from":492,"to":494,"sanitized":318},{"from":494,"to":496,"sanitized":318},{"from":498,"to":500,"sanitized":318},{"from":500,"to":502,"sanitized":318},{"from":504,"to":506,"sanitized":318},{"from":506,"to":508,"sanitized":318},{"from":510,"to":512,"sanitized":318},{"from":512,"to":514,"sanitized":318},{"from":516,"to":519,"sanitized":318},{"from":519,"to":522,"sanitized":318},{"from":524,"to":528,"sanitized":318},{"from":528,"to":531,"sanitized":318},{"from":533,"to":536,"sanitized":318},{"from":536,"to":539,"sanitized":318},{"from":542,"to":545,"sanitized":318},{"from":545,"to":548,"sanitized":318},{"from":550,"to":553,"sanitized":318},{"from":553,"to":556,"sanitized":318},{"from":559,"to":562,"sanitized":318},{"from":562,"to":565,"sanitized":318},{"from":567,"to":570,"sanitized":318},{"from":570,"to":573,"sanitized":318},63,{"summary":616,"deductions":617},"The wp2epub plugin exhibits a mixed security posture.  On the positive side, it has a small attack surface with no AJAX handlers or REST API routes, and all its SQL queries utilize prepared statements.  Furthermore, there is no recorded vulnerability history, suggesting a potentially well-maintained codebase or a lack of prior scrutiny.  However, significant concerns arise from the static analysis. The presence of 'unserialize' as a dangerous function, coupled with 4 high-severity taint flows involving unsanitized paths, points to a critical risk of remote code execution or data manipulation if these paths are exploitable.  The extremely low percentage of properly escaped output (7%) indicates a high likelihood of cross-site scripting (XSS) vulnerabilities, allowing attackers to inject malicious scripts into user browsers. The complete absence of nonce checks and capability checks further amplifies these risks, as it means that many actions may not be properly authorized or protected against replay attacks.  While the lack of historical CVEs is reassuring, the identified code signals and taint analysis present immediate and severe potential threats that need to be addressed.",[618,621,624,627,629],{"reason":619,"points":620},"Dangerous function unserialize used",15,{"reason":622,"points":623},"High severity taint flows (unsanitized paths)",12,{"reason":625,"points":626},"Low proper output escaping (potential XSS)",10,{"reason":628,"points":75},"Missing nonce checks",{"reason":630,"points":75},"Missing capability checks","2026-03-16T21:40:47.843Z",{"wat":633,"direct":639},{"assetPaths":634,"generatorPatterns":636,"scriptPaths":637,"versionParams":638},[635],"\u002Fwp-content\u002Fplugins\u002Fwp2epub\u002Fimages\u002F",[],[],[],{"cssClasses":640,"htmlComments":642,"htmlAttributes":643,"restEndpoints":645,"jsGlobals":646,"shortcodeOutput":647},[641],"w2epub",[],[644],"data-epub",[],[],[648,649,650],"\u003Ca href=\"\u002Fwp-content\u002Fepub\u002F?epub=","\u003C\u002Fa>","\u003Cimg src=\"\u002Fwp-content\u002Fplugins\u002Fwp2epub\u002Fimages\u002Fepub1.png\" style=\"width:44px;height:20px;margin-bottom:0\" title=\"Download epub\"\u002F>"]