Version 1.1.0
Initial public release. Introduces the custom [multifile] field, per-form Pardot endpoint configuration, permanent file storage, and full security hardening.
- Custom multifile upload field — new
[multifile]and[multifile*]CF7 tag with drag-and-drop UI, file count limit, and per-file size limit options. - Accepted file types — JPG, JPEG, PNG, PDF, DOC, DOCX, XLS, XLSX validated by both file extension and actual MIME type using
wp_check_filetype_and_ext(). - Permanent file storage — uploaded files are copied to
wp-content/uploads/cf7-pardot-uploads/so Pardot URLs remain accessible indefinitely after submission. - Upload directory hardening —
.htaccessfile written on first use to block PHP, PHTML, PHAR, HTML, and SVG execution in the upload directory. - Per-form Pardot endpoint — each Contact Form 7 form stores its own Pardot Form Handler URL via a dedicated Pardot Settings tab in the CF7 form editor.
- Dynamic field mapping — all posted CF7 fields are sent to Pardot using field names as keys; CF7 internal fields are excluded automatically; multi-value fields are comma-joined.
- Email notification file URLs — the
[multifile]mail-tag in the CF7 Mail tab is replaced with permanent public URLs so the admin email contains clickable links. - Admin dashboard — step-by-step setup guide under Contact → Pardot Integration.
- Tag Generator integration — the
[multifile]tag is available from the CF7 tag generator with controls for name, file count limit, max file size, ID, and class. - CF7 dependency check — plugin prevents activation without CF7 and surfaces an admin notice when CF7 is deactivated.
- Nonce + capability check — endpoint URL save is protected by CF7's form-editor nonce and
wpcf7_edit_contact_formscapability. - Conditional asset loading — front-end CSS and JS are enqueued only on pages that render a form containing a
[multifile]field. - Pardot error tracking — non-2xx responses and network errors are stored in a transient for admin visibility.
- WordPress.org ready — GPLv2+ license, full output escaping, text domain
darwin-cf7-pardot-integration, POT file, and.distignorefor clean release zips.