PluginProbe
Packeta / trunk
Packeta vtrunk
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 / Order / StoredUntilModal.php

StoredUntilModal.php in Packeta trunk, at src/Packetery/Module/Order/StoredUntilModal.php

105 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class StoredUntilModal.
4 *
5 * @package Packetery
6 */
7
8 declare( strict_types=1 );
9
10 namespace Packetery\Module\Order;
11
12 use Packetery\Latte\Engine;
13 use Packetery\Module\Api\Internal\OrderRouter;
14 use Packetery\Module\Forms\StoredUntilFormFactory;
15 use Packetery\Nette\Forms\Controls\SubmitButton;
16
17 /**
18 * Class StoredUntilModal.
19 *
20 * @package Packetery
21 */
22 class StoredUntilModal {
23
24 public const MODAL_ID = 'wc-packetery-stored-until-modal';
25
26 /**
27 * Latte engine.
28 *
29 * @var Engine
30 */
31 private $latteEngine;
32
33 /**
34 * Stored until form factory.
35 *
36 * @var StoredUntilFormFactory
37 */
38 private $storedUntilFormFactory;
39
40 /**
41 * Order router.
42 *
43 * @var OrderRouter
44 */
45 private $orderRouter;
46
47 /**
48 * Constructor.
49 *
50 * @param Engine $latteEngine Latte engine.
51 * @param StoredUntilFormFactory $storedUntilFormFactory Stored until form factory.
52 * @param OrderRouter $orderRouter Order router.
53 */
54 public function __construct(
55 Engine $latteEngine,
56 StoredUntilFormFactory $storedUntilFormFactory,
57 OrderRouter $orderRouter
58 ) {
59 $this->latteEngine = $latteEngine;
60 $this->storedUntilFormFactory = $storedUntilFormFactory;
61 $this->orderRouter = $orderRouter;
62 }
63
64 /**
65 * Registers order modal.
66 */
67 public function register(): void {
68 add_action( 'admin_head', [ $this, 'renderModal' ] );
69 }
70
71 /**
72 * Renders packet modal.
73 *
74 * @return void
75 */
76 public function renderModal(): void {
77 $form = $this->storedUntilFormFactory->createForm( sprintf( '%s_form', self::MODAL_ID ) );
78 $nonce = wp_create_nonce( 'wp_rest' );
79
80 $storedUntilSaveUrl = $this->orderRouter->getSaveStoredUntilUrl();
81
82 $submitButton = $form['submit'];
83 if ( $submitButton instanceof SubmitButton &&
84 $submitButton->isSubmittedBy()
85 ) {
86 $form->fireEvents();
87 }
88
89 $this->latteEngine->render(
90 PACKETERY_PLUGIN_DIR . '/template/order/stored-until-modal.latte',
91 [
92 'id' => self::MODAL_ID,
93 'form' => $form,
94 'nonce' => $nonce,
95 'storedUntilSaveUrl' => $storedUntilSaveUrl,
96 'translations' => [
97 'closeModalPanel' => __( 'Close modal panel', 'packeta' ),
98 // translators: %s: Order number.
99 'order#%s' => __( 'Order #%s', 'packeta' ),
100 ],
101 ]
102 );
103 }
104 }
105