latteEngine = $latteEngine; $this->formFactory = $formFactory; $this->orderControllerRouter = $orderController; } /** * Registers order modal. */ public function register(): void { add_action( 'admin_head', [ $this, 'renderTemplate' ] ); } /** * Renders template. */ public function renderTemplate(): void { $nonce = wp_create_nonce( 'wp_rest' ); $orderSaveUrl = $this->orderControllerRouter->getRouteUrl( Controller::PATH_SAVE_MODAL ); $this->latteEngine->render( PACKETERY_PLUGIN_DIR . '/template/order/modal-template.latte', [ 'nonce' => $nonce, 'orderSaveUrl' => $orderSaveUrl, 'form' => $this->createForm(), ] ); } /** * Creates order modal form. * * @return Form */ public function createForm(): Form { $form = $this->formFactory->create(); $form->addText( 'packetery_weight', __( 'weight', 'packetery' ) . ' (kg)' ) ->setRequired( false ) ->addRule( Form::FLOAT ); $form->addSubmit( 'submit', __( 'save', 'packetery' ) ); $form->addButton( 'cancel', __( 'cancel', 'packetery' ) ); $form->setDefaults( [ 'packetery_weight' => '{{ data.order.packetery_weight }}', ] ); return $form; } }