Great West Life administered a group benefits plan for Tim Hortons franchise owners and their employees across Canada. The enrollment platform was built on WordPress, with a custom data model that stored two distinct record types: employers (Tim Hortons franchise owners) and employees. Each employer record tracked the franchise store number, payroll schedule, PAD banking details, the plan administrator contact, and the language preference for bilingual communications. Each employee record tracked the payroll ID, date of birth, annual earnings, store assignment, and enrollment status. Together, these two post types formed the core HR dataset driving a national benefits administration program.
Working with Ethan Hinson at Blue Tent Marketing, I co-built a configurable WordPress export plugin that lets administrators select any registered custom post type, choose which fields to include (standard WordPress fields, custom meta fields in Types/CCTM format, or taxonomy terms), and export the full dataset as a named CSV file streamed directly to the browser. Column headers are mapped from raw field keys to human-readable labels - so a field stored as wpcf-payroll-id appears in the export as "Payroll ID", and a field stored as wpcf-annual-earnings appears as "Annual Earnings". No manual header editing required.
The plugin was designed to be genuinely reusable. The post type and field list are configured through the WP admin settings page - nothing is hardcoded. When Great West Life needed to export employer records with a different field set, or export employee records independently, those were configuration changes, not code changes. The same plugin handled both CPT exports without modification.
The CSV is streamed directly to the browser via php://output with correct Content-Disposition headers, so the download begins immediately without writing any intermediate file to the server. For a benefits administration platform where HR data exports may include thousands of employee records, avoiding temporary server-side file storage was both a performance and a security consideration.
The plugin was also submitted to WordPress.org under both contributors (ethanhinson and dejanmarkovic), making it available to the broader WordPress community as a reusable data export utility.