HEX
Server: Apache/2
System: Linux server-80-13-140-150.da.direct 5.14.0-362.24.1.el9_3.0.1.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Apr 4 22:31:43 UTC 2024 x86_64
User: cpt (1004)
PHP: 8.1.24
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/cpt/public_html/wp-content/plugins/mailpoet/lib/Newsletter/Statistics/WooCommerceRevenue.php
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing

namespace MailPoet\Newsletter\Statistics;

if (!defined('ABSPATH')) exit;


use MailPoet\WooCommerce\Helper;

class WooCommerceRevenue {

  /** @var string */
  private $currency;

  /** @var float */
  private $value;

  /** @var int */
  private $ordersCount;

  /** @var Helper */
  private $wooCommerceHelper;

  public function __construct(
    $currency,
    $value,
    $ordersCount,
    Helper $wooCommerceHelper
  ) {
    $this->currency = $currency;
    $this->value = $value;
    $this->ordersCount = $ordersCount;
    $this->wooCommerceHelper = $wooCommerceHelper;
  }

  /** @return string */
  public function getCurrency() {
    return $this->currency;
  }

  /** @return int */
  public function getOrdersCount() {
    return $this->ordersCount;
  }

  /** @return float */
  public function getValue() {
    return $this->value;
  }

  /** @return string */
  public function getFormattedValue() {
    return $this->wooCommerceHelper->getRawPrice($this->value, ['currency' => $this->currency]);
  }

  /** @return string */
  public function getFormattedAverageValue(): string {
    $average = 0;
    if ($this->ordersCount > 0) {
      $average = $this->value / $this->ordersCount;
    }
    return $this->wooCommerceHelper->getRawPrice($average, ['currency' => $this->currency]);
  }

  /**
   * @return array
   */
  public function asArray() {
    return [
      'currency' => $this->currency,
      'value' => (float)$this->value,
      'count' => (int)$this->ordersCount,
      'formatted' => $this->getFormattedValue(),
      'formatted_average' => $this->getFormattedAverageValue(),
    ];
  }
}