JezK
Edit File: Setting.php
<?php namespace WeDevs\Dokan\Commission\Model; use WeDevs\Dokan\Commission\Settings\DefaultSetting; class Setting { /** * Commission type. * * @since 3.14.0 * * @var null|string */ protected $type = DefaultSetting::TYPE; /** * Flat commission amount * * @since 3.14.0 * * @var string|float|int */ protected $flat = ''; /** * Commissin percentage amount. * * @since 3.14.0 * * @var string|int|float */ protected $percentage = ''; /** * The category id for which the commission will be applied. * * @since 3.14.0 * @var string|int */ protected $category_id = ''; /** * The category commission data. * * @since 3.14.0 * * @var array */ protected $category_commissions = []; /** * Applied commission meta data. * * @since 3.14.0 * * @var array */ protected $meta_data = []; protected string $source; /** * Returns the commission meta data. * * @since 3.14.0 * * @return array */ public function get_meta_data(): array { return $this->meta_data; } /** * Sets the commission meta data. * * @since 3.14.0 * * @param array $meta_data * * @return $this */ public function set_meta_data( array $meta_data ): Setting { $this->meta_data = $meta_data; return $this; } /** * Sets the commission type. * * @since 3.14.0 * * @param mixed|string $type * * @return $this */ public function set_type( $type ): Setting { $this->type = $type; return $this; } /** * Sets the commission type. * * @since 3.14.0 * * @param mixed|string $type * * @return $this */ public function set_source( string $source ): Setting { $this->source = $source; return $this; } /** * Sets the flat commissin amount. * * @since 3.14.0 * * @param mixed|string $flat * * @return $this */ public function set_flat( $flat ): Setting { $this->flat = $flat; return $this; } /** * Sets the flat commissin amount. * * @since 3.14.0 * * @param mixed|string $flat * * @return $this */ public function set_combined_flat( $flat ): Setting { $this->flat = $flat; return $this; } /** * Sets the percentage amount. * * @since 3.14.0 * * @param mixed|string $percentage * * @return $this */ public function set_percentage( $percentage ): Setting { $this->percentage = $percentage; return $this; } /** * Sets the category commission data. * * @since 3.14.0 * * @param array $category_commissions * * @return $this */ public function set_category_commissions( array $category_commissions ): Setting { $this->category_commissions = $category_commissions; return $this; } /** * Sets the commission type. * * @since 3.14.0 * * @return mixed|string|null */ public function get_type() { return $this->type; } /** * Sets the commission source. * * @since 3.14.0 * * @return string */ public function get_source(): string { return $this->source; } /** * Returns the value of the flat settings. * * @since 3.14.0 * * @return string */ public function get_flat(): string { return $this->flat; } /** * Returns the flat amount. * * @since 3.14.0 * * @return float */ public function get_flat_value(): float { return $this->is_combined() ? 0 : floatval( $this->get_flat() ); } /** * Returns the flat amount. * * @since 3.14.0 * * @return float */ public function get_combine_flat(): float { return $this->is_combined() ? floatval( $this->flat ) : 0; } /** * Returns true if the commission is combined. * N.B. This is a legacy type. It does not exist in the new commission system. * * @return bool */ protected function is_combined(): bool { return $this->type === 'combine'; } /** * Returns the value of the percentage settings. * * @since 3.14.0 * * @return string */ public function get_percentage(): string { return $this->percentage; } /** * Returns the percentage amount. * * @since 3.14.0 * * @return float */ public function get_percentage_value(): float { return floatval( $this->percentage ); } /** * Returns the category commission data. * * @since 3.14.0 * * @return array|mixed|null */ public function get_category_commissions() { return $this->category_commissions; } /** * Returns the category id * * @since 3.14.0 * * @return array|mixed|null */ public function get_category_id() { return $this->category_id; } public function is_applicable(): bool { return trim( $this->percentage ) !== '' || trim( $this->flat ) !== ''; } /** * Returns the commission settings as an array. * * @since 3.14.0 * * @return array */ public function to_array(): array { return [ 'type' => $this->get_type(), 'flat' => $this->get_flat(), 'percentage' => $this->get_percentage(), 'source' => $this->get_source(), 'meta_data' => $this->get_meta_data(), ]; } }