# packeta/1.6.1/src/Packetery/Module/Order/DetailCommonLogic.php

Packeta, version 1.6.1. 113 lines.

- Page: https://pluginprobe.com/plugins/packeta/1.6.1/code/src/Packetery/Module/Order/DetailCommonLogic.php
- Raw: https://pluginprobe.com/plugins/packeta/1.6.1/raw/src/Packetery/Module/Order/DetailCommonLogic.php
- Modified: 2023-08-30T08:36:18+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/packeta/1.6.1/code/src/Packetery/Module/Order/DetailCommonLogic.php#L10-L20`.

```php
<?php
/**
 * Class DetailCommonLogic.
 *
 * @package Packetery
 */

declare( strict_types=1 );

namespace Packetery\Module\Order;

use Packetery\Core\Entity\Order;
use Packetery\Module;
use Packetery\Module\Exception\InvalidCarrierException;
use Packetery\Nette;

/**
 * Class DetailCommonLogic.
 *
 * @package Packetery
 */
class DetailCommonLogic {

	/**
	 * Order.
	 *
	 * @var Order|null
	 */
	private $order;

	/**
	 * Context resolver.
	 *
	 * @var Module\ContextResolver
	 */
	private $contextResolver;

	/**
	 * Request.
	 *
	 * @var Nette\Http\Request
	 */
	private $request;

	/**
	 * Order repository.
	 *
	 * @var Repository
	 */
	private $orderRepository;

	/**
	 * Constructor.
	 *
	 * @param Module\ContextResolver $contextResolver Context resolver.
	 * @param Nette\Http\Request     $request         Request.
	 * @param Repository             $orderRepository Order repository.
	 */
	public function __construct(
		Module\ContextResolver $contextResolver,
		Nette\Http\Request $request,
		Repository $orderRepository
	) {
		$this->contextResolver = $contextResolver;
		$this->request         = $request;
		$this->orderRepository = $orderRepository;
	}

	/**
	 * Gets order.
	 *
	 * @return Order|null
	 */
	public function getOrder(): ?Order {
		if ( null !== $this->order ) {
			return $this->order;
		}

		$orderId = $this->getOrderId();
		if ( null === $orderId ) {
			return null;
		}

		try {
			$this->order = $this->orderRepository->getById( $orderId );
		} catch ( InvalidCarrierException $invalidCarrierException ) {
			return null;
		}

		return $this->order;
	}

	/**
	 * Gets order ID.
	 *
	 * @return int|null
	 */
	public function getOrderId(): ?int {
		global $post;

		if ( false === $this->contextResolver->isOrderDetailPage() ) {
			return null;
		}

		$idParam = $this->request->getQuery( 'id' );
		if ( null !== $idParam && Module\Helper::isHposEnabled() ) {
			return (int) $idParam;
		}

		return $post->ID;
	}
}

```
