PluginProbe
Packeta / 2.3.2
Packeta v2.3.2
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 / Dashboard / DashboardPage.php

DashboardPage.php in Packeta 2.3.2, at src/Packetery/Module/Dashboard/DashboardPage.php

100 lines 2.4 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\Dashboard;
6
7 use Packetery\Latte\Engine;
8 use Packetery\Module\Carrier\CarrierUpdater;
9 use Packetery\Module\Framework\WpAdapter;
10 use Packetery\Module\ModuleHelper;
11 use Packetery\Module\Views\UrlBuilder;
12
13 class DashboardPage {
14
15 public const SLUG = 'packeta-home';
16
17 /**
18 * @var WpAdapter
19 */
20 private $wpAdapter;
21
22 /**
23 * @var Engine
24 */
25 private $latteEngine;
26
27 /**
28 * @var ModuleHelper
29 */
30 private $moduleHelper;
31
32 /**
33 * @var UrlBuilder
34 */
35 private $urlBuilder;
36
37 /**
38 * @var DashboardItemBuilder
39 */
40 private $dashboardItemBuilder;
41
42 /**
43 * @var CarrierUpdater
44 */
45 private $carrierUpdater;
46
47 public function __construct(
48 WpAdapter $wpAdapter,
49 Engine $latteEngine,
50 ModuleHelper $moduleHelper,
51 UrlBuilder $urlBuilder,
52 DashboardItemBuilder $dashboardItemBuilder,
53 CarrierUpdater $carrierUpdater
54 ) {
55 $this->wpAdapter = $wpAdapter;
56 $this->latteEngine = $latteEngine;
57 $this->moduleHelper = $moduleHelper;
58 $this->urlBuilder = $urlBuilder;
59 $this->dashboardItemBuilder = $dashboardItemBuilder;
60 $this->carrierUpdater = $carrierUpdater;
61 }
62
63 public function register(): void {
64 $this->wpAdapter->addSubmenuPage(
65 self::SLUG,
66 $this->wpAdapter->__( 'Home', 'packeta' ),
67 $this->wpAdapter->__( 'Home', 'packeta' ),
68 'manage_woocommerce',
69 self::SLUG,
70 [ $this, 'render' ]
71 );
72 }
73
74 public function render(): void {
75 $redirectUrl = $this->wpAdapter->addQueryArg(
76 [ 'page' => self::SLUG ],
77 $this->wpAdapter->getAdminUrl( null, 'admin.php' )
78 );
79 $this->carrierUpdater->startUpdate( $redirectUrl );
80 $carriersUpdateResult = $this->carrierUpdater->runUpdate();
81
82 $this->latteEngine->render(
83 PACKETERY_PLUGIN_DIR . '/template/dashboard/home.latte',
84 [
85 'items' => $this->dashboardItemBuilder->buildItems(),
86 'carriersUpdate' => $carriersUpdateResult,
87 'isCzechLocale' => $this->moduleHelper->isCzechLocale(),
88 'logoZasilkovna' => $this->urlBuilder->buildAssetUrl( 'public/images/logo-zasilkovna.svg' ),
89 'logoPacketa' => $this->urlBuilder->buildAssetUrl( 'public/images/logo-packeta.svg' ),
90
91 'translations' => [
92 'packeta' => $this->wpAdapter->__( 'Packeta', 'packeta' ),
93 'title' => $this->wpAdapter->__( 'Let\'s start with the plugin settings', 'packeta' ),
94 'getTheMost' => $this->wpAdapter->__( 'Follow the steps below to get the most out of Packeta', 'packeta' ),
95 ],
96 ]
97 );
98 }
99 }
100