From 9e8b404f91b76414b84ee227bfa8aa4b6c5c104e Mon Sep 17 00:00:00 2001 From: Nikola Petrov Date: Wed, 6 May 2026 19:49:35 +0200 Subject: [PATCH] setup exporting --- go-form-plugin/export/csv.php | 36 +++++++++++++ go-form-plugin/export/mcmahon.php | 36 +++++++++++++ go-form-plugin/export/opengoth.php | 36 +++++++++++++ go-form-plugin/export/pairgoth.php | 24 +++++++++ go-form-plugin/go-form-plugin.php | 60 +++++++++------------- go-form-plugin/templates/settings-page.php | 7 ++- 6 files changed, 162 insertions(+), 37 deletions(-) create mode 100644 go-form-plugin/export/csv.php create mode 100644 go-form-plugin/export/mcmahon.php create mode 100644 go-form-plugin/export/opengoth.php create mode 100644 go-form-plugin/export/pairgoth.php diff --git a/go-form-plugin/export/csv.php b/go-form-plugin/export/csv.php new file mode 100644 index 0000000..ddf6d28 --- /dev/null +++ b/go-form-plugin/export/csv.php @@ -0,0 +1,36 @@ +name : 'Unknown Form'; +$entries = go_form_get_entries($form_id); + +header('Content-Type: text/csv; charset=utf-8'); +header('Content-Disposition: attachment; filename="go-form-' . sanitize_title($form_name) . '-export.csv"'); + +$output = fopen('php://output', 'w'); +fputcsv($output, ['ID', 'First Name', 'Last Name', 'Country', 'Club', 'Rank', 'Email', 'EGD Number', 'Comment', 'Date Added']); + +foreach ($entries as $e) { + global $ranks; + fputcsv($output, [ + $e->id, + $e->first_name, + $e->last_name, + $e->country, + $e->club, + $ranks[$e->rank] ?? '', + $e->email, + $e->egd_number, + $e->comment, + $e->created_at + ]); +} + +fclose($output); \ No newline at end of file diff --git a/go-form-plugin/export/mcmahon.php b/go-form-plugin/export/mcmahon.php new file mode 100644 index 0000000..09ff11d --- /dev/null +++ b/go-form-plugin/export/mcmahon.php @@ -0,0 +1,36 @@ +name : 'Unknown Form'; +$entries = go_form_get_entries($form_id); + +header('Content-Type: text/csv; charset=utf-8'); +header('Content-Disposition: attachment; filename="go-form-' . sanitize_title($form_name) . '-export.csv"'); + +$output = fopen('php://output', 'w'); +fputcsv($output, ['ID', 'First Name', 'Last Name', 'Country', 'Club', 'Rank', 'Email', 'EGD Number', 'Comment', 'Date Added']); + +foreach ($entries as $e) { + global $ranks; + fputcsv($output, [ + $e->id, + $e->first_name, + $e->last_name, + $e->country, + $e->club, + $ranks[$e->rank] ?? '', + $e->email, + $e->egd_number, + $e->comment, + $e->created_at + ]); +} + +fclose($output); \ No newline at end of file diff --git a/go-form-plugin/export/opengoth.php b/go-form-plugin/export/opengoth.php new file mode 100644 index 0000000..b8405b4 --- /dev/null +++ b/go-form-plugin/export/opengoth.php @@ -0,0 +1,36 @@ +name : 'Unknown Form'; +$entries = go_form_get_entries($form_id); + +header('Content-Type: text/json; charset=utf-8'); +header('Content-Disposition: attachment; filename="go-form-' . sanitize_title($form_name) . '-export.csv"'); + +$output = fopen('php://output', 'w'); +fputcsv($output, ['ID', 'First Name', 'Last Name', 'Country', 'Club', 'Rank', 'Email', 'EGD Number', 'Comment', 'Date Added']); + +foreach ($entries as $e) { + global $ranks; + fputcsv($output, [ + $e->id, + $e->first_name, + $e->last_name, + $e->country, + $e->club, + $ranks[$e->rank] ?? '', + $e->email, + $e->egd_number, + $e->comment, + $e->created_at + ]); +} + +fclose($output); \ No newline at end of file diff --git a/go-form-plugin/export/pairgoth.php b/go-form-plugin/export/pairgoth.php new file mode 100644 index 0000000..743ad61 --- /dev/null +++ b/go-form-plugin/export/pairgoth.php @@ -0,0 +1,24 @@ +name : 'Unknown Form'; +$entries = go_form_get_entries($form_id); + +header('Content-Type: text/json; charset=utf-8'); +header('Content-Disposition: attachment; filename="go-form-' . sanitize_title($form_name) . '-export.tour"'); + +$output = fopen('php://output', 'w'); + +fwrite($output, "{}"); + + + + +fclose($output); \ No newline at end of file diff --git a/go-form-plugin/go-form-plugin.php b/go-form-plugin/go-form-plugin.php index e16d9cf..c2b5bf0 100644 --- a/go-form-plugin/go-form-plugin.php +++ b/go-form-plugin/go-form-plugin.php @@ -225,45 +225,33 @@ function go_form_delete_form() } add_action('admin_post_go_form_delete_form', 'go_form_delete_form'); -function go_form_export() +function go_form_export_csv() { - go_form_admin_action('export'); - if (!isset($_POST['value_one'])) { - wp_redirect(admin_url('admin.php?page=go-form-settings')); - exit; - } - - $form_id = intval($_POST['value_one']); - $form = go_form_get_form_by_id($form_id); - $form_name = $form ? $form->name : 'Unknown Form'; - $entries = go_form_get_entries($form_id); - - header('Content-Type: text/csv; charset=utf-8'); - header('Content-Disposition: attachment; filename="go-form-' . sanitize_title($form_name) . '-export.csv"'); - - $output = fopen('php://output', 'w'); - fputcsv($output, ['ID', 'First Name', 'Last Name', 'Country', 'Club', 'Rank', 'Email', 'EGD Number', 'Comment', 'Date Added']); - - foreach ($entries as $e) { - global $ranks; - fputcsv($output, [ - $e->id, - $e->first_name, - $e->last_name, - $e->country, - $e->club, - $ranks[$e->rank] ?? '', - $e->email, - $e->egd_number, - $e->comment, - $e->created_at - ]); - } - - fclose($output); + include_once 'export/csv.php'; exit; } -add_action('admin_post_go_form_export', 'go_form_export'); +add_action('admin_post_go_form_export_csv', 'go_form_export_csv'); + +function go_form_export_pairgoth() +{ + include_once 'export/pairgoth.php'; + exit; +} +add_action('admin_post_go_form_export_pairgoth', 'go_form_export_pairgoth'); + +function go_form_export_opengotha() +{ + include_once 'export/opengoth.php'; + exit; +} +add_action('admin_post_go_form_export_opengotha', 'go_form_export_opengotha'); + +function go_form_export_mcmahon() +{ + include_once 'export/mcmahon.php'; + exit; +} +add_action('admin_post_go_form_export_mcmahon', 'go_form_export_mcmahon'); // ========== Admin Page ==================== function go_form_admin_menu() diff --git a/go-form-plugin/templates/settings-page.php b/go-form-plugin/templates/settings-page.php index 168c149..1c16b77 100644 --- a/go-form-plugin/templates/settings-page.php +++ b/go-form-plugin/templates/settings-page.php @@ -42,7 +42,12 @@ if (isset($_GET['created'])) echo '
'; action_button('go_form_delete_form', 'Delete Form', 'Delete this form and ALL entries?', $selected_form_id); - action_button('go_form_export', 'Export to CSV', 'Confrm Export', $selected_form_id); + action_button('go_form_export_csv', 'Export to CSV', 'Confrm Export', $selected_form_id); + action_button('go_form_export_pairgoth', 'Export to Pairgoth', 'Confrm Export', $selected_form_id); + action_button('go_form_export_opengotha', 'Export to Opengoth', 'Confrm Export', $selected_form_id); + action_button('go_form_export_mcmahon', 'Export to McMahon', 'Confrm Export', $selected_form_id); + + echo '
'; $entries = go_form_get_entries($selected_form_id);