HEX
Server: Apache/2.4.65 (Debian)
System: Linux web6 5.10.0-36-amd64 #1 SMP Debian 5.10.244-1 (2025-09-29) x86_64
User: innocamp (1028)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/cedarbrk/public_html/wp-content/plugins/ninja-tables/app/Hooks/Handlers/AjaxHandler.php
<?php

namespace NinjaTables\App\Hooks\Handlers;

use NinjaTables\Framework\Support\Arr;

class AjaxHandler
{
    public function registerAjaxRoutes()
    {
        $validRoutes = array(
            'get-all-data' => 'getAllData',
        );

        $requestedRoute = esc_attr($_REQUEST['target_action']);

        if (isset($validRoutes[$requestedRoute])) {
            $this->{$validRoutes[$requestedRoute]}();
        }

        wp_die();
    }

    public function getAllData()
    {
        if (!isset($_SERVER['HTTP_REFERER'])) {
            wp_send_json_error([
                'message' => 'You are not allowed to access this page directly.',
            ], 400);
        }

        $tableId = intval(Arr::get($_REQUEST, 'table_id'));
        do_action('ninja_table_doing_ajax_table_data', $tableId);
        $defaultSorting = sanitize_text_field(Arr::get($_REQUEST, 'default_sorting'));
        $tableSettings  = ninja_table_get_table_settings($tableId, 'public');
        $is_ajax_table  = true;

        if (Arr::get($tableSettings, 'render_type') == 'legacy_table') {
            $is_ajax_table = false;
        }

        $is_ajax_table = apply_filters('ninja_table_is_public_ajax_table', $is_ajax_table, $tableId);

        if ( ! $tableSettings || ! $is_ajax_table) {
            wp_send_json_success([], 200);
        }

        $skip  = Arr::get($_REQUEST, 'skip_rows', 0);
        $limit = Arr::get($_REQUEST, 'limit_rows', false);

        if ( ! $limit && ! $skip && isset($_REQUEST['chunk_number'])) {
            $chunkNumber = Arr::get($_REQUEST, 'chunk_number', 0);
            $perChunk    = ninjaTablePerChunk($tableId);
            $skip        = $chunkNumber * $perChunk;
            $limit       = $perChunk;
        }

        $ownOnly = false;

        if (isset($_REQUEST['own_only']) && sanitize_text_field($_REQUEST['own_only']) == 'yes') {
            $ownOnly = true;
        }

        $tableColumns   = ninja_table_get_table_columns($tableId);
        $formatted_data = ninjaTablesGetTablesDataByID($tableId, $tableColumns, $defaultSorting, false, $limit, $skip,
            $ownOnly);

        $formatted_data = apply_filters('ninja_tables_get_public_data', $formatted_data, $tableId);

        $dataProvider = ninja_table_get_data_provider($tableId);

        if ($dataProvider == 'default') {
            $newStyledData = [];
            $counter       = $skip;
            foreach ($formatted_data as $index => $datum) {
                $datum           = array_map(function ($value) {

                    if (is_string($value)) {
                        return do_shortcode($value);
                    }

                    return $value;
                }, $datum);
                $newStyledData[] = [
                    'options' => [
                        'classes' => (isset($datum['___id___'])) ? 'ninja_table_row_' . $counter . ' nt_row_id_' . $datum['___id___'] : 'ninja_table_row_' . $counter,
                    ],
                    'value'   => $datum
                ];
                $counter         = $counter + 1;
            }
            $formatted_data = $newStyledData;
        }

        wp_send_json($formatted_data, 200);

        wp_die();
    }
}