PluginProbe
Packeta / 2.1
Packeta v2.1
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / src / Packetery / Module / Views / ViewAdmin.php

ViewAdmin.php in Packeta 2.1, at src/Packetery/Module/Views/ViewAdmin.php

142 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare( strict_types=1 );
4
5 namespace Packetery\Module\Views;
6
7 use Packetery\Latte\Engine;
8 use Packetery\Module\Carrier\CarrierOptionsFactory;
9 use Packetery\Module\ContextResolver;
10 use Packetery\Module\Framework\WpAdapter;
11 use Packetery\Module\ModuleHelper;
12 use Packetery\Module\Order;
13 use WC_Order;
14
15 use function __;
16
17 class ViewAdmin {
18
19 /**
20 * @var ContextResolver
21 */
22 private $contextResolver;
23
24 /**
25 * @var Engine
26 */
27 private $latteEngine;
28
29 /**
30 * @var WpAdapter
31 */
32 private $wpAdapter;
33
34 /**
35 * @var Order\Repository
36 */
37 private $orderRepository;
38
39 /**
40 * @var CarrierOptionsFactory
41 */
42 private $carrierOptionsFactory;
43
44 /**
45 * @var ModuleHelper
46 */
47 private $moduleHelper;
48
49 public function __construct(
50 ContextResolver $contextResolver,
51 Engine $latteEngine,
52 WpAdapter $wpAdapter,
53 Order\Repository $orderRepository,
54 CarrierOptionsFactory $carrierOptionsFactory,
55 ModuleHelper $moduleHelper
56 ) {
57
58 $this->contextResolver = $contextResolver;
59 $this->latteEngine = $latteEngine;
60 $this->wpAdapter = $wpAdapter;
61 $this->orderRepository = $orderRepository;
62 $this->carrierOptionsFactory = $carrierOptionsFactory;
63 $this->moduleHelper = $moduleHelper;
64 }
65
66 /**
67 * Renders delivery detail for packetery orders.
68 *
69 * @param WC_Order $wcOrder WordPress order.
70 */
71 public function renderDeliveryDetail( WC_Order $wcOrder ): void {
72 $order = $this->orderRepository->getByWcOrderWithValidCarrier( $wcOrder );
73 if ( $order === null ) {
74 return;
75 }
76
77 $carrierId = $order->getCarrier()->getId();
78 $carrierOptions = $this->carrierOptionsFactory->createByCarrierId( $carrierId );
79
80 $this->latteEngine->render(
81 PACKETERY_PLUGIN_DIR . '/template/order/delivery-detail.latte',
82 [
83 'pickupPoint' => $order->getPickupPoint(),
84 'validatedDeliveryAddress' => $order->getValidatedDeliveryAddress(),
85 'carrierAddressValidation' => $carrierOptions->getAddressValidation(),
86 'isExternalCarrier' => $order->isExternalCarrier(),
87 'translations' => [
88 'packeta' => $this->wpAdapter->__( 'Packeta', 'packeta' ),
89 'pickupPointDetail' => $this->wpAdapter->__( 'Pickup Point Detail', 'packeta' ),
90 'name' => $this->wpAdapter->__( 'Name', 'packeta' ),
91 'address' => $this->wpAdapter->__( 'Address', 'packeta' ),
92 'pickupPointDetailCaps' => $this->wpAdapter->__( 'Pickup Point Detail', 'packeta' ),
93 'addressWasNotValidated' => $this->wpAdapter->__( 'Address was not validated', 'packeta' ),
94 ],
95 ]
96 );
97 }
98
99 /**
100 * Renders confirm modal template.
101 */
102 public function renderConfirmModalTemplate(): void {
103 if ( ! $this->contextResolver->isConfirmModalPage() ) {
104 return;
105 }
106 $this->latteEngine->render(
107 PACKETERY_PLUGIN_DIR . '/template/confirm-modal-template.latte',
108 [
109 'translations' => [
110 'closeModalPanel' => $this->wpAdapter->__( 'Close modal panel', 'packeta' ),
111 'no' => $this->wpAdapter->__( 'No', 'packeta' ),
112 'yes' => $this->wpAdapter->__( 'Yes', 'packeta' ),
113 ],
114 ]
115 );
116 }
117
118 /**
119 * Print inactive WooCommerce notice.
120 *
121 * @return void
122 */
123 public function echoInactiveWooCommerceNotice(): void {
124 if ( $this->moduleHelper->isWooCommercePluginActive() === true ) {
125 // When Packeta plugin is active and WooCommerce plugin is inactive.
126 // If user decides to activate WooCommerce plugin then invalid notice will not be rendered.
127 // Packeta plugin probably bootstraps twice in such case.
128 return;
129 }
130
131 $this->latteEngine->render(
132 PACKETERY_PLUGIN_DIR . '/template/admin-notice.latte',
133 [
134 'message' => [
135 'type' => 'error',
136 'message' => __( 'Packeta plugin requires WooCommerce. Please install and activate it first.', 'packeta' ),
137 ],
138 ]
139 );
140 }
141 }
142