| Server IP : 47.82.179.145 / Your IP : 216.73.217.120 Web Server : nginx/1.26.3 System : Linux iZt4n9czhka2zvqfajdlr2Z 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 x86_64 User : www ( 1001) PHP Version : 8.3.30 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/scuipturepactory.com/wp-content/plugins.off/astra-sites/inc/lib/zip-ai/ |
Upload File : |
<?php
/**
* Plugin Loader.
*
* @package zip-ai
* @since 1.0.0
*/
namespace ZipAI;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Classes to be used, in alphabetical order.
use ZipAI\Classes\Admin_Configurations;
use ZipAI\Classes\Module;
use ZipAI\Classes\Sidebar_Configurations;
if ( ! class_exists( '\ZipAI\Loader' ) ) {
/**
* Plugin_Loader
*
* @since 1.0.0
*/
class Loader {
/**
* Instance
*
* @access private
* @var object Class Instance.
* @since 1.0.0
*/
private static $instance;
/**
* Initiator
*
* @since 1.0.0
* @return object initialized object of class.
*/
public static function get_instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Autoload classes.
*
* @param string $class class name.
*/
public function autoload( $class ) {
if ( 0 !== strpos( $class, __NAMESPACE__ ) ) {
return;
}
$class_to_load = $class;
$filename = strtolower(
preg_replace(
[ '/^' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/' ],
[ '', '$1-$2', '-', DIRECTORY_SEPARATOR ],
$class_to_load
)
);
$file = ZIP_AI_DIR . $filename . '.php';
// if the file redable, include it.
if ( is_readable( $file ) ) {
require_once $file;
}
}
/**
* Constructor
*
* @since 1.0.0
*/
public function __construct() {
spl_autoload_register( [ $this, 'autoload' ] );
add_action( 'plugins_loaded', [ $this, 'setup_classes' ], 20 );
$this->define_constants();
}
/**
* Define the required constants.
*
* @since 1.0.0
* @return void
*/
public function define_constants() {
define( 'ZIP_AI_FILE', __FILE__ );
define( 'ZIP_AI_DIR', plugin_dir_path( ZIP_AI_FILE ) );
define( 'ZIP_AI_URL', plugins_url( '/', ZIP_AI_FILE ) );
define( 'ZIP_AI_VERSION', '2.0.6' );
define( 'ZIP_AI_MENU_SLUG', 'zip-ai' );
define( 'ZIP_AI_MIDDLEWARE', 'https://app.zipwp.com/auth/' );
define( 'ZIP_AI_ZIPWP_API', 'https://api.zipwp.com/api/' );
define( 'ZIP_AI_CREDIT_SERVER_API', 'https://credits.startertemplates.com/api/' );
define( 'ZIP_AI_CREDIT_TOPUP_URL', 'https://app.zipwp.com/credits-pricing' );
define( 'ZIP_AI_CREDIT_THRESHOLD_MEDIUM', 65 );
define( 'ZIP_AI_CREDIT_THRESHOLD_HIGH', 85 );
}
/**
* Setup the required classes.
*
* @since 1.0.0
* @return void
*/
public function setup_classes() {
// Migrate any older modules to the new format.
Module::migrate_options();
// Enable the Zip AI Chat Sidebar if required - filter is for old users.
if ( apply_filters( 'zip_ai_enable_chat_sidebar', true ) && Module::is_enabled( 'ai_assistant' ) ) {
Sidebar_Configurations::get_instance();
}
// Enable the Zip AI Admin Configurations if required.
if ( is_admin() ) {
Admin_Configurations::get_instance();
}
}
}
/**
* Kicking this off by calling 'get_instance()' method
*/
Loader::get_instance();
}