"Homegrade Stats", "label" => "Homegrade Datas", "callback" => "homegrade_stats_option_page", "permission" => "edit_posts");
return $menu_items;
}
function homegrade_stats_option_page()
{
?>
Exports de données Homegrade
Formulaire de commande
des brochures papier
"active");
$sorting = array();
$paging = array(
'offset' => 0,
'page_size' => 9000,
);
$entries = GFAPI::get_entries($form_id, $search_criteria, $sorting, $paging);
if (is_wp_error($entries)) {
wp_die('Erreur lors de la récupération des données du formulaire.');
}
$output_formatted_entries = array();
foreach ($entries as $key => $entry) {
// $clientFirstName = $entry['3'];
// $clientLastName = $entry['2'];
$companyType = $entry['7'];
$zipCode = $entry['9.5'];
$userLanguage = strtoupper($entry['27']) ?? null;
$synthesePrimes = isset($entry['24']) ? unserialize($entry['24']) : [];
$brochures = isset($entry['25']) ? unserialize($entry['25']) : [];
$autrePublications = isset($entry['26']) ? unserialize($entry['26']) : [];
$explodedEntryDocuments = array_merge($synthesePrimes, $brochures, $autrePublications);
foreach ($explodedEntryDocuments as $key => $document) {
$document_id_fr = $document['id_fr'] ?? null;
$document_quantity_fr = $document['quantity_fr'] ?? null;
$document_id_nl = $document['id_nl'] ?? null;
$document_quantity_nl = $document['quantity_nl'] ?? null;
if (!$document_quantity_fr && !$document_quantity_nl) {
continue;
}
if ($document_quantity_nl) {
$thematique = getPostMainThematique($document_id_nl)->name ?? '';
$document_formatted_order_nl = [
'publication' => $document_id_nl ? get_the_title($document_id_nl) : $key,
'quantity' => $document_quantity_nl,
'document_language' => 'NL',
'thematique' => $thematique,
'brochureID' => $document_id_nl,
'company_type' => $companyType,
'zipCode' => $zipCode,
'userLanguage' => $userLanguage,
];
array_push($output_formatted_entries, $document_formatted_order_nl);
}
if ($document_quantity_fr) {
$thematique = getPostMainThematique($document_id_fr)->name ?? '';
$document_formatted_order_fr = [
'publication' => $document_id_fr ? get_the_title($document_id_fr) : $key,
'quantity' => $document_quantity_fr,
'document_language' => 'FR',
'thematique' => $thematique,
'brochureID' => $document_id_fr,
'company_type' => $companyType,
'zipCode' => $zipCode,
'userLanguage' => $userLanguage,
];
array_push($output_formatted_entries, $document_formatted_order_fr);
}
}
}
// Définir le nom du fichier CSV
$filename = 'order_data_' . date('Ymd_His') . '.csv';
// Ouvrir un fichier CSV en mode écriture
$file = fopen($filename, 'w');
if ($file === false) {
wp_die('Erreur lors de la création du fichier CSV.');
}
// Ajouter les en-têtes du CSV
fputcsv($file, ['Publication', 'Quantité', 'Langue de la publication', 'Thématique', 'ID de la brochure', 'Type d\'organisme', 'Code Postal', 'Langue de l\'utilisateur']);
// Boucler sur chaque entrée formatée et l'écrire dans le CSV
foreach ($output_formatted_entries as $entry) {
fputcsv($file, $entry);
}
// Fermer le fichier
fclose($file);
// Télécharger le fichier CSV
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename="' . $filename . '"');
readfile($filename);
// Supprimer le fichier après téléchargement
unlink($filename);
exit();
}