Réorganisation des questions de l'enquête sur la page d'impression du rapport d'enquête

Lorsque vous visualisez les résultats de votre enquête ou que vous imprimez un rapport d'enquête dans WPForms, vous pouvez remarquer que les questions n'apparaissent pas toujours dans le même ordre que dans le générateur de formulaires.

Ceci est dû au fait que WPForms utilise l'ID interne de chaque champ pour déterminer l'ordre des questions dans le rapport. Si vous avez ajouté, supprimé ou réorganisé des champs pendant les tests, les ID des champs peuvent ne plus correspondre à l'ordre visuel des questions dans votre formulaire.

Dans ce tutoriel, nous allons vous montrer comment réorganiser les questions de l'enquête en fonction de leur numéro à l'aide d'un simple extrait de code PHP.

Ajout de l'extrait de code

Utilisez l'extrait ci-dessous pour réorganiser les questions de la page Imprimer le rapport d'enquête de manière à ce qu'elles suivent l'ordre indiqué dans votre générateur de formulaires.

Si vous avez besoin d'aide pour ajouter du code personnalisé, veuillez consulter notre tutoriel sur l'ajout d'extraits de code.

/**
 * Reorder WPForms Survey Questions on the Print Survey Report page.
 */
function wpforms_reorder_survey_print_report() {
    // Check if we're on the Print Survey Report page.
    if ( isset( $_GET['page'], $_GET['view'], $_GET['print'] ) && 'wpforms-entries' === $_GET['page'] && 'survey' === $_GET['view'] && '1' === $_GET['print'] ) {
        ?>
        <script>
        (function($) {
            $(document).ready(function() {

                // Function to perform the reordering.
                function performReordering() {
                    var $container = $('#wpforms-survey-report');
                    if (!$container.length) return;

                    var $questions = $container.find('.question');
                    if (!$questions.length) return;

                    var questionsArray = [];

                    $questions.each(function(index) {
                        var $q = $(this);
                        var questionNumber = 9999; // Default high value
                        var $qNum = $q.find('.q-num');

                        if ($qNum.length) {
                            var qNumText = $qNum.text();
                            var match = qNumText.match(/Question\s+(\d+)/i);
                            if (match && match[1]) {
                                questionNumber = parseInt(match[1], 10);
                            }
                        }

                        questionsArray.push({
                            element: $q,
                            number: questionNumber,
                            originalIndex: index
                        });
                    });

                    questionsArray.sort(function(a, b) {
                        return a.number - b.number || a.originalIndex - b.originalIndex;
                    });

                    $questions.detach();
                    $.each(questionsArray, function(index, item) {
                        item.element.find('.q-num').text('Question ' + (index + 1));
                        $container.append(item.element);
                    });
                }

                performReordering();
            });
        })(jQuery);
        </script>
        <?php
    }
}
add_action( 'admin_print_footer_scripts', 'wpforms_reorder_survey_print_report' );

Lorsque vous ajoutez ce snippet à l'aide du plugin WPCode ou de toute autre méthode, veillez à définir l'emplacement du snippet sur Admin Only. Le code ne fonctionnera pas si l'emplacement est défini sur une autre option.

Et le tour est joué ! Les résultats de votre enquête apparaîtront désormais dans le même ordre logique que votre formulaire.