Atelier Professionnel PHP MySQL WordPress Elementor TablePress Travail individuel

PicDuMidiBoutique

Développement d'un tableau de bord d'aide à la décision pour la boutique du Pic du Midi de Bigorre — site WordPress évoluant progressivement de statique à dynamique, interactif, puis interactif avancé avec génération de PDF.

Outils utilisés

PHP — fonctions et codes courts WordPress
MySQL / PhpMyAdmin — requêtes et indicateurs
WordPress — CMS, extensions, pages, CSS
Elementor — constructeur de pages
TablePress — création de tableaux d'indicateurs
DomPDF — génération de rapports PDF
WampServer — serveur local de développement
GanttProject — planification et diagrammes de Gantt

Contexte

Initialement dédié à des activités scientifiques centrées sur l'astronomie et la météorologie, le Pic du Midi de Bigorre a connu en 1990 de graves difficultés financières allant jusqu'à menacer sa fermeture.

Pour sauvegarder ce patrimoine, le site a ouvert ses portes aux touristes avec la mise en place d'une billetterie pour le musée, d'un restaurant et d'une boutique souvenirs. La communication s'appuie sur un site Web et les offices de tourisme et syndicats d'initiative de la région.

Dans ce cadre, l'objectif de cet atelier était de développer un outil d'aide à la décision pour la boutique du Pic — un tableau de bord avec les principaux indicateurs à suivre, intégré dans un site WordPress évoluant en 4 missions progressives.

Mission & Problématiques

Comment permettre aux responsables de la boutique de visualiser facilement les indicateurs clés (visiteurs, chiffre d'affaires, moyennes) sans accès direct à la base de données, et d'interagir avec ces données en temps réel ? Il fallait concevoir un site WordPress progressivement enrichi — de la page statique jusqu'à la génération automatique de PDF — via des fonctions PHP connectées à MySQL et exposées par des codes courts.

Missions réalisées

  • Mission 1 — Site statique — création de la page « Meilleure Journée » avec tableau d'indicateurs (TablePress), barre latérale personnalisée (top 3 jours, top 3 articles, widget météo my-meteo.com), intégration Elementor
  • Mission 2 — Site dynamique — création de l'extension WordPress accesbd.php, développement des fonctions PHP (fct_getNbVisiteurs(), fct_getCaDuJour(), fct_getCaMoyenParJour(), fct_getCaMoyenParVisiteur()), codes courts associés, smiley dynamique de satisfaction, CSS additionnel avec animation clignotante
  • Mission 3 — Site interactif — formulaire HTML de saisie de date, fonctions PHP paramétrées par date (fct_getDateSaisie(), fct_getTempsDUneDate(), fct_nbVisiteursDUneDate(), fct_caTotalDUneDate()…), nouveau tableau TablePress « Indicateurs de cette journée », ajout dans le menu sous la catégorie « Zoom… »
  • Mission 4 — Site interactif avancé — génération de rapport PDF avec la bibliothèque DomPDF (fct_getTableauHier(), fct_getTableauHierEnPdf()), intégration du logo, en-tête et pied de page dans le PDF, smiley encodé en base64 pour l'export (fct_getSmiley2())

Extraits de code

Connexion PDO à la base de données (extension accesbd.php)

/** * Retourne l'objet connexion PDO à la base de données * @return PDO $connexion */ function fct_getConnexion() { try { $connexion = new PDO('mysql:host=localhost;dbname=champiau_bdboutiquePic', 'consultBD', 'pwdConsultBD'); $connexion->exec('SET NAMES utf8'); return $connexion; } catch (PDOException $e) { print "Erreur : " . $e->getMessage(); die(); } }

Récupération de la date saisie dans le formulaire (Mission 3)

/** * Récupère et retourne la date transmise par le formulaire * @return string date saisie ou "Date non renseignée." */ function fct_getDateSaisie() { if (isset($_POST['dateSouhaitee'])) $uneDate = $_POST['dateSouhaitee']; else $uneDate = "Date non renseignée."; return $uneDate; } /** code court [dateSaisie] associé à la fonction fct_getDateSaisie */ add_shortcode('dateSaisie', 'fct_getDateSaisie');

Captures d'écran

Formulaire de filtrage — capture à ajouter
Tableau d'indicateurs — capture à ajouter
Résultats par catégorie — capture à ajouter
Graphique chiffre d'affaires — capture à ajouter

Remplacez les placeholders par les vraies captures dans le HTML.

Résultats & Apprentissages

4
Missions progressives réalisées
+10
Fonctions PHP développées
PDF
Rapport généré avec DomPDF

Cet atelier m'a permis de maîtriser la création d'extensions WordPress, le développement de fonctions PHP connectées à MySQL via PDO, et l'utilisation de codes courts. En progressant du site statique vers un site interactif avancé, j'ai acquis une vision complète du développement full-stack côté CMS : requêtes SQL (agrégations, filtres sur dates), gestion du formulaire POST, génération de PDF avec DomPDF, styles CSS additionnels et planification par diagramme de Gantt.

Les indicateurs affichés (nombre de visiteurs, CA total, montant moyen par vente, CA moyen par visiteur) proviennent directement de la base de données et s'actualisent en temps réel selon la date sélectionnée. Exemple de valeurs réelles testées pour le 02/03/2025 : 106 visiteurs, 841 € de CA total, 36,57 € moyen par vente, 7,93 € par visiteur.

Compétences BTS SIO validées

B1.3 Développer la présence en ligne de l'organisation
B1.1 Gérer le patrimoine informatique (sauvegardes)
B1.4 Travailler en mode projet
Atelier précédent
Voir les compétences
Atelier suivant
Journée d'intégration - Tickets