HEX
Server: Apache/2.4.29 (Ubuntu)
System: Linux instance-1 5.4.0-1092-gcp #101~18.04.1-Ubuntu SMP Mon Oct 17 18:29:06 UTC 2022 x86_64
User: web202 (5061)
PHP: 8.1.14
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, exec, shell_exec, system, passthru, proc_open, proc_close, popen, parse_ini_file, show_source
Upload Files
File: /data0/www/clients/client33/web202/web/wp-content/plugins/emailkit/includes/Admin/Dependency.php
<?php
namespace EmailKit\Admin;

use EmailKit;

defined("ABSPATH") || exit;

class Dependency {

    const INACTIVE = 'inactive';
    const ACTIVE = 'active';
    const NEED_INSTALL = 'install';


    public static function check(string $plugin) {

        
        $dependency = self::dependency_list($plugin);
        if($dependency){
            if(!empty($dependency['status']) && $dependency['status'] == self::INACTIVE) {
                return $dependency['active'];
            } else if(!empty($dependency['status']) && $dependency['status'] == self::NEED_INSTALL) {
                return $dependency['install'];
            }
        }
       
        return true;
    }


    public static function dependency_list(string $dependency = ''): array {


        if(!function_exists('is_plugin_active')){
              // Include necessary WordPress files
          require_once ABSPATH . 'wp-admin/includes/plugin.php';

        }

        $dependency_list = [
            'wordpress' => [
                'status' => self::ACTIVE, // by default wordpress is active
                'install' => [
                    'label' => '',
                    'url' => '',
                ],
                'active' => [
                    'label' => '',
                    'url' => '',
                ]
            ],
            'saved-templates' => [
                'status' => self::ACTIVE, // save templates have dependency
                'install' => [
                    'label' => '',
                    'url' => '',
                ],
                'active' => [
                    'label' => '',
                    'url' => '',
                ]
            ],
            'woocommerce' => [
                'status' => (file_exists(WP_PLUGIN_DIR.'/woocommerce/woocommerce.php') ? (is_plugin_active('woocommerce/woocommerce.php') == false ? self::INACTIVE : self::ACTIVE) : self::NEED_INSTALL),
                'install' => [
                    'label' => esc_html__('Install WooCommerce', 'emailkit'),
                    // 'url' => wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=woocommerce'), 'install-plugin_woocommerce'),
                    'url' => self_admin_url('plugin-install.php?s=woocommerce&tab=search&type=term'),
                ],
                'active' => [
                    'label' => esc_html__('Activate WooCommerce', 'emailkit'),
                    'url' => ('plugins.php?plugin=woocommerce'),
                ]
            ],
            'metform' => [
                'status' => (file_exists(WP_PLUGIN_DIR.'/metform/metform.php') ? (is_plugin_active('metform/metform.php') == false ? self::INACTIVE : self::ACTIVE) : self::NEED_INSTALL),
                'install' => [
                    'label' => esc_html__('Install Metform', 'emailkit'),
                    'url' => self_admin_url('plugin-install.php?s=metform&tab=search&type=term'),
                ],
                'active' => [
                    'label' => esc_html__('Activate Metform', 'emailkit'),
                    'url' => ('plugins.php?plugin=metform'),
                ]
            ],
        ];

        return $dependency_list[$dependency] ?? [];
    }
}