HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
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: /var/www/html/wordpress/wp-content/plugins/bit-integrations/includes/Admin/AdminAjax.php
<?php

namespace BitCode\FI\Admin;

use BitCode\FI\Core\Util\Route;

class AdminAjax
{
    public function register()
    {
        Route::post('app/config', [$this, 'updatedAppConfig']);
        Route::get('get/config', [$this, 'getAppConfig']);
        // CHANGELOG VERSION OPTIONS
        Route::post('changelog_version', [$this, 'setChangelogVersion']);
        // add_action('wp_ajax_btcbi_changelog_version', [$this, 'setChangelogVersion']);
    }

    public function updatedAppConfig($data)
    {
        if (!property_exists($data, 'data')) {
            wp_send_json_error(__('Data can\'t be empty', 'bit-integrations'));
        }

        update_option('btcbi_app_conf', $data->data);
        wp_send_json_success(__('save successfully done', 'bit-integrations'));
    }

    public function getAppConfig()
    {
        $data = get_option('btcbi_app_conf');
        wp_send_json_success($data);
    }

    public function setChangelogVersion()
    {
        if (empty($_REQUEST['_ajax_nonce'])) {
            wp_send_json_error(
                __(
                    'Token expired',
                    'bit-integrations'
                ),
                401
            );
        }

        $nonce = sanitize_text_field(wp_unslash($_REQUEST['_ajax_nonce']));

        if (wp_verify_nonce($nonce, 'btcbi_nonce') && isset($_REQUEST['data'])) {
            $inputJSON = stripslashes(wp_unslash($_REQUEST['data']));
            $input = json_decode($inputJSON);
            $version = isset($input->version) ? sanitize_text_field($input->version) : '';

            update_option('btcbi_changelog_version', $version);

            wp_send_json_success($version, 200);
        } else {
            wp_send_json_error(__('Token expired or no data received', 'bit-integrations'), 401);
        }
    }
}