Umordnung von Umfragefragen auf der Seite „Umfragebericht drucken“

Wenn Sie Ihre Umfrageergebnisse anzeigen oder den Umfragebericht in WPForms drucken, stellen Sie möglicherweise fest, dass die Fragen nicht immer in der gleichen Reihenfolge erscheinen, wie sie im Formular-Builder angezeigt werden.

Dies liegt daran, dass WPForms die interne Feld-ID jedes Feldes verwendet, um die Reihenfolge der Fragen im Bericht zu bestimmen. Wenn Sie während des Testens Felder hinzugefügt, entfernt oder neu angeordnet haben, stimmen die Feld-IDs möglicherweise nicht mehr mit der visuellen Reihenfolge der Fragen in Ihrem Formular überein.

In diesem Tutorial zeigen wir Ihnen, wie Sie die Umfragefragen anhand ihrer Fragennummer mit einem einfachen PHP-Snippet neu anordnen.

Hinzufügen des Code-Snippets

Verwenden Sie den folgenden Snippet, um die Fragen auf der Seite "Umfragebericht drucken" neu anzuordnen, sodass sie der im Formular-Builder angezeigten Reihenfolge folgen.

Wenn Sie Hilfe beim Hinzufügen von benutzerdefiniertem Code benötigen, lesen Sie bitte unser Tutorial zum Hinzufügen von Code-Snippets.

/**
 * 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' );

Stellen Sie beim Hinzufügen dieses Snippets mit dem WPCode-Plugin oder einer anderen Methode sicher, dass der Speicherort des Snippets auf Nur Admin gesetzt ist. Der Code funktioniert nicht, wenn der Speicherort auf eine andere Option gesetzt ist.

Und das ist alles! Jetzt werden Ihre Umfrageergebnisse in der gleichen logischen Reihenfolge wie Ihr Formular angezeigt.