Reordenar Perguntas de Pesquisa na Página de Relatório de Pesquisa Impressa

Ao visualizar os seus Resultados do Inquérito ou Relatório de Impressão do Inquérito no WPForms, poderá notar que as perguntas nem sempre aparecem na mesma ordem em que estão no construtor de formulários.

Isto acontece porque o WPForms utiliza o ID interno de cada campo para determinar a ordem das perguntas no relatório. Se adicionou, removeu ou reorganizou campos durante os testes, os IDs dos campos podem já não corresponder à ordem visual das perguntas no seu formulário.

Neste tutorial, vamos mostrar-lhe como reordenar as perguntas do inquérito pelos seus números utilizando um simples trecho de PHP.

Adicionar o Excerto de Código

Utilize o trecho abaixo para reordenar as perguntas na página do Relatório de Impressão do Inquérito para que sigam a ordem apresentada no seu construtor de formulários.

Se precisar de ajuda para adicionar código personalizado, consulte o nosso tutorial sobre adicionar trechos de código.

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

Ao adicionar este trecho utilizando o plugin WPCode ou qualquer outro método, certifique-se de que define a Localização do trecho como Apenas Admin. O código não funcionará se a localização for definida para quaisquer outras opções.

E é tudo! Agora os seus resultados do inquérito aparecerão na mesma ordem lógica do seu formulário.