HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/triad-infosec/wp-content/plugins/autoupdater/lib/Task/DatabaseUpdateAcf.php
<?php
defined('AUTOUPDATER_LIB') or die;

class AutoUpdater_Task_DatabaseUpdateAcf extends AutoUpdater_Task_Base
{
    /**
     * @return array
     */

    public function doTask()
    {
        $success = false;
        $message = '';
        $acf_slug = $this->input('slug');
        $acf_dir = '/' . strtok($acf_slug, '/');
        $acf_name = 'Advanced Custom Fields' . (strpos($acf_slug, 'pro') !== false ? ' Pro' : '');

        if (substr($acf_slug, -4) !== '.php') {
            $acf_slug .= '.php';
        }

        if (!is_plugin_active($acf_slug)) {
            return array(
                'success' => true,
                'message' => $acf_name . ' plugin is not active, skipping database update'
            );
        }

        if (file_exists(WP_PLUGIN_DIR . $acf_dir . '/acf.php')) {
            include_once WP_PLUGIN_DIR . $acf_dir . '/acf.php';
        }

        if (file_exists(WP_PLUGIN_DIR . $acf_dir . '/includes/upgrades.php')
        && (!function_exists('acf_upgrade_all') || !function_exists('acf_has_upgrade'))) {
            include_once WP_PLUGIN_DIR . $acf_dir . '/includes/upgrades.php';
        }

        if (!defined('ACF') || !defined('ACF_VERSION')) {
            return array(
                'success' => true,
                'needs_refactor' => true,
                'message' => $acf_name . ' plugin not loaded'
            );
        }

        if (!function_exists('acf_upgrade_all') || !function_exists('acf_has_upgrade')) {
            return array(
                'success' => true,
                'needs_refactor' => true,
                'message' => $acf_name . ' plugin upgrade functions not found, check for source code updates',
            );
        }

        if (!acf_has_upgrade()) {
            return array(
                'success' => true,
                'message' => $acf_name . ' plugin database is already in the latest version',
            );
        }

        try {
            acf_upgrade_all();
            $success = true;
            $message = $acf_name . ' plugin database upgraded successfully';
        } catch (Exception $err) {
            $message = $err->getMessage();
        }

        return array(
            'success' => $success,
            'message' => $message
        );
    }
}