$10 GRAYBYTE WORDPRESS FILE MANAGER $64

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/var/softaculous/sitepad/editor/site-data/plugins/kkart-pro/includes/

HOME
Current File : /var/softaculous/sitepad/editor/site-data/plugins/kkart-pro/includes//class-kkart-auth.php
<?php
/**
 * Kkart Auth
 *
 * Handles kkart-auth endpoint requests.
 *
 * @package Kkart\RestApi
 * @since   2.4.0
 */

defined( 'ABSPATH' ) || exit;

/**
 * Auth class.
 */
class KKART_Auth {

	/**
	 * Version.
	 *
	 * @var int
	 */
	const VERSION = 1;

	/**
	 * Setup class.
	 *
	 * @since 2.4.0
	 */
	public function __construct() {
		// Add query vars.
		add_filter( 'query_vars', array( $this, 'add_query_vars' ), 0 );

		// Register auth endpoint.
		add_action( 'init', array( __CLASS__, 'add_endpoint' ), 0 );

		// Handle auth requests.
		add_action( 'parse_request', array( $this, 'handle_auth_requests' ), 0 );
	}

	/**
	 * Add query vars.
	 *
	 * @since  2.4.0
	 * @param  array $vars Query variables.
	 * @return string[]
	 */
	public function add_query_vars( $vars ) {
		$vars[] = 'kkart-auth-version';
		$vars[] = 'kkart-auth-route';
		return $vars;
	}

	/**
	 * Add auth endpoint.
	 *
	 * @since 2.4.0
	 */
	public static function add_endpoint() {
		add_rewrite_rule( '^kkart-auth/v([1]{1})/(.*)?', 'index.php?kkart-auth-version=$matches[1]&kkart-auth-route=$matches[2]', 'top' );
	}

	/**
	 * Get scope name.
	 *
	 * @since 2.4.0
	 * @param  string $scope Permission scope.
	 * @return string
	 */
	protected function get_i18n_scope( $scope ) {
		$permissions = array(
			'read'       => __( 'Read', 'kkart' ),
			'write'      => __( 'Write', 'kkart' ),
			'read_write' => __( 'Read/Write', 'kkart' ),
		);

		return $permissions[ $scope ];
	}

	/**
	 * Return a list of permissions a scope allows.
	 *
	 * @since  2.4.0
	 * @param  string $scope Permission scope.
	 * @return array
	 */
	protected function get_permissions_in_scope( $scope ) {
		$permissions = array();
		switch ( $scope ) {
			case 'read':
				$permissions[] = __( 'View coupons', 'kkart' );
				$permissions[] = __( 'View customers', 'kkart' );
				$permissions[] = __( 'View orders and sales reports', 'kkart' );
				$permissions[] = __( 'View products', 'kkart' );
				break;
			case 'write':
				$permissions[] = __( 'Create webhooks', 'kkart' );
				$permissions[] = __( 'Create coupons', 'kkart' );
				$permissions[] = __( 'Create customers', 'kkart' );
				$permissions[] = __( 'Create orders', 'kkart' );
				$permissions[] = __( 'Create products', 'kkart' );
				break;
			case 'read_write':
				$permissions[] = __( 'Create webhooks', 'kkart' );
				$permissions[] = __( 'View and manage coupons', 'kkart' );
				$permissions[] = __( 'View and manage customers', 'kkart' );
				$permissions[] = __( 'View and manage orders and sales reports', 'kkart' );
				$permissions[] = __( 'View and manage products', 'kkart' );
				break;
		}
		return apply_filters( 'kkart_api_permissions_in_scope', $permissions, $scope );
	}

	/**
	 * Build auth urls.
	 *
	 * @since  2.4.0
	 * @param  array  $data     Data to build URL.
	 * @param  string $endpoint Endpoint.
	 * @return string
	 */
	protected function build_url( $data, $endpoint ) {
		$url = kkart_get_endpoint_url( 'kkart-auth/v' . self::VERSION, $endpoint, home_url( '/' ) );

		return add_query_arg(
			array(
				'app_name'     => kkart_clean( $data['app_name'] ),
				'user_id'      => kkart_clean( $data['user_id'] ),
				'return_url'   => rawurlencode( $this->get_formatted_url( $data['return_url'] ) ),
				'callback_url' => rawurlencode( $this->get_formatted_url( $data['callback_url'] ) ),
				'scope'        => kkart_clean( $data['scope'] ),
			), $url
		);
	}

	/**
	 * Decode and format a URL.
	 *
	 * @param  string $url URL.
	 * @return string
	 */
	protected function get_formatted_url( $url ) {
		$url = urldecode( $url );

		if ( ! strstr( $url, '://' ) ) {
			$url = 'https://' . $url;
		}

		return $url;
	}

	/**
	 * Make validation.
	 *
	 * @since  2.4.0
	 * @throws Exception When validate fails.
	 */
	protected function make_validation() {
		$data   = array();
		$params = array(
			'app_name',
			'user_id',
			'return_url',
			'callback_url',
			'scope',
		);

		foreach ( $params as $param ) {
			if ( empty( $_REQUEST[ $param ] ) ) { // WPCS: input var ok, CSRF ok.
				/* translators: %s: parameter */
				throw new Exception( sprintf( __( 'Missing parameter %s', 'kkart' ), $param ) );
			}

			$data[ $param ] = wp_unslash( $_REQUEST[ $param ] ); // WPCS: input var ok, CSRF ok, sanitization ok.
		}

		if ( ! in_array( $data['scope'], array( 'read', 'write', 'read_write' ), true ) ) {
			/* translators: %s: scope */
			throw new Exception( sprintf( __( 'Invalid scope %s', 'kkart' ), kkart_clean( $data['scope'] ) ) );
		}

		foreach ( array( 'return_url', 'callback_url' ) as $param ) {
			$param = $this->get_formatted_url( $data[ $param ] );

			if ( false === filter_var( $param, FILTER_VALIDATE_URL ) ) {
				/* translators: %s: url */
				throw new Exception( sprintf( __( 'The %s is not a valid URL', 'kkart' ), $param ) );
			}
		}

		$callback_url = $this->get_formatted_url( $data['callback_url'] );

		if ( 0 !== stripos( $callback_url, 'https://' ) ) {
			throw new Exception( __( 'The callback_url needs to be over SSL', 'kkart' ) );
		}
	}

	/**
	 * Create keys.
	 *
	 * @since  2.4.0
	 *
	 * @param  string $app_name    App name.
	 * @param  string $app_user_id User ID.
	 * @param  string $scope       Scope.
	 *
	 * @return array
	 */
	protected function create_keys( $app_name, $app_user_id, $scope ) {
		global $wpdb;

		$description = sprintf(
			/* translators: 1: app name 2: scope 3: date 4: time */
			__( '%1$s - API %2$s (created on %3$s at %4$s).', 'kkart' ),
			kkart_clean( $app_name ),
			$this->get_i18n_scope( $scope ),
			date_i18n( kkart_date_format() ),
			date_i18n( kkart_time_format() )
		);
		$user = wp_get_current_user();

		// Created API keys.
		$permissions     = in_array( $scope, array( 'read', 'write', 'read_write' ), true ) ? sanitize_text_field( $scope ) : 'read';
		$consumer_key    = 'ck_' . kkart_rand_hash();
		$consumer_secret = 'cs_' . kkart_rand_hash();

		$wpdb->insert(
			$wpdb->prefix . 'kkart_api_keys',
			array(
				'user_id'         => $user->ID,
				'description'     => $description,
				'permissions'     => $permissions,
				'consumer_key'    => kkart_api_hash( $consumer_key ),
				'consumer_secret' => $consumer_secret,
				'truncated_key'   => substr( $consumer_key, -7 ),
			),
			array(
				'%d',
				'%s',
				'%s',
				'%s',
				'%s',
				'%s',
			)
		);

		return array(
			'key_id'          => $wpdb->insert_id,
			'user_id'         => $app_user_id,
			'consumer_key'    => $consumer_key,
			'consumer_secret' => $consumer_secret,
			'key_permissions' => $permissions,
		);
	}

	/**
	 * Post consumer data.
	 *
	 * @since  2.4.0
	 *
	 * @throws Exception When validation fails.
	 * @param  array  $consumer_data Consumer data.
	 * @param  string $url           URL.
	 * @return bool
	 */
	protected function post_consumer_data( $consumer_data, $url ) {
		$params = array(
			'body'    => wp_json_encode( $consumer_data ),
			'timeout' => 60,
			'headers' => array(
				'Content-Type' => 'application/json;charset=' . get_bloginfo( 'charset' ),
			),
		);

		$response = wp_safe_remote_post( esc_url_raw( $url ), $params );

		if ( is_wp_error( $response ) ) {
			throw new Exception( $response->get_error_message() );
		} elseif ( 200 !== intval( $response['response']['code'] ) ) {
			throw new Exception( __( 'An error occurred in the request and at the time were unable to send the consumer data', 'kkart' ) );
		}

		return true;
	}

	/**
	 * Handle auth requests.
	 *
	 * @since 2.4.0
	 * @throws Exception When auth_endpoint validation fails.
	 */
	public function handle_auth_requests() {
		global $wp;

		if ( ! empty( $_GET['kkart-auth-version'] ) ) { // WPCS: input var ok, CSRF ok.
			$wp->query_vars['kkart-auth-version'] = kkart_clean( wp_unslash( $_GET['kkart-auth-version'] ) ); // WPCS: input var ok, CSRF ok.
		}

		if ( ! empty( $_GET['kkart-auth-route'] ) ) { // WPCS: input var ok, CSRF ok.
			$wp->query_vars['kkart-auth-route'] = kkart_clean( wp_unslash( $_GET['kkart-auth-route'] ) ); // WPCS: input var ok, CSRF ok.
		}

		// kkart-auth endpoint requests.
		if ( ! empty( $wp->query_vars['kkart-auth-version'] ) && ! empty( $wp->query_vars['kkart-auth-route'] ) ) {
			$this->auth_endpoint( $wp->query_vars['kkart-auth-route'] );
		}
	}

	/**
	 * Auth endpoint.
	 *
	 * @since 2.4.0
	 * @throws Exception When validation fails.
	 * @param string $route Route.
	 */
	protected function auth_endpoint( $route ) {
		ob_start();

		$consumer_data = array();

		try {
			$route = strtolower( kkart_clean( $route ) );
			$this->make_validation();

			$data = wp_unslash( $_REQUEST ); // WPCS: input var ok, CSRF ok.

			// Login endpoint.
			if ( 'login' === $route && ! is_user_logged_in() ) {
				kkart_get_template(
					'auth/form-login.php', array(
						'app_name'     => kkart_clean( $data['app_name'] ),
						'return_url'   => add_query_arg(
							array(
								'success' => 0,
								'user_id' => kkart_clean( $data['user_id'] ),
							), $this->get_formatted_url( $data['return_url'] )
						),
						'redirect_url' => $this->build_url( $data, 'authorize' ),
					)
				);
				exit;

			} elseif ( 'login' === $route && is_user_logged_in() ) {
				// Redirect with user is logged in.
				wp_redirect( esc_url_raw( $this->build_url( $data, 'authorize' ) ) );
				exit;

			} elseif ( 'authorize' === $route && ! is_user_logged_in() ) {
				// Redirect with user is not logged in and trying to access the authorize endpoint.
				wp_redirect( esc_url_raw( $this->build_url( $data, 'login' ) ) );
				exit;

			} elseif ( 'authorize' === $route && current_user_can( 'manage_kkart' ) ) {
				// Authorize endpoint.
				kkart_get_template(
					'auth/form-grant-access.php', array(
						'app_name'    => kkart_clean( $data['app_name'] ),
						'return_url'  => add_query_arg(
							array(
								'success' => 0,
								'user_id' => kkart_clean( $data['user_id'] ),
							), $this->get_formatted_url( $data['return_url'] )
						),
						'scope'       => $this->get_i18n_scope( kkart_clean( $data['scope'] ) ),
						'permissions' => $this->get_permissions_in_scope( kkart_clean( $data['scope'] ) ),
						'granted_url' => wp_nonce_url( $this->build_url( $data, 'access_granted' ), 'kkart_auth_grant_access', 'kkart_auth_nonce' ),
						'logout_url'  => wp_logout_url( $this->build_url( $data, 'login' ) ),
						'user'        => wp_get_current_user(),
					)
				);
				exit;

			} elseif ( 'access_granted' === $route && current_user_can( 'manage_kkart' ) ) {
				// Granted access endpoint.
				if ( ! isset( $_GET['kkart_auth_nonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['kkart_auth_nonce'] ) ), 'kkart_auth_grant_access' ) ) { // WPCS: input var ok.
					throw new Exception( __( 'Invalid nonce verification', 'kkart' ) );
				}

				$consumer_data = $this->create_keys( $data['app_name'], $data['user_id'], $data['scope'] );
				$response      = $this->post_consumer_data( $consumer_data, $this->get_formatted_url( $data['callback_url'] ) );

				if ( $response ) {
					wp_redirect(
						esc_url_raw(
							add_query_arg(
								array(
									'success' => 1,
									'user_id' => kkart_clean( $data['user_id'] ),
								), $this->get_formatted_url( $data['return_url'] )
							)
						)
					);
					exit;
				}
			} else {
				throw new Exception( __( 'You do not have permission to access this page', 'kkart' ) );
			}
		} catch ( Exception $e ) {
			$this->maybe_delete_key( $consumer_data );

			/* translators: %s: error message */
			wp_die( sprintf( esc_html__( 'Error: %s.', 'kkart' ), esc_html( $e->getMessage() ) ), esc_html__( 'Access denied', 'kkart' ), array( 'response' => 401 ) );
		}
	}

	/**
	 * Maybe delete key.
	 *
	 * @since 2.4.0
	 *
	 * @param array $key Key.
	 */
	private function maybe_delete_key( $key ) {
		global $wpdb;

		if ( isset( $key['key_id'] ) ) {
			$wpdb->delete( $wpdb->prefix . 'kkart_api_keys', array( 'key_id' => $key['key_id'] ), array( '%d' ) );
		}
	}
}
new KKART_Auth();


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
21 Feb 2026 2.55 AM
root / root
0755
abstracts
--
21 Feb 2026 2.55 AM
root / root
0755
admin
--
21 Feb 2026 2.55 AM
root / root
0755
cli
--
21 Feb 2026 2.55 AM
root / root
0755
customizer
--
21 Feb 2026 2.55 AM
root / root
0755
data-stores
--
21 Feb 2026 2.55 AM
root / root
0755
emails
--
21 Feb 2026 2.55 AM
root / root
0755
export
--
21 Feb 2026 2.55 AM
root / root
0755
gateways
--
21 Feb 2026 2.55 AM
root / root
0755
import
--
21 Feb 2026 2.55 AM
root / root
0755
integrations
--
21 Feb 2026 2.55 AM
root / root
0755
interfaces
--
21 Feb 2026 2.55 AM
root / root
0755
legacy
--
21 Feb 2026 2.55 AM
root / root
0755
libraries
--
21 Feb 2026 2.55 AM
root / root
0755
log-handlers
--
21 Feb 2026 2.55 AM
root / root
0755
payment-tokens
--
21 Feb 2026 2.55 AM
root / root
0755
queue
--
21 Feb 2026 2.55 AM
root / root
0755
rest-api
--
21 Feb 2026 2.55 AM
root / root
0755
shipping
--
21 Feb 2026 2.55 AM
root / root
0755
shortcodes
--
21 Feb 2026 2.55 AM
root / root
0755
theme-support
--
21 Feb 2026 2.55 AM
root / root
0755
tracks
--
21 Feb 2026 2.55 AM
root / root
0755
traits
--
21 Feb 2026 2.55 AM
root / root
0755
walkers
--
21 Feb 2026 2.55 AM
root / root
0755
wccom-site
--
21 Feb 2026 2.55 AM
root / root
0755
widgets
--
21 Feb 2026 2.55 AM
root / root
0755
body-props-settings.php
8.183 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-ajax.php
128.261 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-api.php
4.971 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-auth.php
11.659 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-autoloader.php
2.775 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-background-emailer.php
4.593 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-background-updater.php
3.496 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-breadcrumb.php
9.465 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-cache-helper.php
10.71 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-cart-fees.php
3.416 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-cart-session.php
14.459 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-cart-totals.php
27.723 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-cart.php
63.235 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-checkout.php
44.586 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-cli.php
1.019 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-comments.php
12.993 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-countries.php
42.209 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-coupon.php
32.568 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-customer-download-log.php
3.377 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-customer-download.php
10.357 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-customer.php
27.24 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-data-exception.php
1.275 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-data-store.php
5.881 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-datetime.php
2.198 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-deprecated-action-hooks.php
6.54 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-deprecated-filter-hooks.php
6.263 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-discounts.php
30.963 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-download-handler.php
23.369 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-emails.php
22.166 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-embed.php
4.184 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-form-handler.php
43.727 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-frontend-scripts.php
25.999 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-geo-ip.php
30.435 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-geolite-integration.php
1.994 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-geolocation.php
10.338 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-https.php
4.294 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-install.php
53.838 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-integrations.php
1.285 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-log-levels.php
2.536 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-logger.php
8.208 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-meta-data.php
2.179 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-factory.php
3.137 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-item-coupon.php
4.021 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-item-fee.php
8.7 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-item-meta.php
5.8 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-item-product.php
13.053 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-item-shipping.php
7.747 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-item-tax.php
6.438 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-item.php
10.69 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-query.php
2.518 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order-refund.php
4.892 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-order.php
61.028 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-payment-gateways.php
5.241 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-payment-tokens.php
5.905 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-post-data.php
17.814 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-post-types.php
26.492 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-privacy-background-process.php
1.693 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-privacy-erasers.php
13.284 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-privacy-exporters.php
14.119 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-privacy.php
14.855 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-attribute.php
6.887 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-download.php
6.015 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-external.php
4.774 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-factory.php
3.597 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-grouped.php
5.194 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-query.php
2.17 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-simple.php
1.854 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-variable.php
21.468 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-product-variation.php
17.197 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-query.php
30.399 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-rate-limiter.php
2.083 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-regenerate-images-request.php
8.169 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-regenerate-images.php
15.241 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-register-wp-admin-settings.php
4.873 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-rest-authentication.php
19.347 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-rest-exception.php
0.267 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-session-handler.php
10.567 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-shipping-rate.php
5.262 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-shipping-zone.php
13.09 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-shipping-zones.php
4.071 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-shipping.php
11.335 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-shortcodes.php
17.205 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-structured-data.php
17.201 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-tax.php
35.837 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-template-loader.php
18.436 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-tracker.php
22.509 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-validation.php
5.835 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart-webhook.php
29.851 KB
18 Feb 2026 11.32 PM
root / root
0644
class-kkart.php
31.278 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-account-functions.php
12.69 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-attribute-functions.php
20.589 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-cart-functions.php
17.269 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-conditional-functions.php
11.796 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-core-functions.php
82.039 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-coupon-functions.php
2.647 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-formatting-functions.php
41.608 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-notice-functions.php
7.444 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-order-functions.php
33.528 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-order-item-functions.php
5.056 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-page-functions.php
6.918 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-product-functions.php
47.298 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-rest-functions.php
10.621 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-stock-functions.php
12.454 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-template-functions.php
164.644 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-template-hooks.php
11.057 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-term-functions.php
19.451 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-update-functions.php
64.883 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-user-functions.php
26.584 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-webhook-functions.php
5.579 KB
18 Feb 2026 11.32 PM
root / root
0644
kkart-widget-functions.php
2.076 KB
18 Feb 2026 11.32 PM
root / root
0644
premium.php
0.921 KB
18 Feb 2026 11.32 PM
root / root
0644
premium_functions.php
0.935 KB
18 Feb 2026 11.32 PM
root / root
0644
shortcode_functions.php
71.114 KB
18 Feb 2026 11.32 PM
root / root
0644
shortcodes.php
265.735 KB
18 Feb 2026 11.32 PM
root / root
0644
template.php
2.853 KB
18 Feb 2026 11.32 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF