✨ Magic File Manager

🚀 Hostinger Optimized
🖥️ Server: Apache
💻 System: Linux bom1plzcpnl503817.prod.bom1.secureserver.net 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64
👤 User: pnj6a06usxf3 (9714991)
🐘 PHP: 8.1.34
🚫 Disabled: ✨ NONE

💻 Terminal

📁 /home/pnj6a06usxf3/public_html/korwalsolars.com
$

📄 SuggestedPluginsController.php

📁 Path: ./wp-content/plugins/fluentform/app/Http/Controllers/SuggestedPluginsController.php
📊 Size: 4.9 KB
🔒 Perm: 0644
📝 MIME: text/x-php
<?php

namespace FluentForm\App\Http\Controllers;



class SuggestedPluginsController extends Controller
{
    /**
     * Check the installation and activation status of multiple plugins.
     */
    public function checkPluginStatuses()
    {
        if (!current_user_can('install_plugins')) {
            return $this->sendError([
                'message' => __('You do not have permission to manage plugins.', 'fluentform')
            ], 403);
        }

        $plugins = wpFluentForm('request')->get('plugins', []);
        
        if (empty($plugins) || !is_array($plugins)) {
            return $this->sendError([
                'message' => __('No plugins specified.', 'fluentform')
            ], 400);
        }

        $statuses = [];
        
        foreach ($plugins as $pluginSlug) {
            $statuses[$pluginSlug] = $this->getPluginStatus($pluginSlug);
        }

        return $this->sendSuccess([
            'statuses' => $statuses
        ]);
    }

    /**
     * Install a plugin from WordPress.org.
     */
    public function installPlugin()
    {
        if (!current_user_can('install_plugins')) {
            return $this->sendError([
                'message' => __('You do not have permission to install plugins.', 'fluentform')
            ], 403);
        }

        $pluginSlug = wpFluentForm('request')->get('plugin_slug');
        
        if (empty($pluginSlug)) {
            return $this->sendError([
                'message' => __('Plugin slug is required.', 'fluentform')
            ], 400);
        }

        // Load WordPress plugin installer
        if (!class_exists('Plugin_Upgrader')) {
            require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
        }
        if (!function_exists('request_filesystem_credentials')) {
            require_once ABSPATH . 'wp-admin/includes/file.php';
        }
        if (!function_exists('wp_tempnam')) {
            require_once ABSPATH . 'wp-admin/includes/misc.php';
        }
        require_once ABSPATH . 'wp-admin/includes/plugin-install.php';

        $api = plugins_api('plugin_information', [
            'slug'   => sanitize_key($pluginSlug),
            'fields' => [
                'sections' => false,
            ],
        ]);

        if (is_wp_error($api)) {
            return $this->sendError([
                'message' => $api->get_error_message()
            ], 500);
        }

        // Install the plugin
        $upgrader = new \Plugin_Upgrader(new \WP_Ajax_Upgrader_Skin());
        $result = $upgrader->install($api->download_link);

        if (is_wp_error($result)) {
            return $this->sendError([
                'message' => $result->get_error_message()
            ], 500);
        }

        if ($result === false) {
            return $this->sendError([
                'message' => __('Plugin installation failed.', 'fluentform')
            ], 500);
        }

        return $this->sendSuccess([
            'message' => __('Plugin installed successfully.', 'fluentform')
        ]);
    }

    /**
     * Activate an installed plugin.
     */
    public function activatePlugin()
    {
        if (!current_user_can('activate_plugins')) {
            return $this->sendError([
                'message' => __('You do not have permission to activate plugins.', 'fluentform')
            ], 403);
        }

        $pluginSlug = sanitize_text_field(wpFluentForm('request')->get('plugin_slug'));

        if (empty($pluginSlug)) {
            return $this->sendError([
                'message' => __('Plugin slug is required.', 'fluentform')
            ], 400);
        }

        if (!function_exists('get_plugins')) {
            require_once ABSPATH . 'wp-admin/includes/plugin.php';
        }

        if (!array_key_exists($pluginSlug, get_plugins())) {
            return $this->sendError([
                'message' => __('Invalid plugin.', 'fluentform')
            ], 400);
        }

        $result = activate_plugin($pluginSlug);

        if (is_wp_error($result)) {
            return $this->sendError([
                'message' => $result->get_error_message()
            ], 500);
        }

        return $this->sendSuccess([
            'message' => __('Plugin activated successfully.', 'fluentform')
        ]);
    }

    /**
     * Get the status of a plugin (not_installed, inactive, or active).
     *
     * @param string $pluginSlug The plugin slug (e.g., 'fluent-crm/fluent-crm.php')
     * @return string
     */
    private function getPluginStatus($pluginSlug)
    {
        if (!function_exists('get_plugins')) {
            require_once ABSPATH . 'wp-admin/includes/plugin.php';
        }

        $allPlugins = get_plugins();

        // Check if plugin is installed
        if (!isset($allPlugins[$pluginSlug])) {
            return 'not_installed';
        }

        // Check if plugin is active
        if (is_plugin_active($pluginSlug)) {
            return 'active';
        }

        return 'inactive';
    }
}
← Back📥 Raw✏️ Edit🔒 Chmod
✨ File Manager Magic ✨