PluginProbe
Packeta / 2.0.9
Packeta v2.0.9
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 / Checkout / CheckoutRenderer.php

CheckoutRenderer.php in Packeta 2.0.9, at src/Packetery/Module/Checkout/CheckoutRenderer.php

135 lines 3.0 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\Checkout;
6
7 use Packetery\Latte\Engine;
8 use Packetery\Module\Framework\WpAdapter;
9 use Packetery\Module\Order;
10 use Packetery\Module\Views\UrlBuilder;
11 use WC_Shipping_Rate;
12
13 class CheckoutRenderer {
14
15 private const BUTTON_RENDERER_TABLE_ROW = 'table-row';
16 private const BUTTON_RENDERER_AFTER_RATE = 'after-rate';
17
18 /**
19 * @var Engine
20 */
21 private $latteEngine;
22
23 /**
24 * @var UrlBuilder
25 */
26 private $urlBuilder;
27
28 /**
29 * @var CheckoutService
30 */
31 private $checkoutService;
32
33 /**
34 * @var WpAdapter
35 */
36 private $wpAdapter;
37
38 public function __construct(
39 Engine $latteEngine,
40 UrlBuilder $urlBuilder,
41 CheckoutService $checkoutService,
42 WpAdapter $wpAdapter
43 ) {
44 $this->latteEngine = $latteEngine;
45 $this->urlBuilder = $urlBuilder;
46 $this->checkoutService = $checkoutService;
47 $this->wpAdapter = $wpAdapter;
48 }
49
50 /**
51 * Adds fields to the checkout page to save the values later
52 */
53 public function actionRenderHiddenInputFields(): void {
54 $this->latteEngine->render(
55 PACKETERY_PLUGIN_DIR . '/template/checkout/input_fields.latte',
56 [
57 'fields' => array_unique(
58 array_merge(
59 array_column( Order\Attribute::$pickupPointAttributes, 'name' ),
60 array_column( Order\Attribute::$homeDeliveryAttributes, 'name' ),
61 array_column( Order\Attribute::$carDeliveryAttributes, 'name' )
62 )
63 ),
64 ]
65 );
66 }
67
68 /**
69 * Renders widget button and information about chosen pickup point
70 *
71 * @param WC_Shipping_Rate $shippingRate Shipping rate.
72 */
73 public function actionRenderWidgetButtonAfterShippingRate( WC_Shipping_Rate $shippingRate ): void {
74 if ( ! is_checkout() ) {
75 return;
76 }
77
78 if ( ! $this->checkoutService->isPacketeryShippingMethod( $shippingRate->get_id() ) ) {
79 return;
80 }
81
82 $this->latteEngine->render(
83 PACKETERY_PLUGIN_DIR . '/template/checkout/widget-button.latte',
84 [
85 'renderer' => self::BUTTON_RENDERER_AFTER_RATE,
86 'logo' => $this->urlBuilder->buildAssetUrl( 'public/images/packeta-symbol.png' ),
87 'translations' => [
88 'packeta' => $this->wpAdapter->__( 'Packeta', 'packeta' ),
89 ],
90 ]
91 );
92 }
93
94 /**
95 * Render widget button table row.
96 *
97 * @return void
98 */
99 public function actionRenderWidgetButtonTableRow(): void {
100 if ( ! is_checkout() ) {
101 return;
102 }
103
104 $this->latteEngine->render(
105 PACKETERY_PLUGIN_DIR . '/template/checkout/widget-button-row.latte',
106 [
107 'renderer' => self::BUTTON_RENDERER_TABLE_ROW,
108 'logo' => $this->urlBuilder->buildAssetUrl( 'public/images/packeta-symbol.png' ),
109 'translations' => [
110 'packeta' => $this->wpAdapter->__( 'Packeta', 'packeta' ),
111 ],
112 ]
113 );
114 }
115
116 /**
117 * Shows an estimated delivery date for Car Delivery.
118 *
119 * @return void
120 */
121 public function actionRenderEstimatedDeliveryDateSection(): void {
122 if ( ! is_checkout() ) {
123 return;
124 }
125
126 if ( ! $this->checkoutService->isCarDeliveryOrder() ) {
127 return;
128 }
129
130 $this->latteEngine->render(
131 PACKETERY_PLUGIN_DIR . '/template/checkout/car-delivery-estimated-delivery-date.latte'
132 );
133 }
134 }
135