L'objectif de base était :

  • Avoir une interface complétement adaptable pour l'inscription et la gestion des utilisateurs
  • Avoir la possibilité d'avoir une approbation par l'administrateur pour les nouveaux comptes
  • Pouvoir gérer des groupes de membres avec des niveaux d'accès différents
  • Pouvoir restreindre des articles uniquement aux membres approuvés
  • Publier des événements pouvant être payants (postfinance) et récurrents
  • Pouvoir restreindre les événements aux membres inscrits
  • Publier des fichiers et les restreindre aux membres


Le projet était intéressant et sa complexité résidait en le fait qu'aucun plugin ne permet de faire tout ceci nativement, il a donc fallu en choisir plusieurs :

  • UserPro pour la gestion des utilisateurs et de restriction des contenus
  • Events Manager Pro pour la gestion des événements
  • WP-Filebase pour la gestion des fichiers
  • Html2pdf (librairie php) afin de générer les factures en pdf dès qu'une transaction avait eu lieu


À ceci s'est également ajouté

  • Un addon de payment pour UserPro
  • WP Fullcalendar pour améliorer l'affichage frontend des événements avec un calendrier
  • Advanced Custom Fields pour ajouter des champs facilement et à la portée des éditeurs de contenu


Nous avons également exploré la piste d'autres plugins qui ne nous ont finalement pas convenu :

  • S2member
    Trop cher pour les possibilités que nous lui demandions et trop orienté contenu payant, ce n'était pas ce que nous cherchions et au vu des démos, nous lui avons préféré l'interface plus simple et la gestion des utilisateurs plus abordable de UserPro
  • WP member
    L'exact opposé de celui du dessus, bien que gratuit, trop simpliste, cela nous aurait demandé trop de temps de l'adapter aux besoins du client
  • WP customer area
    C'était l'entre-deux, nous avons hésité et finalement pris UserPro, plus orienté expérience utilisateur et intégration sur une seule page avec des formulaires en ajax responsive et déjà pré-formatés.


Après avoir exploré les différentes possibilités que nous offraient ces plugins et comment ils interagissaient entre eux, nous avons pu nous mettre au travail, quelques difficultés se sont présentée :

Tous ces plugins devaient impérativement avoir leur contenu masqué aux utilisateurs non approuvés, ce qui, dans le cas de Events Manager, n'a pas été possible nativement et il a fallu coupler des fonctionnalités de UserPro afin de masquer les événements au public et d'avoir ces accès restreints.

Beaucoup de fonctionnalités étaient payantes pour certains groupes et gratuites pour d'autres, il a fallu intégrer et coupler les passerelles de paiement des différents plugins afin qu'aucun conflit ne survienne tout en gardant le processus le plus sécurisé possible.

L'inscription s'est retrouvée être annuelle et la gestion de la récurrence native était peu fiable et trop simpliste, la mise en place d'un CRON journalier et différentes méthodes de calcul des dates ont dû être intégrés, un mail de rappel un mois avant la fin de l'inscription a également été mis en place.

La génération des pdf des factures et un visa a dû être mis en place à la demande du client, les pdf sont générés lors de la visite sur la page, ainsi le serveur ne s'encombre pas de documents si le destinataire n'est pas intéressé par sa facture et le mail envoyé est ainsi beaucoup plus léger.

L'inscription native ne gérait pas les aspects définis par le client, il a fallu développer un choix de centre d'intérêts qui définissait le groupe et les rôles dans lequel l'utilisateur allait se trouver, un système de codes qui permettait aux partenaires et collaborateurs de ne pas payer leur inscription et avoir un compte activé sans passer par l'interface de paiement, afficher/masquer des champs selon les choix des utilisateurs, etc... Cela a demandé des modifications assez lourdes du code natif et des interactions entre les différents plugins.

Evidemment les habituelles correction des erreurs d'affichage, les adaptations graphiques et le responsive ont pris du temps mais n'ont pas posé plus de problème qu'habituellement, c'est un service compris dans tous les devis que nous proposons et dans lequel nous sommes devenus très efficaces au fil des différentes problématiques que nous avons rencontrées.

Finalement tous les objectifs du projet ont été atteints :

  • Inscription payante par postfinance, renouvelable tous les ans, avec un mail de rappel à 30 jours avant la fin de son abonnement. Gratuite pour les collaborateurs et les partenaires. Choix d'intérêts définissant le ou les groupes d'utilisateurs auxquels l'inscrit sera rattaché.
  • Inscription à des formations / événements, payables par postfinance et par virement bancaire, gratuit pour les collaborateurs. Possibilité d'obtenir une lettre de demande de visa en cas d'inscription hors de l'UE. Inscriptions limitables à certains groupes d'utilisateurs, réglable pour chaque événement. Gestion simplifiée dans l'administration à l'aide de champs personnalisés afin de garder une expérience utilisateur la moins complexe possible.
  • Génération de facture lors de chaque transaction, avec la possibilité d'y ajouter l'adresse de facturation d'une entreprise.
  • Centralisation de la gestion des fichiers avec catégories adaptables et droits modifiables sur tous les fichiers et catégories indépendamment.


En conclusion, les bénéfices d'une installation personnalisée comme celle-ci, en profitant de la structure très souple des plugins de Wordpress, peu chers et généralement nativement bien codés, peuvent de très loin dépasser les menus tracas que demande l'adaptation des solutions existante, tout en optimisant les temps de production et donc les coûts et tout en ayant au final un service adapté sur mesure pour la demande du client.

Cela demande de solides connaissances en programmation et une compréhension profonde du code, mais le gain de temps pour le client est toujours appréciable, autant sur la facture que sur la date de mise en production.