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.php
<?php 

namespace EmailKit;

defined('ABSPATH') || exit;

use EmailKit\Admin as EmailKitAdmin;

/**
 * The admin class
 */
class Admin
{


    /**
     * Initialize the class
     */
    public function __construct()
    {
      $this->load_emailkit(); // Load emailkit classes
      $this->run_apis(); // Run api classes
      $this->run_wc_mails(); // Check if WooCommerce is active then run run wocommerce class
      $this->run_wp_mails(); // Run wordpress emails class
      add_action('admin_menu', [$this, 'admin_menu']);// Register main admin menu
      add_action('admin_menu', [$this, 'register_settings'], 999); //register settings submenu

    }

    protected function load_emailkit(){
      
      new Admin\CPT();
      new Admin\AssetsLoader();
      new Admin\AssetConflictManager();
      new Admin\EmailKitAjax();
      new Admin\EmailKitHooks();
      new Admin\Hooks();
      new Admin\MetaBox();
      new Admin\EmailKitEditor\EmailKitEditorInit();
      new \EmailKit\Promotional\Onboard\Classes\Ajax();
  
    $metform_version = class_exists( '\MetForm\Plugin' ) ? \MetForm\Plugin::instance()->version() : '0.0.0';
    
    if ( did_action( 'metform/after_load' ) && version_compare( $metform_version, '4.0.0', '>=' ) ) {

      new Admin\EmailSettings\MetformEmailSettings();
      new Admin\EmailSettings\MetformShortcodes();
    }
      
      return true;
    }

    /**
     * Check if the woocommerce plugin is active run woocommerce class
     *
     * @return boolean
     */
     protected function run_wc_mails(){
      
      if(!function_exists('is_plugin_active')){
        // Include necessary WordPress files
        require_once ABSPATH . 'wp-admin/includes/plugin.php';

      }

      if(is_plugin_active('woocommerce/woocommerce.php')){
        

        new Admin\Emails\Woocommerce\NewOrder();
        new Admin\Emails\Woocommerce\ProcessingOrder();
        new Admin\Emails\Woocommerce\CancelledOrder();
        new Admin\Emails\Woocommerce\FailedOrder();
        new Admin\Emails\Woocommerce\FailedOrderCustomer();
        new Admin\Emails\Woocommerce\OrderOnHold();
        new Admin\Emails\Woocommerce\CompletedOrder();
        new Admin\Emails\Woocommerce\RefundOrder();
        new Admin\Emails\Woocommerce\CustomerNote();
        new Admin\Emails\Woocommerce\InvoiceOrder();
        new Admin\Emails\Woocommerce\ResetPassword();
        new Admin\Emails\Woocommerce\NewAccount();
        new Admin\Emails\Woocommerce\BackOrder();
        new Admin\Emails\Woocommerce\LowStock();
        new Admin\Emails\Woocommerce\NoStock();
        new Admin\Emails\Woocommerce\PartialRefund();
        new Admin\EmailSettings\WcEmailSettings();
        
        return true;

      }

      return false;

    }
     protected function run_wp_mails(){
      
      //Wordpress Emails class 
      new Admin\Emails\WordPress\NewUserRegister();
      new Admin\Emails\WordPress\ResetAccount();
      return true;

    }


    /**
     * run api classes
     * @return boolean true
     */
    public static function run_apis()
    {

        new Admin\Api\TemplateData();
        new Admin\Api\FetchData();
        new Admin\Api\UpdateData();
        new Admin\Api\TestEmail();
        new Admin\Api\ShortCodeData();
        new Admin\Api\TemplateStatus();
        new Admin\Api\OrderItem();
        new Admin\Api\TemplateTypesData();
        new Admin\Api\CheckForm();
       
        return true;
     
    }

    function admin_menu()
    {
      if (current_user_can('manage_options')) {
        add_menu_page(
            esc_html__('EmailKit', 'emailkit'),
            esc_html__('EmailKit', 'emailkit'),
            'read',
            'emailkit-menu',
            '',
           'dashicons-email-alt',
            35
        );
      }
    }

      public function register_settings(){
        if (current_user_can('manage_options')) {
          
          add_submenu_page( 'emailkit-menu', esc_html__( 'Settings', 'emailkit' ), esc_html__( 'Settings', 'emailkit' ), 'manage_options', 'emailkit-menu-settings', [$this, 'register_settings_contents__settings'], 11);
        }
      }
  
      public function register_settings_contents__settings(){
        ?>
        <div class="wrap">
          <h1 class="wp-heading-inline"> EmailKit Settings </h1>
            <?php   do_action('emailkit-settings');  ?>
          <div class="clear"></div>
        </div>
        <?php
        
      }
}