Church Bulletin Publisher
by St. Mary's and St. Peter the Apostle Parishes · github.com/peclark1/bulletin-upload-wordpress-plugin
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/peclark1/bulletin-upload-wordpress-plugin/archive/refs/heads/main.zipReadme
Church Bulletin Publisher
A small WordPress plugin for assembling weekly church bulletins without giving the secretary WordPress or hosting access.
The weekly workflow is deliberately simple:
- The secretary saves the weekly PDFs into the pre-created Google Drive folder.
- An administrator chooses that folder, or selects one or more PDFs directly, and enters the bulletin date in WordPress.
- The plugin builds a private PDF preview from the front cover, weekly pages, inserts, and back cover.
- The administrator reviews the exact merged PDF.
- The administrator may publish to the isolated test area or explicitly confirm a production publication.
- The live bulletin list is generated by shortcode.
Production workflow — version 0.2
Production publishing writes approved PDFs to:
wp-content/bulletins/YYYY/MMDDYYbulletin.pdf
The production button is intentionally separate from Publish to Test Area. A live publication requires both a confirmation checkbox and a browser confirmation dialog. The server re-verifies the reviewed preview's SHA-256 before writing anything live.
Before the first production publication, the plugin automatically makes a protected snapshot of the existing wp-content/bulletins tree under:
wp-content/bulletin-publisher-private/live-backups/
If a live bulletin with the same date already exists, the old PDF is copied to protected replacement-backup storage before it is replaced. Production publications, backup events, and failures are appended to:
wp-content/bulletin-publisher-private/audit/production-audit.jsonl
The existing public Bulletins page is not edited automatically. Replace its manual bulletin table with:
[church_bulletins]
only when you are ready to cut over the listing page.
Test area
The existing test workflow remains available and writes only to:
wp-content/uploads/bulletin-publisher-test/YYYY/MMDDYYbulletin.pdf
Activation creates a draft page named Bulletin Publisher Test containing:
[church_bulletins mode="test"]
This keeps test publications isolated from the live bulletin tree.
Requirements
- WordPress 6.2 or later
- PHP 7.4 or later
No server PDF program is required. When qpdf or pdfunite is unavailable, the bundled MIT-licensed pdf-lib 1.17.1 library assembles the bulletin in the administrator's browser. The finished preview is uploaded in small authenticated chunks, avoiding shared-host request-size limits. qpdf or pdfunite is still used automatically when available.
Install / upgrade
- Install the plugin ZIP in WordPress and activate it.
- Open Bulletin Publisher in the administrator menu.
- Confirm the saved front and back cover templates are still present.
- Create a bulletin preview and review the exact PDF.
- Use Publish to Test Area when you want another isolated test.
- For a real bulletin, check the production confirmation box and click Publish LIVE Bulletin.
- On the first live publication, confirm the screen reports that the initial live-tree backup has been created.
- Verify the direct live PDF URL.
- Replace the existing Bulletins page's manual table with
[church_bulletins]and verify the public listing.
Verified sample structure
The August 16, 2026 printer PDF contains five letter-size pages:
- Static front cover
- Weekly page
- Weekly page
- Weekly page
- Static back cover
Reconstructing it from the supplied front cover, pages 2–4, and supplied back cover produced identical rendered pages. That establishes the merge rule:
front cover + weekly pages + inserts + back cover
Shortcode
- Live listing:
[church_bulletins] - Test listing:
[church_bulletins mode="test"] - Limit rows:
[church_bulletins limit="20"]