Neuordnung der Umfragefragen auf der Seite Umfragebericht drucken

Wenn Sie Ihre Umfrageergebnisse anzeigen oder drucken Umfragebericht in WPForms, können Sie feststellen, dass die Fragen nicht immer in der gleichen Reihenfolge wie sie in der Form Builder zu tun.

Dies geschieht, weil WPForms die internen Feld-IDs der einzelnen Felder verwendet, um die Reihenfolge der Fragen im Bericht zu bestimmen. Wenn Sie beim Testen 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 mit einem einfachen PHP-Snippet die Umfragefragen nach ihrer Fragennummer neu anordnen können.

Hinzufügen des Codeschnipsels

Verwenden Sie das folgende Snippet, um die Fragen auf der Seite Umfragebericht drucken so anzuordnen, dass sie der in Ihrem Formularersteller angezeigten Reihenfolge entsprechen.

Wenn Sie Hilfe beim Hinzufügen von benutzerdefiniertem Code benötigen, lesen Sie bitte unsere Anleitung 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' );

Wenn Sie dieses Snippet mit dem WPCode-Plugin oder einer anderen Methode hinzufügen, stellen Sie sicher, dass der Speicherort des Snippets auf Nur für Administratoren eingestellt ist. Der Code funktioniert nicht, wenn der Speicherort auf eine andere Option eingestellt ist.

Und das war's! Jetzt erscheinen Ihre Umfrageergebnisse in der gleichen logischen Reihenfolge wie Ihr Formular.