JetFormBuilder PDF Attachment is a plugin crafted to enhance form submissions by automatically appending PDFs to emails. This streamlined feature effortlessly converts submitted form entries into well-structured documents, optimizing the information dissemination process directly from your site. By eliminating the need for manual conversions, this tool ensures a swift and error-free documentation experience, making it particularly beneficial for platforms that necessitate consistent formatting and professional presentation of received data.

Plugin Version: 1.0.4
 
WordPress plugin JetFormBuilder PDF Attachment

Plugin Features

The plugins functionality shines through its seamless integration with existing forms, providing efficient transformation of entries into PDF formats. This organized method of document storage and retrieval is especially advantageous for maintaining brand guidelines, thanks to compatibility with custom templates. Furthermore, automation in generating PDFs significantly reduces the workload related to administrative tasks. Manual effort is minimized as users define the structure and design of their documents, incorporating elements like headers, footers, and stylistic details. This feature proves indispensable for organizations that prioritize a professional image and high standards in documentation.

Security is paramount, as the generated files are promptly attached to emails, safeguarding sensitive information in alignment with data protection protocols. The instant attachment mechanism ensures no data is unnecessarily stored on servers, enhancing privacy. Centralized management allows users to control everything from one dashboard, promoting autonomy and control over outputs. Developers benefit from extensive customization options through shortcodes and hooks, allowing adaptation to specific requirements and workflows, whether simple or complex. Site administrators appreciate the ability to adjust and preview PDF content before final deployment, enhancing usability and reducing implementation time.

In essence, this tool is an invaluable asset for projects requiring reliable, automated document handling linked to user inputs. Its robust feature set and seamless integration into existing systems solidify its role as a key component for enhancing digital form documentation. This capability not only streamlines data processing but also boosts operational efficiency across various domains. Concluding, JetFormBuilder PDF Attachment is an essential solution for any platform seeking to benefit from automated and professional PDF management.

Specifications:

Release date: 20-01-2017
Last updated: 02-10-2026
Type: Paid
License: GPL 
Subject: Contacts & Feedback
Compatibility: W5.x W6.x
Includes: Plugin
Language packs: English
Developer: JetForm Builder

Rating:
4.6029411764706 1 1 1 1 1 (68 Votes)

Download by subscription!

You need to log in on the site and purchase a club subscription!

Share with your friends!

 

How to Set Up JetFormBuilder PDF Attachment for WordPress Form Documents

JetFormBuilder PDF Attachment becomes useful when a standard form submission is no longer enough: the form data needs to turn into a clean PDF, be attached to an email, saved with the form record, or opened for the user after submission. This guide is not a promotional overview of the plugin, but a practical walkthrough: how to prepare the form, build the PDF template, connect it to the Generate PDF action, email the document, and verify that the file is actually being created.

This article is intended for site owners, webmasters, and developers who already use JetFormBuilder or are still choosing a tool for requests, questionnaires, applications, reports, receipts, and similar documents. The focus is on practical decisions: which fields should be built into the form, how to avoid losing the attachment in email, where to find the saved PDF, why a macro may output an empty value, and what to do if a user submits the form but no file appears.

Special attention is given to the chain of events: "form submission - post-submit action - template - file - email or link." That is where most issues tend to happen. Once you understand which component is responsible for what, JetFormBuilder PDF Attachment is easier to implement on a real site and much safer to troubleshoot without making random edits to WordPress core, the theme, or the plugin itself.

JetFormBuilder PDF Attachment guide cover with a WordPress form and finished PDF
The core workflow in this guide: form data passes through the generation action and becomes a document that can be emailed, saved, or opened after submission.

When a Form PDF Is Truly Useful and When It Is Not

A PDF generated after form submission is valuable not because it looks more "official," but because it captures a set of data in a format that is easy to share. A user fills out a questionnaire, uploads an image, confirms terms, enters order details, or submits a service request, and the site immediately creates a file that can be attached to an email, displayed in the browser, or saved with the form record. For the administrator, that means less manual document assembly. For the user, it provides clear confirmation of what they submitted.

JetFormBuilder PDF Attachment works best on sites where the document should be the output of a specific form submission, not a standalone file catalog. Typical use cases include job applications, client intake forms, contract drafts, inspection reports, certificates, travel plans, estimate requests, internal employee forms, and registration confirmations. Each of these cases includes form inputs, a document template, and an expected delivery channel.

The plugin does not replace a full document workflow system, electronic signing, accounting software, or a complex contract generator with version approvals. It solves a narrower problem: it takes data from JetFormBuilder and generates a template-based PDF at the moment the form is submitted. If your project needs approval routing, signature statuses, a permission-controlled document archive, or legally binding signatures, it is better to look at specialized tools or an external system integration.

It is also important to distinguish a form-generated PDF from a standard notification email. An email works well for a brief confirmation: "your request has been received," "we will contact you," or "here is your request number." A PDF makes sense when the data structure needs to be preserved as a separate document: a table of selected options, an uploaded image, a final total, chosen settings, a comment, the submission date, user details, or related information from the site.

Who This Approach Fits Best

This plugin is a good fit for anyone already building forms in the WordPress block editor and who does not want to move the workflow to another form builder just to get PDF output. It is especially useful if the form already uses JetFormBuilder fields, post-submit actions, form records, email actions, or other Crocoblock tools. In that case, the PDF becomes one more step in a familiar workflow rather than a separate system you have to build from scratch.

Another strong advantage is the ability to build the document template in the block editor. That lowers the barrier to entry: for most simple documents, you do not need a separate PDF designer with coordinate-based layout tools. You only need to understand which form fields should appear in the document, where tables are needed, where an image block makes sense, and which text should remain static.

Who Should Look at Other Options

If the site's main form is already built in Gravity Forms, Contact Form 7, Formidable Forms, or another major builder, switching to JetFormBuilder just for PDF output may not be worth it. In that situation, it makes sense to compare PDF add-ons built specifically for your current form builder. They may support its familiar fields, records, and notifications better.

JetFormBuilder PDF Attachment is also not the best choice as a universal WordPress PDF generator if the data source is something other than forms, such as WooCommerce orders, custom post types, user dashboards, or exports aggregated from multiple systems. The plugin can work with dynamic data inside the JetFormBuilder and JetEngine ecosystem, but its core workflow is still centered on the form and the actions that run after submission.

What to Check Before Installation and the First Test

Before installing the add-on, do not start with the Install Addon button. Start by checking the working environment. PDF generation touches the form, the editor, email delivery, file uploads, the wp-content/uploads directory, JetFormBuilder records, and sometimes cache. If one of those layers is already unstable, the PDF feature will only make the problem more visible.

Basic preparation helps you avoid mixing errors together. First, make sure a standard JetFormBuilder form submits correctly without PDF generation, the email arrives, the form record is saved, and uploaded files behave predictably. Only then add the Generate PDF action. That makes any failure much easier to isolate: the issue appeared after PDF was introduced, rather than being hidden in the original form.

Core Dependencies

  • JetFormBuilder is installed and active. PDF Attachment works as an add-on for JetFormBuilder, so the PDF generation action has no purpose without the base plugin.
  • The form already exists, or at least has been planned. A PDF template with macros depends on field names, so you need to understand the form structure first.
  • You have access to the WordPress admin area and the block editor. Forms and PDF templates are configured through the JetFormBuilder interface and the block editor.
  • The site can send email successfully. If the PDF needs to be sent as an attachment, first verify basic email delivery without the file.
  • The uploads directory is writable. Saving PDFs and working with media requires proper permissions for wp-content/uploads.

Plan the Document Before You Start Clicking in Admin

A good PDF does not come from a form assembled at random. Before configuring anything, it helps to write down which fields are required, which values need to appear in the document, whether images from a Media Field are needed, whether the file should be saved, who should receive the email, and whether the user should see a download link. That takes only a few minutes, but it can save a lot of time reworking the template later.

For each field, define its technical name. That field name is what the macro uses in the format %field_name%. If the form has a polished Russian or user-friendly field label, but the technical name was left random or changed multiple times, the PDF can easily end up with a blank space instead of the value. So check your field names before building the template, and do not change them unnecessarily after macros have already been inserted into the document.

What to prepare before configuring PDF output
What to check Why it matters What symptom appears if it is wrong
Form field names PDF macros pull values by technical field names The document shows a blank line or the wrong value
Standard email delivery The PDF attachment is added to the email action The file is created, but the user never receives the message
Form record saving Records make it easier to confirm generation and locate the file path The administrator cannot see the submission or find the PDF
File upload field An image from the form can be displayed in the PDF through an image block You see a link instead of an image, or the first file is not inserted correctly
Cache on the form page Cache can interfere with form security tokens Submission fails with a validation or invalid token error

Installing the Add-On and Running the First Admin Check

JetFormBuilder PDF Attachment is installed from the JetFormBuilder add-ons section. In the WordPress admin area, open JetFormBuilder - Addons, find PDF Attachment, install the add-on, and activate it. After activation, the Templates section should appear in the JetFormBuilder menu, and the Generate PDF action should appear in the form's post-submit actions.

Do not rush into building a complex document right away. The first check should answer a simple question: does WordPress recognize the new action, can you create a PDF template, and do the form settings save correctly? If the templates section or the Generate PDF action is already missing at this stage, there is no point continuing. First verify the add-on installation, the state of the base JetFormBuilder plugin, and whether the required add-on package is available.

Minimum Test After Activation

  1. Open an existing test form or create a new one via JetFormBuilder - Add New.
  2. In the right panel, go to the JetForm tab and open Post Submit Actions.
  3. Click + New Action and make sure Generate PDF appears in the list.
  4. Open the action settings using the edit icon and verify that template selection, file name, PDF saving, and error message fields are available.
  5. Close the window without any complex setup if the form is not ready yet. At this point, the goal is simply to confirm that the add-on was installed correctly.

If the action is visible but errors appear when saving the form, check for conflicts with cache, user permissions, and the overall JetFormBuilder setup. According to the official JetFormBuilder documentation, post-submit actions are configured in the form's right-hand panel and can be combined: email, record saving, redirect, webhook calls, and other operations. PDF Attachment adds a dedicated document-generation step to that chain.

Generate PDF action settings in JetFormBuilder PDF Attachment
The key settings window: choosing a PDF template, naming the file, saving the document, and linking it to email delivery.

Why It Is Better to Keep a Separate Test Form

A live form often already includes conditions, notifications, integrations, and required fields. If you add PDF output directly to that form, it becomes difficult to tell what actually failed: the PDF itself, the email, an action condition, the upload field, or cache. A better path is to first build a short test form with two or three fields, configure PDF generation there, and only then move the approach to the production form.

The test form should resemble the future production form. If the real document will include an image, add a Media Field. If you need calculations, add a calculated field. If the file should be sent to the user, test the email field. But do not overload the first test with every condition at once. First, make sure the workflow is stable: submit the form - PDF is created - email is sent - record appears.

What Not to Test at the First Stage

The first run should not turn into a full simulation of the future business process. Do not add multiple PDF templates, complex conditions, redirects, external integrations, and large images all at once. If every layer is enabled at the same time, you end up with a setup that looks impressive but is hard to troubleshoot. For the first pass, one template, one Generate PDF action, one Save Form Record action, and optionally one email action are enough.

That does not make the test "toy-like." It makes it reliable. First, you confirm that the add-on is visible in the admin panel, creates a file, and can connect it to a record. Then you add email and verify the attachment. Then you add a post-submit link. This way, each new setting is tested against a workflow that already works instead of being buried inside a pile of simultaneous changes.

How the Form, Action, and Template Produce a Single PDF

The core workflow in JetFormBuilder PDF Attachment is built around three parts. The first is the form, where the user enters data. The second is the Generate PDF action, which runs after submission. The third is the PDF template, where static text and editor blocks are combined with field macros. When the form is submitted, the action pulls the values, inserts them into the template, and creates the file.

This workflow looks simple, but it explains most of the practical edge cases. If a macro is written incorrectly in the template, the action may still run, but the document will be incomplete. If the Generate PDF action is present in the form but no template is selected, no file will appear. If the email is sent earlier or does not include the attachment, the user will not receive the PDF. If saving is enabled, you can find the file in the form record and uploads; if saving is disabled, the temporary file is deleted after the actions finish.

How the Data Moves After Submission

Imagine a service inquiry form. The user enters a name and email, selects a service type, uploads an image, and leaves a comment. After clicking submit, JetFormBuilder processes the form and runs the post-submit actions. The Generate PDF action takes the selected template, finds macros such as %email% or %comment%, replaces them with submission data, and generates the document.

From there, several outcomes are possible. The PDF can be attached to an email through the Send Email action. It can be saved to uploads and shown in the form record if the Save Form Record action is added and PDF saving is enabled. It can be opened for the user after submission through Redirect to Page and a special macro for the generated file URL. The same document can be used in multiple actions, but each action should be configured intentionally.

Why Action Order and Presence Matter

The JetFormBuilder documentation describes post-submit actions as a set of operations that run after the form is submitted. For PDF output, the important detail is that the following actions must be able to access the link or attachment created by the Generate PDF action. So when configuring the workflow, do not only look at the list of actions. Look at how they depend on one another: Generate PDF creates the file, Send Email sends it, Redirect to Page can open the link, and Save Form Record helps the administrator verify the outcome.

Practical rule: do not evaluate PDF Attachment in isolation from the form actions. If your test only includes generation and no email, you are testing file creation. If it includes email but saving is disabled, you are testing delivery but not archival. If it includes a redirect, you are testing whether the user can open the file after submission.

Form data processing flow in JetFormBuilder PDF Attachment
This workflow makes it easier to pinpoint the problem: the form fields, template macros, generation action, email, saving, or redirect.

What Goes Into the PDF Template

The template is built in the block editor. According to the official materials, supported blocks for PDF templates include Paragraph, Heading, Image, Columns, Custom HTML, and Table. Inside those blocks, you can place static text and field macros. For example, the line Email: %email% in the template becomes a line with the real email from the form after submission.

To display an image from a Media Field, use the Image block and the matching field macro. The JetFormBuilder documentation highlights an important limitation here: one image block uses one macro, and if the user uploads more than one image in that field, the image block outputs only the first file. That matters for questionnaires, portfolios, and requests where users may attach multiple files. If you need to show more than one image, design the form and template with that limitation in mind so it does not become an unpleasant surprise later.

Think Like a Document, Not Like a Form

A form collects data in the order that is convenient for the user, but the PDF often needs to present that data in a different order. The form may begin with contact details, then move to service selection, then a comment. In the document, it may make more sense to start with an application title, then a short summary, then a contact table, then the detailed comment and attachment. Do not copy the field order automatically. First decide how the document should read to someone who has never seen the form.

This matters even more when requests are passed between employees. A manager does not always need the user's full journey through the form. They need a readable document: who reached out, what they requested, which constraints they mentioned, which file they attached, and what should happen next. JetFormBuilder PDF Attachment provides the insertion mechanism, but the responsibility for a readable structure still belongs to the template author.

A good test is this: if you print the PDF or forward it to someone who does not have access to WordPress, will they understand the task? If the answer is no, the template needs work: add a clarifying heading, group related fields, remove decorative blocks, reduce repeated labels, and make the final data easier to scan.

Detailed Configuration of the Generate PDF Action

Configuring the Generate PDF action is the central step. This is where you choose the template, define the file name, decide whether the document should be saved, connect it to email delivery, and set error messages. Each of these settings affects not appearance, but long-term support: whether the administrator can find the file, whether the user understands an error, and whether emails arrive without missing attachments.

Open the form in JetFormBuilder - Forms, go to the JetForm tab, expand Post Submit Actions, click + New Action, and choose Generate PDF. Then open the action edit window. If you are doing this on a live site, first save a copy of the form or repeat the setup on a test form. Post-submit actions affect a real user workflow, so every change should be tested by submitting the form.

Choosing the PDF Template

The Select PDF Template field links the action to a specific document template. If you do not have a template yet, use the Add new template button. After the template is created, that button changes role and becomes a way to edit the selected template, while all templates remain available under JetFormBuilder - Templates. That is useful when the same document needs to be improved separately from the form.

A practical naming approach for a typical site is to name templates by task rather than by generic labels. For example: Service request PDF, Job application PDF, or Consultation summary PDF. This article does not put dates into the guide text, but in a real project you can use clear internal names if they help the team distinguish templates.

File Name and Macros

The File Name field defines the name of the future PDF without the extension. The documentation notes that the .pdf extension is added automatically. You can keep the macro %_template_name%, use static text, or insert field values through the macro icon. For example, the file name may include the request type and the value of a last-name field if that helps the administrator find the document quickly.

But there is an important caveat. The file name should not expose unnecessary personal data, and it should not break on unusual characters. For a public link or an email attachment, it is usually better to use a moderately descriptive name: document type, a short identifier, a company name, or a request number if the form includes one. Full names, phone numbers, medical details, and other sensitive data are better kept inside the PDF itself and the form record, not in the file name.

What to Use for the First Run

For the first test, leave %_template_name% in place or use a short static name. After you confirm that generation works, add one macro, such as %last_name% or %request_type%. That makes it easier to tell whether file-name insertion is working. If you build a complex name from several macros right away, it becomes much harder to identify which macro produced the empty value when something goes wrong.

Saving the PDF After the Actions Run

The Save generated PDF toggle determines whether the file remains on the server after the actions finish. If the toggle is off, the file is created for the current process and deleted after the actions are complete. If it is on, the file is saved and can be tied to the form record, and it can also be available through WordPress uploads and the form records section when configured correctly.

For requests, questionnaires, reports, and internal documents, it usually makes sense to enable saving because the administrator needs an archive and the ability to reopen the file later. For one-time confirmations where the PDF is only needed as an email attachment and keeping it on the site is undesirable, turning saving off can make sense, but after testing you should still verify that the email reliably receives the attachment.

Connecting It to the Send Email Action

The Attach to the Send Email action button helps link the generated PDF to an email. According to the documentation, it can either create a new Send Email action or modify an existing one by adding the file to the attachments area. After confirming, it is worth clicking Go to the action and checking the email settings: recipient, subject, content type, and the Attachments block.

Do not stop at the fact that the attachment was added automatically. Check who the email is actually going to. If Email from submitted form field is selected, the email field in the form must be required and validated. If the email goes to an administrator, separately verify that the site's mail service does not reject attachments. The PDF may be generated correctly, but the user may still never see it because of delivery issues.

Error Messages

The Messages Settings block includes fields for file creation errors and attachment creation errors. Do not leave overly technical text there if the form is visible to regular users. The message should explain that the action could not be completed and suggest a safe next step: try again later, check the attached file, or contact the site administrator. Details for the administrator are better checked in the form record, server logs, or WordPress troubleshooting tools.

Quick configuration summary: for a stable first workflow, choose a template, keep the file name simple, enable PDF saving, add Send Email only after generation itself has been tested, and write clear error messages. Then submit the form as a regular visitor, not only by saving it in the admin panel.

Execution Conditions for Different Submission Types

JetFormBuilder allows conditions to be assigned to post-submit actions. For PDF output, that is useful when a single form handles multiple request types. For example, a user may choose "consultation," "estimate," or "application," and the site should generate different documents or send them to different recipients. The important distinction here is between two different approaches: a conditional block inside the template changes part of one document, while an action condition decides whether an entire action runs at all.

If the variation is minor, it is usually better to use one PDF template with conditional fragments inside it. If the document structure, email recipient, saving requirement, or redirect behavior changes, it is more practical to split the actions. In either case, each branch needs its own test: choose the value in the form, submit it, open the record, check the PDF, and confirm that the wrong branch did not run.

Do not build conditions around free-form text that the user can type if a list, toggle, or radio field with fixed values would work instead. Fixed values are easier to compare, easier to test, and easier to maintain when the form is edited. Free-form text is better used as document content, not as the trigger that decides whether PDF generation runs.

The PDF Template: Macros, Blocks, Images, and Conditional Parts

The PDF template is not a copy of a site page. It has a different job: to assemble the data into a document that remains readable in email, in the browser, and in the archive. That is why it is important to design the template as a document, not as a polished landing page. The simpler the structure, the lower the risk that long text, a large image, or an empty field will break the final output.

In the JetFormBuilder template editor, stick to proven blocks: a heading for the document title, paragraphs for context, a table for "field - value" pairs, columns for a compact arrangement of image and data, an image block for the file from a Media Field, and Custom HTML only where standard blocks are not enough. Do not overload the PDF with a complex grid or decorative elements. Most users open the document for information, not for visual flair.

Macro and block map for a JetFormBuilder form PDF template
Macros must match the technical field names, and the document structure must hold up with long values, empty optional fields, and embedded images.

How to Use Macros Without Getting Empty Values

A basic JetFormBuilder macro looks like %field-name%, where field-name is replaced with the field's technical name. In the PDF template, this is the most common way to display submitted data. If the field is named email, you can write Email: %email% in the template. If the field is named service_type, use %service_type%.

The weak point of macros is ordinary human oversight. The visible field label and the technical field name may be different. The user sees "Your email," but the template must reference %email% if that is the field's actual name. If a field is renamed and the macro in the template is not updated, the PDF may still be generated, but the corresponding line will remain empty. That is why every time the form changes, you should open the template and verify that the macros still match.

Why a Table Is the Most Reliable Layout for Applications

For most questionnaires and request forms, a table in the PDF template works better than a set of unrelated paragraphs. The first column can hold the label, and the second can hold the macro. That makes the document easy to validate: if something is blank, it is immediately obvious which macro or field failed. A table also handles long values more gracefully, including comments, addresses, project descriptions, and extra conditions.

Below is an example fragment you can adapt in a Custom HTML block if the editor's standard table block is not enough. This is not an official plugin template. It is a safe custom starter based on the documented macro system and the Custom HTML block. Use it on a test form first, and roll it back by removing the block if the PDF output looks wrong.

<table>
  <tr>
    <td><strong>First Name</strong></td>
    <td>%first_name%</td>
  </tr>
  <tr>
    <td><strong>Email</strong></td>
    <td>%email%</td>
  </tr>
  <tr>
    <td><strong>Request Type</strong></td>
    <td>%request_type%</td>
  </tr>
  <tr>
    <td><strong>Comment</strong></td>
    <td>%message%</td>
  </tr>
</table>

After inserting a block like this, submit the form with both short and long values. Check whether the table holds up, whether any characters disappear, and whether the comment gets cut off. If the PDF looks poor, it is better to return to the built-in Table block and simplify the structure than to fight a complicated layout inside the document.

Images from a Media Field

If the PDF needs to include a photo, scan, diagram, or another user-uploaded image, set up the Media Field in advance. The JetFormBuilder documentation for the media field explains separately that the storage mode affects how the file appears in the admin area, emails, the site's front end, and the media library. For images, it is often more convenient to use a format that allows WordPress to treat the file as an attachment rather than just a URL.

In the PDF template, the image is inserted using the Image block and the media field macro. One important limitation remains: one image block displays one file, and in a multi-file upload it uses only the first one. So for a workflow like "attach up to three photos," decide in advance whether the PDF only needs the primary image or whether each file should have its own field. If that is not planned up front, the administrator may see several uploaded files in the form while the PDF shows only one.

Conditional Parts of the Document

The product page and the documentation mention the Conditional Block for templates. In practice, it is useful when not every part of the document should always be displayed. For example, if the user chooses a business consultation, you may want to show a company details block; if they choose a personal request, that block is unnecessary. But conditional sections require discipline: the condition should rely on a field whose value is definitely being submitted with the form.

Before launching a conditional PDF template, test at least two paths: one where the block should appear and one where it should stay hidden. If visibility depends on user role or JetEngine dynamic data, test it under the roles that actually have access to the form. Do not tell users that the document "will always be personalized" until you have validated every branch.

Automatic Date and Internal Fields

The PDF Attachment page mentions the ability to output the current date using a hidden form field. The practical value of that setup is simple: it records the submission moment in the document without asking the user to enter it manually. That is useful for applications, internal requests, certificates, and confirmations. But a hidden field should not become a place for sensitive logic that the user should not be controlling in the first place.

If the PDF needs a submission date, add a hidden field, verify its value in the form record, and only then insert the macro into the template. Do not rely on a vague assumption that "the date should be there somewhere." Open the PDF after a test submission and confirm that the value appears in the correct format, does not break the line, and does not conflict with the site's time zone. If the date is legally or financially significant, align the format and time source with the responsible specialist.

Dynamic Data from User Profiles and Related Records

Crocoblock materials on practical workflows highlight that a PDF can include not only values entered at the moment of submission, but also data the site already knows: a user profile, a related record, a selected object, request-based values, or data prepared through JetEngine. That expands the role of the plugin: the document becomes more than a simple copy of the form and starts assembling the context around the submission.

This kind of setup requires stricter testing. Submit the form under different user roles, with different source records, and with empty optional values. Check that the PDF does not pull in another user's data or reveal admin-only information. If the data source is not clearly confirmed in your configuration, do not put it into a production document until you see the correct form record and the correct PDF in testing.

Three Ways to Deliver the PDF to the User and the Administrator

Once the PDF is generated, you need to decide where it goes. JetFormBuilder PDF Attachment supports several practical delivery paths: an email attachment, a saved file in the form record, and a post-submit link that opens for the user. These paths are not mutually exclusive, but each one adds its own responsibilities and risks. The more precisely you choose the path, the fewer unnecessary files, emails, and support requests you create.

PDF as an Email Attachment

This is the clearest workflow for the user: they submit the form and receive an email with the completed document attached. To make that work, the Generate PDF action is connected to Send Email, and the email settings are checked in the Attachments block. If the email should go to the user, the Mail To field is set to the submitted email address, and the email field itself is made required.

The key test here is not just "the email arrived," but "the email arrived with a PDF that opens correctly." Open the attachment in more than one email client, and check both the file name and its contents. If the email arrives without the attachment, go back to the Generate PDF action, verify the selected template, save the form, and then reopen the Send Email settings. Sometimes the problem is not PDF generation at all, but mail delivery or attachment limits on the email server.

PDF as a Saved File in the Form Record

If the administrator needs an archive, enable Save generated PDF and use Save Form Record. Then after submission, you can open JetFormBuilder - Form Records, find the relevant record, and see the block with the generated PDF. The documentation also describes internal record fields that store the file path and file URL, such as fields like generate_pdf_{...}_filepath and generate_pdf_{...}_url.

This route is especially useful for internal workflows. The email may fail, the user may lose the file, or a manager may close the tab, but the form record remains a control point. If the document matters, do not rely on email alone. Save the record and verify that it contains a link to the PDF.

PDF as a Post-Submit Link

For a workflow where the user should immediately download or open the file, use the Redirect to Page action with the Custom URL option and the generated PDF URL macro. The official guide for post-submit links shows a macro like %generate_pdf_3194_url%; the exact numeric portion depends on your form and action, so it must be selected through the macro interface rather than copied from someone else's example.

Test this route in a separate browser window, ideally without admin privileges. The goal is to see what a regular visitor will see: the form submits successfully, the browser opens the PDF or the file URL, the link works, and access to the document does not expose someone else's data. If the PDF contains sensitive information, do not make a public link the main access method without evaluating the risks first.

Ways to access a PDF after a WordPress form submission
The same PDF can be used in multiple paths: emailed to the user, saved for the administrator, and opened through a post-submit link.

How to Choose the Right Path for Different Tasks

Choosing a PDF delivery channel by document type
Use case Best path What to verify
Client intake form or service request Email to the administrator plus saved record The PDF exists in the record, the email includes the attachment, and personal data is not exposed in the file name
Certificate or registration confirmation Email to the user plus post-submit link The user receives their file, and the link opens the correct document
Internal employee report Saved record plus email to the responsible person The file can be found later, and the sender and record status are clear
Document with an uploaded image Saved record first, then email if needed The image is inserted into the PDF, and the original file is available in the expected storage format

When It Makes Sense to Combine Paths

Combining delivery paths makes sense when the same PDF serves two different audiences. The user wants confirmation, while the administrator needs an archive and data for follow-up. In that case, the user-facing email can stay brief and polite, the admin email can be more operational, and the form record can serve as a fallback in case mail fails. The important part is not to turn this into chaos with duplicate emails. Label the actions clearly, configure recipients carefully, and test each one separately.

For an internal request, you may skip the user attachment entirely if a simple "your request has been received" message is enough. In that case, the PDF stays only in the form record and in the email to the responsible staff member. For a certificate or participation confirmation, the opposite is true: the user-facing file is the main output, and the admin record acts as backup. The right choice depends not on what the plugin can do, but on who actually needs to use the document after submission.

When a Direct Link Is Better Left Hidden

A direct PDF link is convenient, but not always appropriate. If the document contains medical details, personal information, internal comments, financial data, or a scanned document, think carefully about whether it should open in the browser immediately after submission. In some cases, it is safer to send the file to a confirmed email address or make it available only to the administrator. JetFormBuilder PDF Attachment provides the technical ability to open the PDF, but access decisions still belong to the site's own policy.

If you do use a link, test it outside the admin session, either as a guest or as a user with the intended role. One key check is whether the link opens the file from the current submission, not the last generated document or a generic template. If the behavior seems unpredictable, remove the redirect from the production form and keep a more controlled path until you understand the macro and file-saving behavior.

Practical Workflow: A Consultation Request with a PDF for the Client

Let's walk through a workflow that is easy to adapt for a service business, educational site, clinic, agency, or internal portal. The goal is simple: the user fills out a consultation request form, receives a PDF confirmation, and the administrator can see the form record and open the same file. The document includes contact details, the selected service, a comment, and an uploaded image if one is needed.

Goal

You need a document that confirms the contents of the request and helps a manager process it quickly. The PDF does not replace a CRM and does not promise fully automated handling of the request. It simply captures the data in a clear format: who submitted it, which service they selected, what they attached, and which comment they left.

Preparation

  • Create a test form in JetFormBuilder with the fields first_name, email, service_type, message, and, if needed, client_file.
  • Make the email field required if the PDF should be sent to the user by email.
  • Add Save Form Record so you can review the submitted data and PDF-related internal details after the test.
  • Test normal form submission without PDF output first to confirm that the base form works properly.

Setup Steps

  1. Open the form and add the Generate PDF action under Post Submit Actions.
  2. Create a new PDF template through Add new template and name it by purpose, for example Consultation request PDF.
  3. In the template, add the document heading, a short explanation, and a table with the macros %first_name%, %email%, %service_type%, and %message%.
  4. If the form includes an image upload, add an Image block and choose the client_file field macro through the macro insert button.
  5. Save the template, return to the form, and select it in the Select PDF Template field.
  6. In the File Name field, use a simple name such as consultation-request, or add one safe macro that does not expose sensitive data.
  7. Enable Save generated PDF so the file remains available through the form record.
  8. Click Attach to the Send Email action, confirm the addition, and open the Send Email action to verify the recipient and attachment.
  9. If needed, add Redirect to Page with the generated PDF URL macro so the user can see the file immediately after submission.
  10. Save the form and place it on a page using the JetForm block, Elementor widget, Bricks element, or shortcode if another builder is in use.

Verifying the Outcome

Open the form page on the public-facing site, fill in all required fields, and submit the form as a regular user. After submission, check three places. First, the browser: if redirect is configured, the PDF or its link should open. Second, email: the message should arrive with the attachment, and the file should open correctly. Third, the admin panel: in JetFormBuilder - Form Records, a record should appear with the form data and a link to the generated PDF.

Then repeat the test with less convenient input: a long last name, a multi-line comment, an empty optional field, or a larger file that is still within allowed limits. Those are the kinds of inputs that show whether the template can handle real-world use. If the PDF only works well with a short and tidy test, it will start breaking as soon as real submissions come in.

A Commonly Missed Detail

If you are using an image from a Media Field, decide in advance what should happen with multi-file uploads. The PDF Attachment documentation states that one image block outputs only the first file from the field. That means if a request includes several photos, you should not promise the user that "all files will appear in the PDF" unless the template actually supports that. It is more honest to state in the form that the PDF includes the main image, while the other files remain available to the administrator in the form record or another storage location, if that is how the site is configured.

How to Move the Workflow to a Production Form

After a successful test, do not copy the settings mechanically. A production form is almost always different: more required fields, visibility conditions, real recipients, anti-spam controls, possibly file uploads and integrations. Move the PDF workflow over layer by layer. First, create the template using the real field names. Then add Generate PDF without redirect and verify the form record. After that, add email. Only then should you enable the user-facing link, if it is needed.

Before launch, run several submissions under different roles and with different option selections. If the form is multi-step, test not only the final step but also the transitions between steps, because the user may go back and change a value that ends up in the PDF. If conditional field visibility is used, test the paths where a field is hidden. The document should not show an awkward blank space or an incorrect label in those cases.

Quick Summary of the Practical Example

A successful workflow looks like this: the form collects only the necessary data, the PDF template presents it in a readable structure, the Generate PDF action creates the file, Send Email delivers it to the right recipient, Save Form Record leaves a control record behind, and the user-facing path does not expose unnecessary data. If even one layer has not been tested, the workflow is not ready for an important production form.

Validation Checklist: What Should Match Across the Email, Record, and Files

After configuration, do not stop at the message "form submitted." A PDF workflow has several control points, and each one is responsible for a different layer. If you only check the public-facing site, you may miss that the record was never saved. If you only check the record, you may miss that the user never got the email. If you only check the email, you may miss an incorrect file name or empty macros inside the document.

Control Submission

Run a control submission with data that is easy to recognize: a unique name, a unique email, a clear service type, and a short comment. Do not use the same test value like test in every field, because then it becomes harder to tell which macro was inserted where. After submission, open the PDF and compare every line to the original form input.

What to Check Inside the PDF

  • Are all required fields filled in? An empty value often points to a wrong field name in the macro.
  • Are any fields swapped? This can happen when a template was copied from another form and the macros were not updated.
  • Is long text still readable? A user comment may take more space than expected.
  • Was the image inserted correctly? If you see a link or a blank area instead of an image, check the Media Field settings and the image block.
  • Is the file name appropriate? It should be understandable without exposing extra data.

Checking the Email Attachment

Check the email separately from the PDF itself. Open the Send Email action, confirm that the recipient is correct, the subject is clear, and the attachment is listed under Attachments. Then submit the form using an address you can test and open the message in the inbox. If no email arrives, first verify normal site email delivery and the mail sender settings. If the email arrives but the attachment is missing, go back to the connection between Generate PDF and Send Email.

Checking the Saved File

If Save generated PDF is enabled, open the form record. The record details should include a block or fields related to the generated PDF. The official documentation also describes file storage under wp-content/uploads/jet-form-builder/{unique_name}/... with additional subfolder organization. On a typical site, checking the file through the form record is usually enough, but for troubleshooting permissions or a site migration, it helps to know where the file physically lives.

Do not publish direct paths to these files in public site content. A PDF may contain personal data, so links and access to them should be reviewed from a privacy standpoint. If the document is intended only for the administrator, do not add a public redirect to the PDF without a reason.

Troubleshooting JetFormBuilder PDF attachment errors after form submission
A diagnostic map for finding the cause when a PDF is not created, not delivered by email, not saved, or opens without the expected data.

Checking After Updates and Site Migration

A PDF workflow depends on several WordPress layers, so it should be tested not only on the day it is implemented. After updating JetFormBuilder, PDF Attachment, the theme, a mail plugin, cache, or hosting, run one control submission. The same rule applies after moving the site to a different domain or server. The form may still open normally while the saved file path, folder permissions, or attachment delivery behavior may have changed.

For a migration, two layers matter especially: the database and the uploads files. Form records may still exist in the database, but the PDF files physically live in the uploads directory. If only the database is migrated, the admin area may still show records with broken links. Before handing off the project, open several older form records and confirm that the PDF is still accessible, and that a new test submission creates a file in the new environment.

Privacy Review

A PDF often contains more data than a standard email: an embedded image, selected options, contact details, comments, and internal values. So before launch, ask yourself who should have access to the file. If the PDF is sent to the user, it should not include administrative notes. If the file is stored on the server, access to it should match the site's policy. If the link opens after submission, it should be tested without administrator privileges.

Do not assume absolute protection just because the files are stored in a nonstandard folder. The official documentation describes an improved storage layout with a unique folder and added protection, but real-world security still depends on the server, access rules, backups, email delivery, and the data you choose to include in the document. The less unnecessary information the PDF contains, the easier it is to manage the risk.

Use Cases Where JetFormBuilder PDF Attachment Does More Than a Standard Email

The most common implementation mistake is turning the PDF into a copy of the email. If the PDF contains the same two lines as the notification, it adds overhead without adding value. A strong use case starts where the document becomes a standalone output: something that can be forwarded, printed, added to a case, stored in an archive, compared with the original submission, or handed to another employee who has no access to the admin panel.

Candidate or Participant Questionnaire

The form may collect a name, contact details, work experience, a portfolio link, a comment, and a photo. The PDF turns that data into a single document that can be sent to the responsible reviewer. In this use case, a data table, an image block, and a clean heading are especially helpful. If the candidate uploads multiple files, explain in advance which file will appear in the PDF and which files will remain available separately.

Application or Internal Request

On a corporate site or internal portal, a PDF can capture an employee request: vacation, procurement, service issue, business trip, or access to a resource. In this kind of workflow, visual polish matters less than traceability: who submitted it, which options they selected, when it was sent, who received the email, and where the record is stored. An additional hidden field may pass an internal value if the document truly needs it and the form workflow supports it.

Personalized Report or Estimate

JetFormBuilder supports calculated fields, hidden fields, and dynamic values in its core system. Combined with PDF output, that makes it possible to generate a document that includes not only entered data, but also a calculated total. For example, a user chooses service options, the form calculates an estimated amount, and the PDF captures both the selected parameters and the calculation outcome. In this kind of workflow, validation matters even more: change the source values and verify that the total in the PDF matches what the user saw before submission.

Document with Site Data

Crocoblock materials on PDF workflows emphasize that the document can use not only data the user just entered, but also data from a profile, related records, or other site sources when the broader ecosystem is configured accordingly. That opens up more advanced options: personalized reports, participation confirmations, documents tied to a selected record, or applications with user data filled in automatically. But these workflows need especially careful testing, because an error in the data source can produce an incorrect PDF.

An easy-to-miss boundary: if the PDF uses profile data or a related record, test the document under different users and roles. One successful admin test does not prove that a regular user will see the correct values.

Signature in the Document as Part of the Form

The JetFormBuilder ecosystem includes a separate signature add-on, and the official materials show a workflow for adding a signature to a PDF. That does not automatically make the PDF a legally binding document, but it can still be useful for consents, internal requests, work acceptance forms, and acknowledgment confirmations. If the signature matters, test it as its own field: how it appears on the page, whether it is stored in the form record, whether it shows up in the PDF, and whether it gets cropped in the template.

Do not confuse a signature with user consent. A signature field displays an image or input trace, while consent should be expressed explicitly through the appropriate form field and agreement text. In the PDF, it can make sense to show the signature, the consent text, and the internal submission date if they are genuinely needed by the workflow. But each added element also increases your responsibility for data handling.

Documents for Educational and Service Sites

For courses, consultations, and service platforms, the PDF does not have to be a final contract. It can simply be a convenient confirmation: a participation request, a short summary, a service outline, or a list of selected options. Here the main goal is not legal complexity, but clarity. The user should open the file and immediately understand what they submitted and what happens next. The administrator should see the same data in the form record.

These documents work especially well when the form includes several groups of fields: contact details, service selection, additional information, consent, and attachments. In the PDF, those groups can become sections. If the form is long, you do not have to output every technical detail. The document should support processing the request, not turn into a raw dump of every field.

Compatibility with Editors, Theme, Cache, and File Storage

JetFormBuilder is built around the block editor, but the form can be displayed in different environments: as a block in the WordPress editor, an Elementor widget, a Bricks element, or a shortcode for other builders. For PDF Attachment, that means the generation itself is tied to form submission, not to a specific theme. But the front-end form rendering, styles, cache, and mail infrastructure can still affect the final user experience.

Displaying the Form on a Page

The official documentation describes several ways to display a form: the JetForm block for the block editor, the JetForm widget for Elementor, the JetForm element for Bricks, and a shortcode for other builders. For the first test, it is best to use the same display method that the production page will use. If the form works in the block editor but not in another builder, the issue may not be PDF output at all, but the rendering method or submission setup.

Cache and Security Tokens

WordPress forms often rely on security tokens, which should not be served to the user from an outdated cached page. The official JetFormBuilder troubleshooting guide describes invalid token cases and recommends excluding form pages from cache if caching interferes with submission. For a PDF workflow, that is especially important: if the form does not pass validation, the Generate PDF action never receives a valid submission event.

Do not disable the site's entire caching system because of a single form. First exclude the specific form page, clear the cache, and try the submission again. If there is additional server-level or CDN caching, check that too. In troubleshooting, always separate "the form does not submit" from "the form submits, but the PDF is not created." Those are different layers of the problem.

Permissions and the Uploads Directory

Saving the PDF depends on the WordPress file system. If the server cannot create a folder or write a file into wp-content/uploads, a file creation error will appear. The action interface lets you define a message for that situation, but the fix is not the message text. The real cause must be addressed instead: folder permissions, hosting limits, available disk space, security rules, or a conflict with a security plugin.

After updates, PDF Attachment changed the file storage layout to use a unique folder inside wp-content/uploads/jet-form-builder/. That was done to improve storage protection. For a typical administrator, the main reference point is still the form record, but for a technical specialist it helps to know that older and newer file paths may differ. When migrating a site, do not copy only the database. Make sure the uploaded files are transferred too.

Emails and Attachments

A PDF attachment makes an email heavier. If the file is large, some mail services may limit delivery or route the message to spam. Do not hard-code specific limits into your setup or documentation without checking your own provider. Those limits depend on the sender, recipient, and mail infrastructure. In practice, it is better to keep the template compact, avoid huge images, and test delivery using a real mailbox.

Safe Improvements Without Editing the Plugin

With JetFormBuilder PDF Attachment, it is usually best to start with settings, macros, and template structure rather than PHP code. The official materials confirm support for blocks, macros, post-submit actions, action conditions, form records, and media field settings. That is enough for most useful improvements. If a specific PDF Attachment hook is not publicly confirmed in the documentation, there is no reason to invent a code-based extension for it.

Make the PDF More Resilient to Long Data

The most useful improvement is not code. Test the template with long values and restructure it so the document does not fall apart. Use a table for short fields, a separate block below the table for comments, and a separate column or separate block for the image. Do not place a long comment in a narrow column next to an image if the user may enter several sentences.

Separate the User Email from the Admin Email

Not every PDF needs to be sent to everyone in the same way. The user can receive a confirmation with brief text and the PDF, while the administrator can get an email with a more informative subject line and a link to the form record. If you add multiple Send Email actions, label them clearly in the admin panel and test each one separately. That is safer than forcing every purpose into a single overloaded email.

Use Action Conditions for Different Documents

JetFormBuilder supports conditions for post-submit actions. That makes a practical pattern possible: generate different PDFs or send different emails depending on the selected request type. For example, a consultation request gets one document, while an estimate request gets another. This approach is worth using only when the branches are genuinely different. If the only difference is a single paragraph, it is simpler to use a conditional block inside the template.

How to Safely Test a Conditional Setup

  1. Create two clear values in a choice field, for example consultation and estimate.
  2. Set the condition for the corresponding post-submit action through Conditions.
  3. Submit the form with the first value and confirm that only the correct PDF workflow runs.
  4. Repeat the submission with the second value and verify the second branch.
  5. Roll the setup back by temporarily disabling the action if even one branch produces the wrong document.

This approach is based on JetFormBuilder's documented action conditions, but the exact behavior still depends on your form. Do not describe it as an official integration with an external document workflow system. It is simply a practical way to organize different actions inside WordPress.

Troubleshooting and Fixing Common PDF Issues After Form Submission

PDF issues should almost always be traced through the workflow rather than guessed at. First check whether the form submits at all. Then check whether the PDF is generated. Then check whether it appears in the email, the record, or the redirect. That order is faster than immediately changing every setting, disabling plugins, or rebuilding the template from scratch.

The PDF Is Not Generated After Submission

Symptom: the form submits or shows an error, but no PDF appears in the email, the form record, or the expected storage location.

Possible cause: the Generate PDF action was not added, is disabled, has no selected template, cannot write the file, or never receives a valid form submission because of a validation error.

What to check: open the form, review Post Submit Actions, make sure the action is enabled, the template is selected, the form is saved, and the test submission completes without errors. If PDF saving is enabled, check the form record and the availability of uploads.

How to fix it: reselect the template, save the action and the form, and test on a minimal form. If the error points to file or folder creation, check permissions for wp-content/uploads and any hosting restrictions. If the issue started after adding complex conditions, temporarily disable the conditions and test generation without branching.

The Email Arrives Without the PDF Attachment

Symptom: the user or administrator receives the email, but the PDF is not attached.

Possible cause: the Send Email action is not linked to the generated PDF, the attachment was not added to Attachments, the PDF generation fails earlier in the workflow, the email was configured separately, or the mail infrastructure is dropping the attachment.

What to check: open the Generate PDF action, use Attach to the Send Email action, then open Send Email and inspect the attachments block. Submit the form and see whether the PDF exists in the form record. If the file exists in the record but not in the email, the problem is closer to email delivery. If the file exists nowhere, go back to generation.

How to fix it: recreate the email connection through the interface, save both actions, reduce the size of the test PDF, and verify delivery using a reliable mail sender. Do not edit the plugin code. In most cases, the issue is solved through action settings or mail configuration.

The PDF Contains Blank Fields Instead of Data

Symptom: the file is created and opens, but some lines are blank or show the wrong values.

Possible cause: the macro does not match the field's technical name, the field was renamed after the template was created, a conditional branch hid the field, the value was never submitted, or the wrong macro is being used for a media field.

What to check: compare the form field names to the macros in the template. For standard fields, use the %field-name% format. For media fields, account for the separate macros and storage format described in the JetFormBuilder documentation.

How to fix it: reinsert the macro using the [/] button in the template editor, save the template and the form, and run a test with unique values. If the blank field is optional, decide whether the related block should be hidden through conditional logic or whether leaving a blank line is acceptable.

The Form Image Does Not Appear in the Document

Symptom: the PDF shows a blank area, a link, or only the first file out of several instead of the image.

Possible cause: the media field stores its value in a format that does not fit the expected output, the image block uses the wrong macro, or the field contains multiple uploaded files while the template is built for one.

What to check: open the Media Field settings and review Insert Attachment and the value format. Then open the PDF template and confirm that the Image block uses the macro for that specific field.

How to fix it: for document images, start with one file and one field, verify the storage format, and only then make the workflow more complex. If you need several files, do not rely on a single image block. Split the input into multiple fields or keep the extra files available to the administrator outside the PDF.

The Form Shows a Token Error or Will Not Submit

Symptom: the PDF is not generated because the form itself does not submit: you see an invalid token, security check, or validation error.

Possible cause: the form page is served from cache with an outdated security token, CSRF protection is involved, or a cache or security plugin is conflicting with submission.

What to check: retry the submission on a non-cached version of the page, temporarily exclude the form page from caching, and review JetForm - Validation settings. Do not permanently disable security features without understanding the risk.

How to fix it: set a cache exclusion for the form page, clear the site and CDN cache, and test the form in a private window. If that does not resolve it, roll back the cache changes and look for the conflict at the plugin or theme level instead.

The PDF Link Opens Somewhere Unexpected

Symptom: after submission, the user lands on a blank page, the wrong address, or cannot open the file.

Possible cause: the Redirect to Page action uses a copied example macro from someone else's setup, the wrong URL macro was selected, the PDF is not being saved, or the link does not actually have access to the generated file.

What to check: insert the macro from your form's interface rather than copying it literally from the documentation. Confirm that the Generate PDF action runs and that the file exists. If the document contains sensitive data, separately decide whether the user should be opening it through a direct link at all.

How to fix it: rebuild the Redirect to Page action, choose Custom URL, insert the current generated PDF URL macro, save the form, and test it as a guest. If the access risk outweighs the benefit, remove the redirect and keep email or the administrative record instead.

Video on Setting Up PDF Generation After Form Submission

The official JetFormBuilder guide on PDF generation includes a video that matches this exact workflow: creating the form, adding the Generate PDF action, configuring the template, sending the email attachment, and verifying the outcome. It is most useful after you already understand the workflow, because the interface steps are easier to follow once you know what is happening behind the scenes.

The video answers the practical question of how to use JetFormBuilder PDF Attachment with a WordPress form: where to enable the add-on, how to choose a template, how to insert field values, and how to validate the file after submission. If your interface looks slightly different, focus less on matching every icon and more on following the workflow: form - action - template - email or link - form record.

Questions to Resolve Before Launching on a Production Site

Can JetFormBuilder PDF Attachment be used without JetFormBuilder?

No. The add-on only makes practical sense alongside JetFormBuilder. It adds a PDF generation action to JetFormBuilder forms and uses their field values through macros. If your form is built in another plugin, it is better to look for a PDF solution for that plugin or a universal PDF tool with the integration you need.

Do I always need to enable Save generated PDF?

Not always. If the document is only needed as a temporary email attachment, saving may not be necessary. But for requests, questionnaires, reports, and internal documents, saving is useful because the administrator can open the file from the form record and verify what was actually created. If the PDF contains sensitive data, enable saving only with a clear access and retention policy.

Why can't I just copy a macro from the documentation into my own form?

Macros depend on the technical field names and the specific actions in your form. An example like %generate_pdf_3194_url% shows the format, but the numeric portion and available values must be chosen through your own form interface. For regular fields, use macros in the %field-name% format, where the name matches your own field.

Can I insert multiple images into the PDF from one upload field?

The PDF Attachment documentation notes a limitation: one Image block with one macro outputs only the first file if the user uploads multiple images into a single field. If your document needs multiple images, design the form and the template for that workflow in advance, for example by using separate fields or another way of storing the extra files.

Is this plugin suitable for WooCommerce invoices and order emails?

For standard WooCommerce invoices and notifications, solutions built specifically around WooCommerce orders are usually a better fit. Crocoblock materials specifically note that WooCommerce has its own workflow for orders, payments, emails, and notifications. JetFormBuilder PDF Attachment makes the most sense when the document is created from a JetFormBuilder form, not from a standard store order.

What should I do if the form does not submit because of cache?

First separate the form issue from the PDF issue. If submission fails because of a token or security check, the Generate PDF action will never run. Exclude the form page from cache, clear the cache, check the validation settings, and try again. Do not disable security permanently without reviewing the consequences.

Do I need to write PHP code to configure the PDF?

For most workflows, no. The official approach is built around form fields, macros, the PDF template, post-submit actions, emails, form records, and media field settings. If the documentation does not confirm the hook or API you need, it is safer not to invent a PHP snippet and instead solve the task through the template, action conditions, or form structure.

When JetFormBuilder PDF Attachment Is the Right Choice

JetFormBuilder PDF Attachment is a strong choice if you need a document that appears immediately after a JetFormBuilder form submission and then participates in a clear workflow: sent by email, saved in a record, opened for the user, or used by an administrator to process the request. The best outcome does not come from simply installing the add-on. It comes from a careful chain: a well-designed form, a resilient template, correct macros, a tested Generate PDF action, the right delivery path, and troubleshooting that is ready when something fails.

If you are building your first document, start small: a test form, a simple template, one email, saving enabled, and one control submission. After that, add the image, action conditions, a download link, multiple branches, and more complex dynamic data. That order reduces risk and makes it much easier to understand exactly where an error appears.

Once the basic workflow is validated, you can get the WordPress version and move on to setup on a site copy or a test form. Do not push an untested PDF workflow directly into an important production form. First make sure the file is created, the email arrives, the record is saved, and the user sees only the document they are supposed to see.

By OceanTheme.org Editorial Team

 

You are not logged in to post comments.