HEX
Server: Apache
System: Linux dinesh8149 5.15.98-grsec-sharedvalley-2.lc.el8.x86_64 #1 SMP Thu Mar 9 09:07:30 -03 2023 x86_64
User: usesambura1 (1212012)
PHP: 7.0.33
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: /home/storage/c/63/6c/usesambura1/public_html/yr/wp-content/plugins/download-plugin/app/Main.php
<?php
namespace DPWAP;

if ( !defined( 'ABSPATH' ) ) {
    exit;
}

use DPWAP\Plugins\Base as pluginBase;
use DPWAP\Themes\Base as themeBase;

class Main {
    protected static $instance = null;
    public $extensions = array();

    public function __construct(){
        $this->addActions();
        $this->loadTextdomain();

        add_action( 'admin_enqueue_scripts', array( $this, 'dpwap_load_common_admin_scripts' ) );

        add_action( 'admin_notices', array( $this, 'dpwap_general_admin_notice' ) );

        $plugins = new pluginBase();
        $plugins->setup();

        $themes = new themeBase();
        $themes->setup();
    }

    public function addActions() {
        add_action( 'admin_init', array( $this, 'dpwap_plugin_redirect' ) );
        add_action( 'admin_menu', array( $this, 'dpwap_load_menus' ) );
        add_action( 'wp_ajax_dpwap_dismiss_notice_action', array( $this, 'dpwap_dismiss_notice_action' ) );
    }

    public function loadTextdomain(){
        load_textdomain( 'download-plugin', WP_LANG_DIR . '/download-plugin/download_plugin-' . get_locale() . '.mo' );
    }

    /**
     * redirect plugin to menu on activation
     */
    public function dpwap_plugin_redirect() {
        if ( get_option( 'download_plugin_do_activation_redirect', false ) ) {
            delete_option( 'download_plugin_do_activation_redirect' );
            wp_redirect( admin_url( "admin.php?page=dpwap_plugin" ) );
            exit;
        }
    }

    public function dpwap_load_menus() {
        $dpwap = dpwap_plugin_loaded();
        if ( in_array( 'download-users', $dpwap->extensions ) ) {
            add_menu_page( __( 'Download', 'download-plugin' ), __( 'Download', 'download-plugin' ), 'manage_options', "dpwap_plugin", array( $this, 'dpwap_plugin' ), 'dashicons-media-archive', '99' );
            // download plugin menu
            add_submenu_page( "dpwap_plugin", __( 'Download Plugins', 'download-plugin' ), __( 'Download Plugins', 'download-plugin' ), "manage_options", "dpwap_plugin", array( $this, 'dpwap_plugin' ) );
            // download theme menu
            add_submenu_page( "dpwap_plugin", __( 'Download Themes', 'download-plugin' ), __( 'Download Themes', 'download-plugin' ), "manage_options", "dpwap_theme", array( $this, 'dpwap_theme' ) );
            // load all extensions
            // show default download user menu
            if ( !in_array( 'download-users', $dpwap->extensions ) ) {
                add_submenu_page( "dpwap_plugin", __('Download Users', 'download-plugin'), __('Download Users', 'download-plugin'), "manage_options", "dpwap_users", array( $this, 'duwap_users_check' ) );
            }
            // show default download bbPress menu
            /*if ( !in_array( 'download-bbpress-integration', $dpwap->extensions ) ) {
                add_submenu_page( "dpwap_plugin", __('bbPress', 'download-plugin'), __('bbPress', 'download-plugin'), "manage_options", "dpwap_bbpress", array( $this, 'duwap_bbpress_check' ) );
            }*/
        }
        
        do_action( 'dpwap_downlad_plugin_menus' );
    }

    public function dpwap_plugin() {
        $plugin_info_file = DPWAP_DIR.DS.'app'.DS.'Plugins'.DS.'templates'.DS.'dpwap_plugin_info.php';
        include_once $plugin_info_file;
    }

    public function dpwap_theme() {
        $theme_info_file = DPWAP_DIR.DS.'app'.DS.'Themes'.DS.'templates'.DS.'dpwap_theme_info.php';
        include_once $theme_info_file;
    }

    public function duwap_users_check() {
        $users_info_file = DPWAP_DIR.DS.'app'.DS.'Users'.DS.'templates'.DS.'dpwap_users_info.php';
        include_once $users_info_file;
    }

    public function duwap_bbpress_check() {
        $bbpress_info_file = DPWAP_DIR.DS.'app'.DS.'bbPress'.DS.'templates'.DS.'dpwap_bbpress_info.php';
        include_once $bbpress_info_file;
    }

    public function dpwap_load_common_admin_scripts() {
        wp_enqueue_script( 'dpwap_common_js', DPWAP_URL.'assets/js/dpwap-common.js',array(), DPWAP_VERSION );
        wp_localize_script( 'dpwap_common_js', 'admin_vars', array( 'admin_url' => admin_url(), 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
        wp_enqueue_style( 'dpwap_common_css', DPWAP_URL.'assets/css/dpwap-common.css',array(), DPWAP_VERSION );
    }
    
    public static function instance() {
        if (is_null(self::$instance)) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    /**
     * Admin notice
     */
    public function dpwap_general_admin_notice() {
        $dpwap = dpwap_plugin_loaded();
        $get_dismiss_option = get_option('dpwap_dismiss_offer_notice', false);
        if(empty($dpwap->extensions) && empty($get_dismiss_option)){
            echo '<div class="dpwap-notice-pre notice notice-info is-dismissible">
                <p><b>Download Plugin</b> now has add-on for downloading and uploading your website\'s user accounts. <a href="https://metagauss.com/wordpress-users-import-export-plugin/?utm_source=dp_plugin&utm_medium=admin_notice&utm_campaign=download_users_addon" target="_new">Click here </a>to get it now!</p>
            </div>';
        }
    }

    /**
     * Hide admin notice
     */
    public function dpwap_dismiss_notice_action() {
        add_option('dpwap_dismiss_offer_notice', true);
        wp_send_json_success('Notice Dismissed');
    }
}