Catalogue de formation Digiforma

Description

Automatically synchronize your Digiforma training catalog and allow your visitors to register directly from your WordPress site.

Main Features

  • Automatic synchronization of training programs, categories, sessions, and instructors from the Digiforma API
  • Custom post type “digiforma” to manage your training programs
  • Training category taxonomy to organize your programs
  • Training sessions stored in program posts
  • Secure registration forms for:
    • Pre-registrations for inter sessions (with session selection)
    • Requests for intra sessions (in-company training)
    • Requests for custom sessions (personalized training)
  • Multi-layer anti-spam protection (honeypot, rate limiting, Akismet, temporal validation)
  • Customizable templates for displaying archives and training details
  • Appearance customization (colors, images, text) from WordPress administration
  • Automatic cleanup of obsolete content
  • Integrated SEO optimizations (JSON-LD Course, FAQ, breadcrumbs)
  • Gutenberg blocks for Full Site Editing (FSE) themes
  • Daily automatic catalog synchronization
  • Signed form URLs (HMAC) for secure context handling

Usage

Use the [digiforma_form] shortcode to display the registration form.

Shortcode attributes:
* style="catalog" — alternate visual style for the form page (since 1.6.1)

Form context is read from URL parameters (type, formation, session) and must include a valid df_sig HMAC signature generated by the plugin. Supported type values: inter, intra, tailored (custom/sur-mesure).

Use [digiforma_formations] to display a list of training programs. Attributes: title, ids (comma-separated Digiforma program IDs), notitle (true to hide the title).

For FSE themes, use the Digiforma Gutenberg blocks (formation-single, formation-card, archive-view, archive-filters).

Templates can be overridden in your theme to customize the display.

Developer hooks

Themes and custom plugins can extend Digiforma with WordPress actions and filters.

Registration form (inter sessions)

  • digiforma_form_session_option_label — Filter the label of one session in the dropdown.
    • Parameters: $label (string), $session (array), $postId (int)
    • Return: string (escaped again on output; do not include HTML)
  • digiforma_form_session_options — Filter the full list of session options (session id => label).
    • Parameters: $options (array), $postId (int), $sessions (array)
    • Return: array

Example in a theme functions.php:

add_filter( 'digiforma_form_session_option_label', function ( $label, $session, $post_id ) {
    $name = isset( $session['name'] ) ? (string) $session['name'] : '';
    return $name !== '' ? $name : $label;
}, 10, 3 );<h3>GraphQL client</h3>

* digiforma_graphql_client — Replace the Digiforma GraphQL client instance used on form submission.

Spam protection

  • digiforma_spam_min_submission_time — Minimum seconds before a submission is accepted (int).
  • digiforma_spam_max_submission_time — Maximum seconds before a submission is rejected (int).
  • digiforma_spam_suspicious_email_domains — List of suspicious email domains (array).
  • digiforma_spam_suspicious_keywords — List of suspicious keywords (array).
  • digiforma_spam_strict_referrer_check — Enable strict referrer checking (bool).
  • digiforma_spam_require_javascript — Require JavaScript to submit (bool).
  • digiforma_spam_score_threshold — Spam score threshold (int).

Rate limiting

  • digiforma_rate_limit_max_attempts — Maximum submission attempts (int).
  • digiforma_rate_limit_time_window — Rate limit time window in seconds (int).

Templates

  • digiforma_render_single_in_block — Return true to render the single formation template inside a block wrapper (bool).

Actions on archive and single templates include: digiforma_archive_before, digiforma_archive_after, digiforma_archive_after_title, digiforma_archive_before_loop, digiforma_archive_after_loop, digiforma_archive_empty, digiforma_archive_loop_item_before, digiforma_archive_loop_item_after, digiforma_single_before, digiforma_single_after_header, digiforma_single_formation_page_after_video, digiforma_single_formation_page_after_sessions, digiforma_single_formation_page_after_content.

Synchronization

  • digiforma_sync_programs_completed — Fired after program sync ($result, $forceUpdate).
  • digiforma_sync_sessions_completed — Fired after session sync ($result, $forceUpdate).
  • digiforma_sync_categories_completed — Fired after category sync ($result, $cleanupImmediately).
  • digiforma_sync_instructors_completed — Fired after instructor sync ($result, $forceUpdate).
  • digiforma_auto_sync_failed — Fired when automatic sync fails ($exception).

Administration

  • digiforma/admin/before_main_page — Before the main Digiforma settings page is rendered.
  • digiforma/admin/after_main_page_header — After the main settings page header.

SEO

  • digiforma_course_json_ld — Filter the Course JSON-LD output for a formation post.
    • Parameters: $jsonLd (array|null), $postId (int)
    • Return: array|null

Security

The plugin implements multiple layers of protection:
* CSRF protection with WordPress nonces
* Anti-bot honeypot
* Rate limiting by IP and email
* Advanced spam detection
* Complete validation and sanitization of all data

External Services

This plugin connects to external services to provide its functionality. Below is detailed information about each service used.

Digiforma API

The extension synchronizes training content and manages registrations.

  • What the service is and what it is used for: Digiforma is a training management platform that allows organizations to organize and manage their training catalog. The Digiforma plugin is used to:

    • Synchronize training programs, categories, training sessions, and instructors from Digiforma to WordPress.
    • Validate the license key during plugin configuration.
    • Submit pre-registration requests for training sessions (inter, intra, and custom sessions).
  • What data is sent and when:

    • During synchronization (manual or automatic): The plugin sends authenticated queries containing the license key to retrieve training data. No personal user data is sent during synchronization.
    • During license key validation: The plugin sends a test query with the license key to verify API access.
    • During form submission: When a visitor submits a registration form, the plugin sends the following personal data to create a registration in Digiforma:
    • For individuals:
      • First name.
      • Last name.
      • Email.
      • Phone number.
      • Address.
      • Postal code.
      • City.
      • Country.
      • Optional: custom fields configured in Digiforma.
    • For organizations:
      • Company name.
      • Company email.
      • Phone number.
      • SIRET number.
      • Address.
      • Postal code.
      • City.
      • Country.
      • Optional: custom fields configured in Digiforma.
    • Additional context:
      • Training program ID.
      • Session ID (for inter sessions).
      • Number of learners.
      • Form type.
  • Service provider: Digiforma

  • Terms of service and Privacy policy: https://app.digiforma.com/tos

Support

For any questions or issues, consult the plugin readme (Developer hooks section) or contact Digiforma support.

Blocks

This plugin provides 4 blocks.

  • Digiforma Archive Filters Filtres archive Digiforma compatibles Query Loop.
  • Digiforma Formation Card Carte formation Digiforma pour boucles Query Loop et templates archive FSE.
  • Digiforma Archive View Switch de vue archive Digiforma en grille ou en liste.
  • Digiforma Formation Single Rendu serveur de la fiche formation Digiforma pour les templates FSE.

Installation

  1. Install and activate the plugin from the WordPress repository
  2. Go to Digiforma > Settings
  3. Enter your Digiforma license key (obtained from app.digiforma.com)
  4. Configure the form and thank-you pages
  5. Click “Synchronize catalog” to import your training programs

Reviews

ମାର୍ଚ୍ଚ 23, 2026
Un plugin génial, avec en plus une assistance rapide et professionnelle. 5/5 !
ଫେବୃୟାରୀ 17, 2026
C'est super quand on a un catalogue Digiforma de pouvoir l'afficher directement sur son site. On profite de tout le référencement que nous apporte les contenus et il n'y a pas besoin de tout rentrer de nouveau ou de mettre à jour.
Read all 2 reviews

Contributors & Developers

“Catalogue de formation Digiforma” is open source software. The following people have contributed to this plugin.

Contributors

“Catalogue de formation Digiforma” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Catalogue de formation Digiforma” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

[1.7.3] – 2026-09-17

  • Display only ongoing sessions

[1.7.2] – 2026-09-10

  • Paginate Digiforma training-session sync (page size 999) so all sessions are fetched, not only the first page

[1.7.1] – 2026-09-09

  • Sync sessions with Digiforma excludeFromCatalog (skip sessions marked to exclude from the catalog)
  • Fallback to API startDate when a session has an empty dates[] array
  • Live session places / capacity: display remaining seats when Digiforma provides capacity data
  • Show “session full” state on the registration form and surface Digiforma API errors next to the generic failure message
  • Display places only when Digiforma exposes seat data; remove seat count from the single sidebar when not applicable
  • Fix place counting and placeName resolution for sessions
  • Show next session on cards with a “+ X sessions” link to the formation page
  • Remove session price display where it was incorrect
  • Featured trainings and toggle filters on the catalog
  • Archive SEO content block
  • List view styling improvements for the archive
  • Diploma field on single formation and in filters
  • Multiple documents support on the single formation page
  • PDF / catalog document link on programs
  • Reposition learning objectives on the single page
  • Crop images on formation cards
  • French month labels for the “edited” date on the single page
  • Fix review rate display in the single header
  • Fix category permalinks
  • Recreate WordPress categories deleted manually during the next sync
  • Reassign category terms to formations even when program content is unchanged
  • Keep cents on formation prices (two decimals when the amount is not a whole number)
  • Fix trainee required fields, profile/trainee inputs display, and number fields
  • Improve form completion message icon and error message background color
  • Update translations
  • Documentation and README updates

[1.6.3] – 2026-07-07

  • Create a filter for sessions name
  • Change color picker
  • Add required mention at the bottom of the form
  • Fix remove programs that are no more in Digiforma
  • Add field list on message error
  • Fix SEO JSON and add Course Schema
  • Use API config for base fields
  • Add all date for sessions in meta
  • Fix review rate on single header

[1.6.2] – 2026-06-16

  • Fix synchro for sessions
  • Add hooks comments
  • Fix line breaks errors

[1.6.1] – 2026-05-29

  • Add trainee in register form
  • Create a second style for form with shortcode attribute style=”catalog”
  • Add a force sync button to force replace all meta un programms
  • Adding hook after sync action

[1.5.3] – 2026-05-04

  • Fix rewrite achrive with front
  • Fix responsive archive for IOS
  • Add line breaks on single accessibility text

[1.5.2] – 2026-04-25

  • Hotfix form open div
  • Add line break in mentoring text

[1.5.1] – 2026-04-14

  • Hotfix single sidebar mobile

[1.5.0] – 2026-04-09

  • Add compatibility with FSE
  • Fix bullets in the training card list
  • Add advanced settings for fixed header
  • Change single header meta design
  • Add created-at / updated-at display
  • Force permalink rules
  • Change sidebar order on mobile

[1.4.1] – 2026-03-24

  • Hotfix for duplicate fields in forms

[1.4.0] – 2026-03-20

  • For the registration form: fetch fields from Digiforma
  • Design changes for next sessions
  • Fix price display
  • Display comment for score in training detail page
  • Add a minimal size for font
  • Add support for half hour/day
  • Do not display empty cards on training detail page

[1.3.1] – 2026-02-18

  • Add French translation
  • Add missing translations for Spanish and German
  • Edit labels for administration page to make it clearer
  • Change color settings
  • Add an error message when URL identifiers are the same
  • Fix max capacity when set to false

[1.2.1] – 2026-02-12

  • Add VAT exempted option to display VAT on price
  • Fix session place
  • Fix Yoast title compat
  • Change banner header
  • Fix admin white screen error
  • Update categories and formations title when sync
  • Remove “à partir de” before price
  • Change position of video section in single formation template
  • Display three lines for title in card format
  • Add space after price for readability
  • Hide price when it’s equal to 0
  • Add satisfaction rate on single formation template

[1.1.2] – 2025-12-29

  • Fix sanitization of inputs
  • Fix escaping of outputs
  • Fix Nonces and User Permissions Before Processing Requests

[1.1.1] – 2025-12-16

  • Fix header informations

[1.1.0] – 2025-12-16

  • Add German translations (de_DE)
  • Add banner image for training categories

[1.0.0] – 2025-12-05

  • Initial release