!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux acloudg.aryanict.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC
2023 x86_64
 

uid=1095(katebhospital) gid=1098(katebhospital) groups=1098(katebhospital) 

Safe-mode: OFF (not secure)

/var/softaculous/sitepad/editor/site-data/plugins/kkart-pro/includes/   drwxr-xr-x
Free 290.2 GB of 429.69 GB (67.54%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     class-kkart.php (32.69 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Kkart setup
 *
 * @package Kkart
 * @since   3.2.0
 */

defined'ABSPATH' ) || exit;

use 
Automattic\Kkart\Proxies\LegacyProxy;

/**
 * Main Kkart Class.
 *
 * @class Kkart
 */
final class Kkart {

    
/**
     * Kkart version.
     *
     * @var string
     */
    
public $version '4.8.0';

    
/**
     * Kkart Schema version.
     *
     * @since 4.3 started with version string 430.
     *
     * @var string
     */
    
public $db_version '430';

    
/**
     * The single instance of the class.
     *
     * @var Kkart
     * @since 2.1
     */
    
protected static $_instance null;

    
/**
     * Session instance.
     *
     * @var KKART_Session|KKART_Session_Handler
     */
    
public $session null;

    
/**
     * Query instance.
     *
     * @var KKART_Query
     */
    
public $query null;

    
/**
     * Product factory instance.
     *
     * @var KKART_Product_Factory
     */
    
public $product_factory null;

    
/**
     * Countries instance.
     *
     * @var KKART_Countries
     */
    
public $countries null;

    
/**
     * Integrations instance.
     *
     * @var KKART_Integrations
     */
    
public $integrations null;

    
/**
     * Cart instance.
     *
     * @var KKART_Cart
     */
    
public $cart null;

    
/**
     * Customer instance.
     *
     * @var KKART_Customer
     */
    
public $customer null;

    
/**
     * Order factory instance.
     *
     * @var KKART_Order_Factory
     */
    
public $order_factory null;

    
/**
     * Structured data instance.
     *
     * @var KKART_Structured_Data
     */
    
public $structured_data null;

    
/**
     * Array of deprecated hook handlers.
     *
     * @var array of KKART_Deprecated_Hooks
     */
    
public $deprecated_hook_handlers = array();

    
/**
     * Main Kkart Instance.
     *
     * Ensures only one instance of Kkart is loaded or can be loaded.
     *
     * @since 2.1
     * @static
     * @see KKART()
     * @return Kkart - Main instance.
     */
    
public static function instance() {
        if ( 
is_nullself::$_instance ) ) {
            
self::$_instance = new self();
        }
        return 
self::$_instance;
    }

    
/**
     * Cloning is forbidden.
     *
     * @since 2.1
     */
    
public function __clone() {
        
kkart_doing_it_wrong__FUNCTION____'Cloning is forbidden.''kkart' ), '2.1' );
    }

    
/**
     * Unserializing instances of this class is forbidden.
     *
     * @since 2.1
     */
    
public function __wakeup() {
        
kkart_doing_it_wrong__FUNCTION____'Unserializing instances of this class is forbidden.''kkart' ), '2.1' );
    }

    
/**
     * Auto-load in-accessible properties on demand.
     *
     * @param mixed $key Key name.
     * @return mixed
     */
    
public function __get$key ) {
        if ( 
in_array$key, array( 'payment_gateways''shipping''mailer''checkout' ), true ) ) {
            return 
$this->$key();
        }
    }

    
/**
     * Kkart Constructor.
     */
    
public function __construct() {
        
$this->define_constants();
        
$this->define_tables();
        
$this->includes();
        
$this->init_hooks();
    }

    
/**
     * When WP has loaded all plugins, trigger the `kkart_loaded` hook.
     *
     * This ensures `kkart_loaded` is called only after all other plugins
     * are loaded, to avoid issues caused by plugin directory naming changing
     * the load order. See #21524 for details.
     *
     * @since 3.6.0
     */
    
public function on_plugins_loaded() {
        
do_action'kkart_loaded' );
    }

    
/**
     * Hook into actions and filters.
     *
     * @since 2.3
     */
    
private function init_hooks() {
        
register_activation_hookKKART_PLUGIN_FILE, array( 'KKART_Install''install' ) );
        
register_shutdown_function( array( $this'log_errors' ) );

        
add_action'plugins_loaded', array( $this'on_plugins_loaded' ), -);
        
add_action'admin_notices', array( $this'build_dependencies_notice' ) );
        
add_action'after_setup_theme', array( $this'setup_environment' ) );
        
add_action'after_setup_theme', array( $this'include_template_functions' ), 11 );
        
add_action'init', array( $this'init' ), );
        
add_action'init', array( 'KKART_Shortcodes''init' ) );
        
add_action'init', array( 'KKART_Emails''init_transactional_emails' ) );
        
add_action'init', array( $this'add_image_sizes' ) );
        
add_action'init', array( $this'load_rest_api' ) );
        
add_action'switch_blog', array( $this'wpdb_table_fix' ), );
        
add_action'activated_plugin', array( $this'activated_plugin' ) );
        
add_action'deactivated_plugin', array( $this'deactivated_plugin' ) );
    }

    
/**
     * Ensures fatal errors are logged so they can be picked up in the status report.
     *
     * @since 3.2.0
     */
    
public function log_errors() {
        
$error error_get_last();
        if ( 
$error && in_array$error['type'], array( E_ERRORE_PARSEE_COMPILE_ERRORE_USER_ERRORE_RECOVERABLE_ERROR ), true ) ) {
            
$logger kkart_get_logger();
            
$logger->critical(
                
/* translators: 1: error message 2: file name and path 3: line number */
                
sprintf__'%1$s in %2$s on line %3$s''kkart' ), $error['message'], $error['file'], $error['line'] ) . PHP_EOL,
                array(
                    
'source' => 'fatal-errors',
                )
            );
            
do_action'kkart_shutdown_error'$error );
        }
    }

    
/**
     * Define KKART Constants.
     */
    
private function define_constants() {
        
$upload_dir wp_upload_dirnullfalse );

        
$this->define'KKART_ABSPATH'dirnameKKART_PLUGIN_FILE ) . '/' );
        
$this->define'KKART_PLUGIN_BASENAME'plugin_basenameKKART_PLUGIN_FILE ) );
        
$this->define'KKART_VERSION'$this->version );
        
$this->define'KKART_VERSION'$this->version );
        
$this->define'KKART_ROUNDING_PRECISION');
        
$this->define'KKART_DISCOUNT_ROUNDING_MODE');
        
$this->define'KKART_TAX_ROUNDING_MODE''yes' === get_option'kkart_prices_include_tax''no' ) ? );
        
$this->define'KKART_DELIMITER''|' );
        
$this->define'KKART_LOG_DIR'$upload_dir['basedir'] . '/kkart-logs/' );
        
$this->define'KKART_SESSION_CACHE_GROUP''kkart_session_id' );
        
$this->define'KKART_TEMPLATE_DEBUG_MODE'false );
        
$this->define'KKART_NOTICE_MIN_PHP_VERSION''7.2' );
        
$this->define'KKART_NOTICE_MIN_WP_VERSION''5.1' );
        
$this->define'KKART_PHP_MIN_REQUIREMENTS_NOTICE''wp_php_min_requirements_' KKART_NOTICE_MIN_PHP_VERSION '_' KKART_NOTICE_MIN_WP_VERSION );
    }

    
/**
     * Register custom tables within $wpdb object.
     */
    
private function define_tables() {
        global 
$wpdb;

        
// List of tables without prefixes.
        
$tables = array(
            
'payment_tokenmeta'      => 'kkart_payment_tokenmeta',
            
'order_itemmeta'         => 'kkart_order_itemmeta',
            
'kkart_product_meta_lookup' => 'kkart_product_meta_lookup',
            
'kkart_tax_rate_classes'    => 'kkart_tax_rate_classes',
            
'kkart_reserved_stock'      => 'kkart_reserved_stock',
        );

        foreach ( 
$tables as $name => $table ) {
            
$wpdb->$name    $wpdb->prefix $table;
            
$wpdb->tables[] = $table;
        }
    }

    
/**
     * Define constant if not already set.
     *
     * @param string      $name  Constant name.
     * @param string|bool $value Constant value.
     */
    
private function define$name$value ) {
        if ( ! 
defined$name ) ) {
            
define$name$value );
        }
    }

    
/**
     * Returns true if the request is a non-legacy REST API request.
     *
     * Legacy REST requests should still run some extra code for backwards compatibility.
     *
     * @todo: replace this function once core WP function is available: https://core.trac.wordpress.org/ticket/42061.
     *
     * @return bool
     */
    
public function is_rest_api_request() {
        if ( empty( 
$_SERVER['REQUEST_URI'] ) ) {
            return 
false;
        }

        
$rest_prefix         trailingslashitrest_get_url_prefix() );
        
$is_rest_api_request = ( false !== strpos$_SERVER['REQUEST_URI'], $rest_prefix ) ); // phpcs:disable WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

        
return apply_filters'kkart_is_rest_api_request'$is_rest_api_request );
    }

    
/**
     * Load REST API.
     */
    
public function load_rest_api() {
        \
Automattic\Kkart\RestApi\Server::instance()->init();
    }

    
/**
     * What type of request is this?
     *
     * @param  string $type admin, ajax, cron or frontend.
     * @return bool
     */
    
private function is_request$type ) {
        switch ( 
$type ) {
            case 
'admin':
                return 
is_admin();
            case 
'ajax':
                return 
defined'DOING_AJAX' );
            case 
'cron':
                return 
defined'DOING_CRON' );
            case 
'frontend':
                return ( ! 
is_admin() || defined'DOING_AJAX' ) ) && ! defined'DOING_CRON' ) && ! $this->is_rest_api_request();
        }
    }

    
/**
     * Include required core files used in admin and on the frontend.
     */
    
public function includes() {
        
/**
         * Class autoloader.
         */
        
include_once KKART_ABSPATH 'includes/class-kkart-autoloader.php';

        
/**
         * Interfaces.
         */
        
include_once KKART_ABSPATH 'includes/interfaces/class-kkart-abstract-order-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-coupon-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-customer-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-customer-download-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-customer-download-log-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-object-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-order-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-order-item-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-order-item-product-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-order-item-type-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-order-refund-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-payment-token-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-product-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-product-variable-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-shipping-zone-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-logger-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-log-handler-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-webhooks-data-store-interface.php';
        include_once 
KKART_ABSPATH 'includes/interfaces/class-kkart-queue-interface.php';

        
/**
         * Core traits.
         */
        
include_once KKART_ABSPATH 'includes/traits/trait-kkart-item-totals.php';

        
/**
         * Abstract classes.
         */
        
include_once KKART_ABSPATH 'includes/abstracts/abstract-kkart-data.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-object-query.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-payment-token.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-product.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-order.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-settings-api.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-shipping-method.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-payment-gateway.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-integration.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-log-handler.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-deprecated-hooks.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-session.php';
        include_once 
KKART_ABSPATH 'includes/abstracts/abstract-kkart-privacy.php';

        
/**
         * Core classes.
         */
        
include_once KKART_ABSPATH 'includes/kkart-core-functions.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-datetime.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-post-types.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-install.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-geolocation.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-download-handler.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-comments.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-post-data.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-ajax.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-emails.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-data-exception.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-query.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-meta-data.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-order-factory.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-order-query.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-product-factory.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-product-query.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-payment-tokens.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-shipping-zone.php';
        include_once 
KKART_ABSPATH 'includes/gateways/class-kkart-payment-gateway-cc.php';
        include_once 
KKART_ABSPATH 'includes/gateways/class-kkart-payment-gateway-echeck.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-countries.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-integrations.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-cache-helper.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-https.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-deprecated-action-hooks.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-deprecated-filter-hooks.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-background-emailer.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-discounts.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-cart-totals.php';
        include_once 
KKART_ABSPATH 'includes/customizer/class-kkart-shop-customizer.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-regenerate-images.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-privacy.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-structured-data.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-shortcodes.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-logger.php';
        include_once 
KKART_ABSPATH 'includes/queue/class-kkart-action-queue.php';
        include_once 
KKART_ABSPATH 'includes/queue/class-kkart-queue.php';
        include_once 
KKART_ABSPATH 'includes/admin/marketplace-suggestions/class-kkart-marketplace-updater.php';

        
/**
         * Data stores - used to store and retrieve CRUD object data from the database.
         */
        
include_once KKART_ABSPATH 'includes/class-kkart-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-data-store-wp.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-coupon-data-store-cpt.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-product-data-store-cpt.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-product-grouped-data-store-cpt.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-product-variable-data-store-cpt.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-product-variation-data-store-cpt.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/abstract-kkart-order-item-type-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-order-item-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-order-item-coupon-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-order-item-fee-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-order-item-product-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-order-item-shipping-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-order-item-tax-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-payment-token-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-customer-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-customer-data-store-session.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-customer-download-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-customer-download-log-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-shipping-zone-data-store.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/abstract-kkart-order-data-store-cpt.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-order-data-store-cpt.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-order-refund-data-store-cpt.php';
        include_once 
KKART_ABSPATH 'includes/data-stores/class-kkart-webhook-data-store.php';

        
/**
         * REST API.
         */
        
include_once KKART_ABSPATH 'includes/legacy/class-kkart-legacy-api.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-api.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-rest-authentication.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-rest-exception.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-auth.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-register-wp-admin-settings.php';

        
/**
         * KKARTCOM Site.
         */
        
include_once KKART_ABSPATH 'includes/wccom-site/class-kkart-wccom-site.php';

        
/**
         * Libraries and packages.
         */
        
include_once KKART_ABSPATH 'packages/action-scheduler/action-scheduler.php';

        if ( 
defined'WP_CLI' ) && WP_CLI ) {
            include_once 
KKART_ABSPATH 'includes/class-kkart-cli.php';
        }

        if ( 
$this->is_request'admin' ) ) {
            include_once 
KKART_ABSPATH 'includes/admin/class-kkart-admin.php';
        }

        if ( 
$this->is_request'frontend' ) ) {
            
$this->frontend_includes();
        }

        if ( 
$this->is_request'cron' ) && 'yes' === get_option'kkart_allow_tracking''no' ) ) {
            include_once 
KKART_ABSPATH 'includes/class-kkart-tracker.php';
        }

        
$this->theme_support_includes();
        
$this->query = new KKART_Query();
        
$this->api   = new KKART_API();
        
$this->api->init();
    }

    
/**
     * Include classes for theme support.
     *
     * @since 3.3.0
     */
    
private function theme_support_includes() {
        if ( 
kkart_is_wp_default_theme_active() ) {
            switch ( 
get_template() ) {
                case 
'twentyten':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-ten.php';
                    break;
                case 
'twentyeleven':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-eleven.php';
                    break;
                case 
'twentytwelve':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-twelve.php';
                    break;
                case 
'twentythirteen':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-thirteen.php';
                    break;
                case 
'twentyfourteen':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-fourteen.php';
                    break;
                case 
'twentyfifteen':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-fifteen.php';
                    break;
                case 
'twentysixteen':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-sixteen.php';
                    break;
                case 
'twentyseventeen':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-seventeen.php';
                    break;
                case 
'twentynineteen':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-nineteen.php';
                    break;
                case 
'twentytwenty':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-twenty.php';
                    break;
                case 
'twentytwentyone':
                    include_once 
KKART_ABSPATH 'includes/theme-support/class-kkart-twenty-twenty-one.php';
                    break;
            }
        }
    }

    
/**
     * Include required frontend files.
     */
    
public function frontend_includes() {
        include_once 
KKART_ABSPATH 'includes/kkart-cart-functions.php';
        include_once 
KKART_ABSPATH 'includes/kkart-notice-functions.php';
        include_once 
KKART_ABSPATH 'includes/kkart-template-hooks.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-template-loader.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-frontend-scripts.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-form-handler.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-cart.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-tax.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-shipping-zones.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-customer.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-embed.php';
        include_once 
KKART_ABSPATH 'includes/class-kkart-session-handler.php';
    }

    
/**
     * Function used to Init Kkart Template Functions - This makes them pluggable by plugins and themes.
     */
    
public function include_template_functions() {
        include_once 
KKART_ABSPATH 'includes/kkart-template-functions.php';
    }

    
/**
     * Init Kkart when WordPress Initialises.
     */
    
public function init() {
        
// Before init action.
        
do_action'before_kkart_init' );

        
// Set up localisation.
        
$this->load_plugin_textdomain();

        
// Load class instances.
        
$this->product_factory                     = new KKART_Product_Factory();
        
$this->order_factory                       = new KKART_Order_Factory();
        
$this->countries                           = new KKART_Countries();
        
$this->integrations                        = new KKART_Integrations();
        
$this->structured_data                     = new KKART_Structured_Data();
        
$this->deprecated_hook_handlers['actions'] = new KKART_Deprecated_Action_Hooks();
        
$this->deprecated_hook_handlers['filters'] = new KKART_Deprecated_Filter_Hooks();

        
// Classes/actions loaded for the frontend and for ajax requests.
        
if ( $this->is_request'frontend' ) ) {
            
kkart_load_cart();
        }

        
$this->load_webhooks();

        
// Init action.
        
do_action'kkart_init' );
    }

    
/**
     * Load Localisation files.
     *
     * Note: the first-loaded translation file overrides any following ones if the same translation is present.
     *
     * Locales found in:
     *      - WP_LANG_DIR/kkart/kkart-LOCALE.mo
     *      - WP_LANG_DIR/plugins/kkart-LOCALE.mo
     */
    
public function load_plugin_textdomain() {
        if ( 
function_exists'determine_locale' ) ) {
            
$locale determine_locale();
        } else {
            
// @todo Remove when start supporting WP 5.0 or later.
            
$locale is_admin() ? get_user_locale() : get_locale();
        }

        
$locale apply_filters'plugin_locale'$locale'kkart' );

        
unload_textdomain'kkart' );
        
load_textdomain'kkart'WP_LANG_DIR '/kkart/kkart-' $locale '.mo' );
        
load_plugin_textdomain'kkart'falseplugin_basenamedirnameKKART_PLUGIN_FILE ) ) . '/i18n/languages' );
    }

    
/**
     * Ensure theme and server variable compatibility and setup image sizes.
     */
    
public function setup_environment() {
        
/**
         * KKART_TEMPLATE_PATH constant.
         *
         * @deprecated 2.2 Use KKART()->template_path() instead.
         */
        
$this->define'KKART_TEMPLATE_PATH'$this->template_path() );

        
$this->add_thumbnail_support();
    }

    
/**
     * Ensure post thumbnail support is turned on.
     */
    
private function add_thumbnail_support() {
        if ( ! 
current_theme_supports'post-thumbnails' ) ) {
            
add_theme_support'post-thumbnails' );
        }
        
add_post_type_support'product''thumbnail' );
    }

    
/**
     * Add KKART Image sizes to WP.
     *
     * As of 3.3, image sizes can be registered via themes using add_theme_support for kkart
     * and defining an array of args. If these are not defined, we will use defaults. This is
     * handled in kkart_get_image_size function.
     *
     * 3.3 sizes:
     *
     * kkart_thumbnail - Used in product listings. We assume these work for a 3 column grid layout.
     * kkart_single - Used on single product pages for the main image.
     *
     * @since 2.3
     */
    
public function add_image_sizes() {
        
$thumbnail         kkart_get_image_size'thumbnail' );
        
$single            kkart_get_image_size'single' );
        
$gallery_thumbnail kkart_get_image_size'gallery_thumbnail' );

        
add_image_size'kkart_thumbnail'$thumbnail['width'], $thumbnail['height'], $thumbnail['crop'] );
        
add_image_size'kkart_single'$single['width'], $single['height'], $single['crop'] );
        
add_image_size'kkart_gallery_thumbnail'$gallery_thumbnail['width'], $gallery_thumbnail['height'], $gallery_thumbnail['crop'] );

        
/**
         * Legacy image sizes.
         *
         * @deprecated 3.3.0 These sizes will be removed in 4.6.0.
         */
        
add_image_size'shop_catalog'$thumbnail['width'], $thumbnail['height'], $thumbnail['crop'] );
        
add_image_size'shop_single'$single['width'], $single['height'], $single['crop'] );
        
add_image_size'shop_thumbnail'$gallery_thumbnail['width'], $gallery_thumbnail['height'], $gallery_thumbnail['crop'] );
    }

    
/**
     * Get the plugin url.
     *
     * @return string
     */
    
public function plugin_url() {
        return 
untrailingslashitplugins_url'/'KKART_PLUGIN_FILE ) );
    }

    
/**
     * Get the plugin path.
     *
     * @return string
     */
    
public function plugin_path() {
        return 
untrailingslashitplugin_dir_pathKKART_PLUGIN_FILE ) );
    }

    
/**
     * Get the template path.
     *
     * @return string
     */
    
public function template_path() {
        return 
apply_filters'kkart_template_path''kkart/' );
    }

    
/**
     * Get Ajax URL.
     *
     * @return string
     */
    
public function ajax_url() {
        return 
admin_url'admin-ajax.php''relative' );
    }

    
/**
     * Return the KKART API URL for a given request.
     *
     * @param string    $request Requested endpoint.
     * @param bool|null $ssl     If should use SSL, null if should auto detect. Default: null.
     * @return string
     */
    
public function api_request_url$request$ssl null ) {
        if ( 
is_null$ssl ) ) {
            
$scheme wp_parse_urlhome_url(), PHP_URL_SCHEME );
        } elseif ( 
$ssl ) {
            
$scheme 'https';
        } else {
            
$scheme 'http';
        }

        if ( 
strstrget_option'permalink_structure' ), '/index.php/' ) ) {
            
$api_request_url trailingslashithome_url'/index.php/kkart-api/' $request$scheme ) );
        } elseif ( 
get_option'permalink_structure' ) ) {
            
$api_request_url trailingslashithome_url'/kkart-api/' $request$scheme ) );
        } else {
            
$api_request_url add_query_arg'kkart-api'$requesttrailingslashithome_url''$scheme ) ) );
        }

        return 
esc_url_rawapply_filters'kkart_api_request_url'$api_request_url$request$ssl ) );
    }

    
/**
     * Load & enqueue active webhooks.
     *
     * @since 2.2
     */
    
private function load_webhooks() {

        if ( ! 
is_blog_installed() ) {
            return;
        }

        
/**
         * Hook: kkart_load_webhooks_limit.
         *
         * @since 3.6.0
         * @param int $limit Used to limit how many webhooks are loaded. Default: no limit.
         */
        
$limit apply_filters'kkart_load_webhooks_limit'null );

        
kkart_load_webhooks'active'$limit );
    }

    
/**
     * Initialize the customer and cart objects and setup customer saving on shutdown.
     *
     * @since 3.6.4
     * @return void
     */
    
public function initialize_cart() {
        
// Cart needs customer info.
        
if ( is_null$this->customer ) || ! $this->customer instanceof KKART_Customer ) {
            
$this->customer = new KKART_Customerget_current_user_id(), true );
            
// Customer should be saved during shutdown.
            
add_action'shutdown', array( $this->customer'save' ), 10 );
        }
        if ( 
is_null$this->cart ) || ! $this->cart instanceof KKART_Cart ) {
            
$this->cart = new KKART_Cart();
        }
    }

    
/**
     * Initialize the session class.
     *
     * @since 3.6.4
     * @return void
     */
    
public function initialize_session() {
        
// Session class, handles session data for users - can be overwritten if custom handler is needed.
        
$session_class apply_filters'kkart_session_handler''KKART_Session_Handler' );
        if ( 
is_null$this->session ) || ! $this->session instanceof $session_class ) {
            
$this->session = new $session_class();
            
$this->session->init();
        }
    }

    
/**
     * Set tablenames inside WPDB object.
     */
    
public function wpdb_table_fix() {
        
$this->define_tables();
    }

    
/**
     * Ran when any plugin is activated.
     *
     * @since 3.6.0
     * @param string $filename The filename of the activated plugin.
     */
    
public function activated_plugin$filename ) {
        include_once 
dirname__FILE__ ) . '/admin/helper/class-kkart-helper.php';

        
KKART_Helper::activated_plugin$filename );
    }

    
/**
     * Ran when any plugin is deactivated.
     *
     * @since 3.6.0
     * @param string $filename The filename of the deactivated plugin.
     */
    
public function deactivated_plugin$filename ) {
        include_once 
dirname__FILE__ ) . '/admin/helper/class-kkart-helper.php';

        
KKART_Helper::deactivated_plugin$filename );
    }

    
/**
     * Get queue instance.
     *
     * @return KKART_Queue_Interface
     */
    
public function queue() {
        return 
KKART_Queue::instance();
    }

    
/**
     * Get Checkout Class.
     *
     * @return KKART_Checkout
     */
    
public function checkout() {
        return 
KKART_Checkout::instance();
    }

    
/**
     * Get gateways class.
     *
     * @return KKART_Payment_Gateways
     */
    
public function payment_gateways() {
        return 
KKART_Payment_Gateways::instance();
    }

    
/**
     * Get shipping class.
     *
     * @return KKART_Shipping
     */
    
public function shipping() {
        return 
KKART_Shipping::instance();
    }

    
/**
     * Email Class.
     *
     * @return KKART_Emails
     */
    
public function mailer() {
        return 
KKART_Emails::instance();
    }

    
/**
     * Check if plugin assets are built and minified
     *
     * @return bool
     */
    
public function build_dependencies_satisfied() {
        
// Check if we have compiled CSS.
        
if ( ! file_existsKKART()->plugin_path() . '/assets/css/admin.css' ) ) {
            return 
false;
        }

        
// Check if we have minified JS.
        
if ( ! file_existsKKART()->plugin_path() . '/assets/js/admin/kkart_admin.min.js' ) ) {
            return 
false;
        }

        return 
true;
    }

    
/**
     * Output a admin notice when build dependencies not met.
     *
     * @return void
     */
    
public function build_dependencies_notice() {
        if ( 
$this->build_dependencies_satisfied() ) {
            return;
        }

        
$message_one __'You have installed a development version of Kkart which requires files to be built and minified. From the plugin directory, run <code>grunt assets</code> to build and minify assets.''kkart' );
        
$message_two sprintf(
            
/* translators: 1: URL of WordPress.org Repository 2: URL of the GitHub Repository release page */
            
__'Or you can download a pre-built version of the plugin from the <a href="%1$s">WordPress.org repository</a> or by visiting <a href="%2$s">the releases page in the GitHub repository</a>.''kkart' ),
            
'https://wordpress.org/plugins/kkart/',
            
'https://github.com/kkart/kkart/releases'
        
);
        
printf'<div class="error"><p>%s %s</p></div>'$message_one$message_two ); /* WPCS: xss ok. */
    
}

    
/**
     * Is the Kkart Admin actively included in the Kkart core?
     * Based on presence of a basic KKART Admin function.
     *
     * @return boolean
     */
    
public function is_kkart_admin_active() {
        return 
function_exists'kkart_admin_url' );
    }

    
/**
     * Call a user function. This should be used to execute any non-idempotent function, especially
     * those in the `includes` directory or provided by WordPress.
     *
     * This method can be useful for unit tests, since functions called using this method
     * can be easily mocked by using KKART_Unit_Test_Case::register_legacy_proxy_function_mocks.
     *
     * @param string $function_name The function to execute.
     * @param mixed  ...$parameters The parameters to pass to the function.
     *
     * @return mixed The result from the function.
     *
     * @since 4.4
     */
    
public function call_function$function_name, ...$parameters ) {
        return 
kkart_get_container()->getLegacyProxy::class )->call_function$function_name, ...$parameters );
    }

    
/**
     * Call a static method in a class. This should be used to execute any non-idempotent method in classes
     * from the `includes` directory.
     *
     * This method can be useful for unit tests, since methods called using this method
     * can be easily mocked by using KKART_Unit_Test_Case::register_legacy_proxy_static_mocks.
     *
     * @param string $class_name The name of the class containing the method.
     * @param string $method_name The name of the method.
     * @param mixed  ...$parameters The parameters to pass to the method.
     *
     * @return mixed The result from the method.
     *
     * @since 4.4
     */
    
public function call_static$class_name$method_name, ...$parameters ) {
        return 
kkart_get_container()->getLegacyProxy::class )->call_static$class_name$method_name, ...$parameters );
    }

    
/**
     * Gets an instance of a given legacy class.
     * This must not be used to get instances of classes in the `src` directory.
     *
     * This method can be useful for unit tests, since objects obtained using this method
     * can be easily mocked by using KKART_Unit_Test_Case::register_legacy_proxy_class_mocks.
     *
     * @param string $class_name The name of the class to get an instance for.
     * @param mixed  ...$args Parameters to be passed to the class constructor or to the appropriate internal 'get_instance_of_' method.
     *
     * @return object The instance of the class.
     * @throws \Exception The requested class belongs to the `src` directory, or there was an error creating an instance of the class.
     *
     * @since 4.4
     */
    
public function get_instance_ofstring $class_name, ...$args ) {
        return 
kkart_get_container()->getLegacyProxy::class )->get_instance_of$class_name, ...$args );
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0073 ]--