{"id":313459,"date":"2026-05-29T15:14:47","date_gmt":"2026-05-29T15:14:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pdf-gift-card\/"},"modified":"2026-08-08T20:29:10","modified_gmt":"2026-08-08T20:29:10","slug":"kafestudio-pdf-gift-cards","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/kafestudio-pdf-gift-cards\/","author":23500248,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.3","stable_tag":"1.1.3","tested":"7.0.3","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"PDF Gift Cards for WooCommerce","header_author":"KafeStudio","header_description":"Automatically generate personalized PDF gift cards for WooCommerce orders with a Drag & Drop template editor.","assets_banners_color":"b8a3e3","last_updated":"2026-08-08 20:29:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/kafestudio.fr","rating":5,"author_block_rating":0,"active_installs":0,"downloads":299,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"fabiendst","date":"2026-06-03 16:55:51"},"1.1.0":{"tag":"1.1.0","author":"fabiendst","date":"2026-06-03 17:00:48"},"1.1.1":{"tag":"1.1.1","author":"fabiendst","date":"2026-06-04 19:43:18"},"1.1.3":{"tag":"1.1.3","author":"fabiendst","date":"2026-08-08 20:29:10"}},"upgrade_notice":{"1.1.1":"<p>Important bugfix release. Prevents accidental data loss on update\/uninstall. Recommended for all users.<\/p>","1.1.0":"<p>Security and compatibility update. Recommended for all users.<\/p>","1.0.0":"<p>Initial release. Install and start creating your first gift card template!<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3554643,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3554643,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3639188,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3639188,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1","1.1.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Template list \u2014 overview of your gift card templates","2":"Drag &amp; Drop editor \u2014 place fields anywhere on your PDF","3":"Field properties panel \u2014 font, size, color, alignment","4":"Product associations \u2014 link templates to WooCommerce products","5":"PDF preview \u2014 test with real product data before going live","6":"Customer-facing gift card \u2014 what your buyer receives"}},"plugin_section":[],"plugin_tags":[15861,165782,1764,35576,286],"plugin_category":[45,50],"plugin_contributors":[264968],"plugin_business_model":[],"class_list":["post-313459","plugin","type-plugin","status-publish","hentry","plugin_tags-gift-card","plugin_tags-gift-voucher","plugin_tags-pdf","plugin_tags-voucher","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_contributors-fabiendst","plugin_committers-fabiendst"],"banners":{"banner":"https:\/\/ps.w.org\/kafestudio-pdf-gift-cards\/assets\/banner-772x250.png?rev=3639188","banner_2x":"https:\/\/ps.w.org\/kafestudio-pdf-gift-cards\/assets\/banner-1544x500.png?rev=3639188","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kafestudio-pdf-gift-cards\/assets\/icon-128x128.png?rev=3554643","icon_2x":"https:\/\/ps.w.org\/kafestudio-pdf-gift-cards\/assets\/icon-256x256.png?rev=3554643","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>PDF Gift Card<\/strong> lets you create beautiful, fully personalized PDF gift cards for your WooCommerce store.<\/p>\n\n<p>It lets store owners upload their own PDF design and dynamically populate it with real order data \u2014 no coding required.<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li><strong>Upload<\/strong> your PDF design (created in Canva, Illustrator, Affinity Designer, etc.)<\/li>\n<li><strong>Drag &amp; drop<\/strong> dynamic fields onto your template<\/li>\n<li><strong>Associate<\/strong> the template with any WooCommerce product<\/li>\n<li>When an order is placed, the <strong>PDF is automatically generated<\/strong> and attached to the confirmation email<\/li>\n<\/ol>\n\n<h4>Available dynamic fields<\/h4>\n\n<ul>\n<li>Product name<\/li>\n<li>Customer name<\/li>\n<li>Recipient name<\/li>\n<li>Personalized message<\/li>\n<li>Purchase date<\/li>\n<li>Expiry date<\/li>\n<li>Order number<\/li>\n<li>Unique voucher code<\/li>\n<li>Price<\/li>\n<li>Product image <em>(Pro)<\/em><\/li>\n<li>Site logo <em>(Pro)<\/em><\/li>\n<li>QR Code <em>(Pro)<\/em><\/li>\n<\/ul>\n\n<h4>What's included in the Free plan<\/h4>\n\n<ul>\n<li>1 template<\/li>\n<li>All text fields<\/li>\n<li>PDF preview with real product data<\/li>\n<li>Product associations<\/li>\n<li>Multilingual admin: English, French, German, Spanish, Dutch<\/li>\n<\/ul>\n\n<h4>Upgrade to Pro<\/h4>\n\n<ul>\n<li><strong>Unlimited templates<\/strong><\/li>\n<li>Image fields (logo, product photo, QR code)<\/li>\n<li>Plugin language selector<\/li>\n<li>Priority email support<\/li>\n<li>Automatic updates<\/li>\n<\/ul>\n\n<h4>Multilingual support<\/h4>\n\n<p>The plugin interface is fully translated into:\nFrench, English, German (Deutsch), Spanish (Espanol), Dutch (Nederlands)<\/p>\n\n<h4>Security &amp; GDPR<\/h4>\n\n<ul>\n<li>Generated PDFs stored in a protected, non-public directory<\/li>\n<li>Configurable auto-deletion of PDFs after N days<\/li>\n<li>No personal data stored beyond what WooCommerce already holds<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0+<\/li>\n<li>WooCommerce 8.0+<\/li>\n<li>PHP 8.0+<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>pdf-gift-card<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen<\/li>\n<li>Go to <strong>PDF Gift Cards<\/strong> in your WordPress admin menu<\/li>\n<li>Create your first template, upload your PDF design, and drag &amp; drop your fields<\/li>\n<li>Associate the template with a WooCommerce product<\/li>\n<li>Done!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20any%20pdf%20file%3F\"><h3>Does this work with any PDF file?<\/h3><\/dt>\n<dd><p>Yes. Any PDF created in Canva, Adobe Illustrator, Affinity Designer or any other tool works as a base template.<\/p><\/dd>\n<dt id=\"can%20the%20customer%20fill%20in%20the%20recipient%27s%20name%20themselves%3F\"><h3>Can the customer fill in the recipient's name themselves?<\/h3><\/dt>\n<dd><p>Yes. The plugin adds a \"Recipient name\" and \"Personalized message\" field on the product page, which the customer fills in before adding to cart. These values are then injected into the PDF.<\/p><\/dd>\n<dt id=\"is%20the%20generated%20pdf%20attached%20to%20the%20woocommerce%20order%20email%3F\"><h3>Is the generated PDF attached to the WooCommerce order email?<\/h3><\/dt>\n<dd><p>Yes. The PDF is automatically attached to the customer's order confirmation email. You can also enable a separate dedicated email.<\/p><\/dd>\n<dt id=\"is%20this%20gdpr%20compliant%3F\"><h3>Is this GDPR compliant?<\/h3><\/dt>\n<dd><p>Yes. PDFs are stored in a protected, non-publicly-accessible directory. You can configure automatic deletion after a number of days (default: 365).<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20variable%20products%3F\"><h3>Does it work with variable products?<\/h3><\/dt>\n<dd><p>Yes, both simple and variable WooCommerce products are supported.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is it compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes, the plugin fully supports WooCommerce High Performance Order Storage (HPOS \/ custom order tables).<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20free%20and%20pro%3F\"><h3>What's the difference between Free and Pro?<\/h3><\/dt>\n<dd><p>The Free plan allows 1 template with text fields. The Pro plan unlocks unlimited templates, image fields (logo, product photo, QR code), and priority support.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3 \u2014 2026-08-05<\/h4>\n\n<ul>\n<li>Fix: The \"Regenerate &amp; Resend\" button on the order screen did nothing \u2014 admin scripts were never loaded on the order edit screen (neither HPOS nor legacy storage), so the button had no JS handler at all<\/li>\n<li>Fix: No PDF was generated when an order went straight from \"On hold\" to \"Completed\" \u2014 the usual path for offline payments (bank transfer, cheque), which skips the \"Processing\" status a template is set to trigger on<\/li>\n<li>Fix: The PDF was missing from the order email \u2014 generation ran at priority 20, after WooCommerce sends its transactional emails at priority 10, so the file did not exist yet when the email went out<\/li>\n<li>Fix: Manual regeneration always resent the \"Processing\" email, even on a completed order<\/li>\n<li>Fix: The euro sign printed as \"?\" on the generated card, along with \u0153, typographic apostrophes and dashes \u2014 text was encoded to ISO-8859-1, while FPDF standard fonts expect WinAnsi (CP1252)<\/li>\n<li>Fix: The price field printed the line total, excluding tax and multiplied by quantity \u2014 a 50 \u20ac card ordered twice showed \"100,00 \u20ac\". It now prints the unit price including tax<\/li>\n<li>Fix: An empty recipient name no longer passes: the error notice did not actually block the add-to-cart, so cards could be generated without a recipient<\/li>\n<li>Improvement: Clear, actionable message when the uploaded PDF cannot be read (1.5+ object compression, password protection) instead of a raw library error<\/li>\n<\/ul>\n\n<h4>1.1.2 \u2014 2026-08-05<\/h4>\n\n<ul>\n<li>Fix: Templates could not be saved on MySQL servers (\"Error while saving\") \u2014 the templates table was never created because a LONGTEXT column had a DEFAULT value, which MySQL rejects (error 1101). Only MariaDB 10.2.1+ accepted it.<\/li>\n<li>Fix: dbDelta() could never apply schema updates \u2014 \"CREATE TABLE IF NOT EXISTS\" prevented it from detecting the table name<\/li>\n<li>Improvement: The schema version is now only recorded once the tables really exist, so a failed installation is retried instead of being silently marked as up to date<\/li>\n<li>Improvement: Admin notice and detailed SQL error message when the plugin tables are missing<\/li>\n<\/ul>\n\n<h4>1.1.1 \u2014 2026-06-04<\/h4>\n\n<ul>\n<li>Fix: Templates and data are never deleted on plugin uninstall<\/li>\n<li>Fix: DB migration (maybe_upgrade) now correctly runs on plugin update<\/li>\n<li>Fix: Editor upload button was non-functional due to a script timing issue<\/li>\n<li>Fix: PDF preview not rendering (PDF.js IIFE wrapper \u2014 import.meta syntax)<\/li>\n<li>Fix: Special characters and emoji icons corrupted in editor field list<\/li>\n<\/ul>\n\n<h4>1.1.0 \u2014 2026-06-03<\/h4>\n\n<ul>\n<li>Security: PDF filenames now use a random 24-character token (no longer guessable)<\/li>\n<li>Security: Temporary QR code files are now properly deleted after PDF generation<\/li>\n<li>Improvement: Error notification email subject now uses the site name dynamically<\/li>\n<li>Improvement: Upgraded PDF.js from 3.11.174 to 5.7.284 (bundled locally)<\/li>\n<li>Improvement: Replaced deprecated PHP filesystem functions with WP_Filesystem equivalents<\/li>\n<li>Fix: PHP syntax errors caused by escaped variables in admin class<\/li>\n<li>Fix: Removed load_plugin_textdomain() \u2014 auto-loaded since WordPress 4.6<\/li>\n<li>Compatibility: Tested up to WordPress 7.0 and WooCommerce 9.6<\/li>\n<\/ul>\n\n<h4>1.0.0 \u2014 2026-05-14<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Automatically generate personalized PDF gift cards for WooCommerce orders with a Drag &amp; Drop template editor. No design skills needed.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/313459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=313459"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fabiendst"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=313459"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=313459"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=313459"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=313459"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=313459"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=313459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}