{"id":350242,"date":"2026-08-20T17:28:48","date_gmt":"2026-08-20T17:28:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/quoteflow\/"},"modified":"2026-08-20T17:28:14","modified_gmt":"2026-08-20T17:28:14","slug":"jutalla-quotes","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/jutalla-quotes\/","author":23543703,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.3.3","stable_tag":"0.3.3","tested":"7.0.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Jutalla Quotes","header_author":"Jutalla","header_description":"Turn quote requests into a pipeline: request \u2192 quoting \u2192 quote sent \u2192 won or lost. With a PDF quote and a fully translated interface.","assets_banners_color":"0f4f7c","last_updated":"2026-08-20 17:28:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3.3":{"tag":"0.3.3","author":"jutalla","date":"2026-08-20 17:28:14"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3657408,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3657408,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3657408,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3657408,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"jutalla-quotes\/form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"jutalla-quotes\/form","version":"0.1.0","title":"Quote request form","category":"widgets","icon":"media-spreadsheet","description":"Shows the Jutalla Quotes request form so visitors can ask for a quote.","keywords":["quote","estimate","request","form"],"textdomain":"jutalla-quotes","attributes":{"title":{"type":"string","default":""},"button":{"type":"string","default":""}},"supports":{"html":false,"multiple":false,"align":["wide"]},"editorScript":"file:.\/index.js"}},"tagged_versions":["0.3.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3657408,"resolution":"1","location":"assets","locale":"","width":2992,"height":1784},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3657408,"resolution":"2","location":"assets","locale":"","width":2800,"height":1736},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3657408,"resolution":"3","location":"assets","locale":"","width":2800,"height":1958},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3657408,"resolution":"4","location":"assets","locale":"","width":1241,"height":1754},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3657408,"resolution":"5","location":"assets","locale":"","width":2800,"height":4354},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3657408,"resolution":"6","location":"assets","locale":"","width":2800,"height":3174}},"screenshots":{"1":"The request form on the site","2":"All requests in one list with statuses and amounts","3":"A request with its quote lines, total and status history","4":"The generated quote PDF","5":"Plugin settings: company details, currency and email templates","6":"The form builder: fields, types and what is required"}},"plugin_section":[],"plugin_tags":[51828,335,206142,354,13770],"plugin_category":[],"plugin_contributors":[276688],"plugin_business_model":[],"class_list":["post-350242","plugin","type-plugin","status-publish","hentry","plugin_tags-estimates","plugin_tags-leads","plugin_tags-pipeline","plugin_tags-quotes","plugin_tags-request-a-quote","plugin_contributors-jutalla","plugin_committers-jutalla"],"banners":{"banner":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/banner-772x250.png?rev=3657408","banner_2x":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/banner-1544x500.png?rev=3657408","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/icon-128x128.png?rev=3657408","icon_2x":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/icon-256x256.png?rev=3657408","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/screenshot-1.png?rev=3657408","caption":"The request form on the site"},{"src":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/screenshot-2.png?rev=3657408","caption":"All requests in one list with statuses and amounts"},{"src":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/screenshot-3.png?rev=3657408","caption":"A request with its quote lines, total and status history"},{"src":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/screenshot-4.png?rev=3657408","caption":"The generated quote PDF"},{"src":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/screenshot-5.png?rev=3657408","caption":"Plugin settings: company details, currency and email templates"},{"src":"https:\/\/ps.w.org\/jutalla-quotes\/assets\/screenshot-6.png?rev=3657408","caption":"The form builder: fields, types and what is required"}],"raw_content":"<!--section=description-->\n<p>Jutalla Quotes is made for small service businesses \u2014 trades, contractors, freelancers, agencies \u2014 that answer the same question every day: \"how much does it cost?\"<\/p>\n\n<p>Instead of letting those requests pile up in an inbox, Jutalla Quotes puts a request form on your site and every submission into one list with a clear status: New, Quoting, Quote sent, Won, Lost. You build the quote inside the request, download it as a PDF, and email it to the client without leaving WordPress.<\/p>\n\n<p><strong>What you get in the free version<\/strong><\/p>\n\n<ul>\n<li>Request form with configurable fields, added with the <code>[jutalla_quotes_form]<\/code> shortcode or the \"Quote request form\" block<\/li>\n<li>Spam protection with a honeypot field \u2014 no external service, no captcha to solve<\/li>\n<li>All requests in one admin list: name, email, date, status, amount, with a status filter and search<\/li>\n<li>A fixed pipeline: New \u2192 Quoting \u2192 Quote sent \u2192 Won \/ Lost, changed by hand in the request<\/li>\n<li>Email to you when a request arrives, and an optional confirmation email to the client<\/li>\n<li>Quote lines inside the request with an automatic total<\/li>\n<li>A quote PDF with your logo and company details, ready to download or to email to the client as an attachment<\/li>\n<li>CSV export of all requests, or just the ones matching the current filter<\/li>\n<li>Interface translated into English, German, Spanish and French \u2014 both the admin screens and the form<\/li>\n<\/ul>\n\n<p><strong>No strings attached<\/strong><\/p>\n\n<ul>\n<li>No WooCommerce required<\/li>\n<li>No external API, no account, no third-party service \u2014 email goes through the standard WordPress mail function<\/li>\n<li>No page builder or framework required; the form is plain HTML and CSS<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP under Plugins \u2192 Add New \u2192 Upload Plugin.<\/li>\n<li>Activate the plugin through the Plugins menu.<\/li>\n<li>Go to Jutalla Quotes \u2192 Settings and fill in your company details, currency and email templates.<\/li>\n<li>Check Jutalla Quotes \u2192 Form fields if you want other fields than name, email, phone and message.<\/li>\n<li>Add the form to a page with the \"Quote request form\" block or the <code>[jutalla_quotes_form]<\/code> shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No. Jutalla Quotes works on its own and does not touch WooCommerce in any way.<\/p><\/dd>\n<dt id=\"where%20are%20the%20quote%20pdfs%20stored%3F\"><h3>Where are the quote PDFs stored?<\/h3><\/dt>\n<dd><p>Nowhere. The PDF is generated when you download it or when the email is sent, and the temporary file is deleted right after sending \u2014 so no quote is left on the server for anyone to find by guessing a URL.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20fields%20of%20the%20form%3F\"><h3>Can I change the fields of the form?<\/h3><\/dt>\n<dd><p>Yes, under Jutalla Quotes \u2192 Form fields. You can add text, number, dropdown, checkbox and text area fields, reorder them and mark them as required. The name, email, phone and message fields stay, because the requests list, the emails and the PDF rely on them.<\/p><\/dd>\n<dt id=\"how%20do%20i%20type%20quantities%20and%20prices%3F\"><h3>How do I type quantities and prices?<\/h3><\/dt>\n<dd><p>Type them the way you write numbers everywhere else. Both <code>1250.50<\/code> and <code>1250,50<\/code> work, spaces between thousands are fine, and <code>12,000<\/code> or <code>12.000<\/code> is read as twelve thousand or as twelve point zero depending on the separators of your site language \u2014 the same ones Jutalla Quotes uses to print the amounts back.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20pipeline%20stages%3F\"><h3>Can I change the pipeline stages?<\/h3><\/dt>\n<dd><p>Not in the free version \u2014 the five stages are fixed. Custom stages are planned for the Pro version.<\/p><\/dd>\n<dt id=\"does%20the%20quote%20pdf%20support%20non-latin%20alphabets%3F\"><h3>Does the quote PDF support non-Latin alphabets?<\/h3><\/dt>\n<dd><p>Not yet. The PDF uses the built-in fonts, which cover English, German, Spanish, French and other Latin-alphabet languages. Cyrillic, Greek and similar scripts need an embedded font, which is not part of the free version.<\/p><\/dd>\n<dt id=\"the%20client%20never%20got%20the%20email.%20what%20now%3F\"><h3>The client never got the email. What now?<\/h3><\/dt>\n<dd><p>Jutalla Quotes sends mail with the standard WordPress function, so it depends on your hosting. If mail from WordPress does not arrive in general, install an SMTP plugin \u2014 Jutalla Quotes will use it automatically.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.3.3<\/h4>\n\n<ul>\n<li>The bundled FPDF library is now prefixed as Jutaqu_FPDF, so another plugin's copy of FPDF cannot conflict with it.<\/li>\n<li>Settings are sanitized through a single named callback passed to register_setting().<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Documented why the one-time prefix migration uses direct database queries; no functional changes.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Every class, constant, option, meta key, capability and hook now uses the unique jutaqu prefix.<\/li>\n<li>Data saved by earlier versions is migrated automatically on the first admin page load after the update.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>The plugin is now called Jutalla Quotes. The name, the text domain and the shortcode changed with it; option and meta keys stayed as they were.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Renamed the plugin, its text domain, shortcode, block, post type and all option and meta keys.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Dropdown options in the form builder are now sanitized with sanitize_text_field().<\/li>\n<li>The bundled FPDF class is only declared when no other plugin has declared it already.<\/li>\n<li>Removed load_plugin_textdomain(); translations are served by translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release: request form, pipeline, emails, quote lines, quote PDF, sending the quote to the client, CSV export, settings, form builder and translations for English, German, Spanish and French.<\/li>\n<\/ul>","raw_excerpt":"Turn quote requests into a pipeline: request \u2192 quoting \u2192 quote sent \u2192 won or lost. With a PDF quote and a fully translated interface.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350242"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jutalla"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350242"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350242"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350242"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350242"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350242"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}