PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / vendor / otgs / installer / includes / admin-notices / Display.php
woocommerce-multilingual / vendor / otgs / installer / includes / admin-notices Last commit date
config 4 years ago notices 4 weeks ago Config.php 4 weeks ago Dismissed.php 4 weeks ago Display.php 4 weeks ago Loader.php 4 weeks ago MessageTexts.php 4 weeks ago PageConfig.php 4 weeks ago ScreenConfig.php 4 weeks ago Store.php 4 weeks ago
Display.php
82 lines
1 <?php
2
3 namespace OTGS\Installer\AdminNotices;
4
5 class Display {
6
7 private $currentNotices;
8 private $pageConfig;
9 private $messageTexts;
10 private $isDismissed;
11 private $screenConfig;
12
13 public function __construct(
14 array $currentNotices,
15 array $config,
16 MessageTexts $messageTexts,
17 callable $isDismissed
18 ) {
19 $this->currentNotices = $currentNotices;
20 $this->pageConfig = new PageConfig( $config );
21 $this->screenConfig = new ScreenConfig( $config );
22 $this->messageTexts = $messageTexts;
23 $this->isDismissed = $isDismissed;
24 }
25
26 public function addHooks() {
27 if ( ! empty( $this->currentNotices ) && $this->isRelevantOnPage() ) {
28 add_action( 'admin_notices', [ $this, 'addNotices' ] );
29 add_action( 'admin_enqueue_scripts', [ $this, 'addScripts' ] );
30 }
31 }
32
33 public function addNotices() {
34 foreach ( $this->currentNotices['repo'] as $repo => $ids ) {
35 foreach ( $ids as $id => $type ) {
36 if ( is_array( $type ) ) {
37 $index = $id;
38 $noticesData = $type;
39 } else {
40 $index = $type;
41 $noticesData = [ $type ];
42 }
43
44 if ( $this->pageConfig->shouldShowMessage( $repo, $index ) || $this->screenConfig->shouldShowMessage( $repo, $index ) ) {
45 foreach ( $noticesData as $noticeData ) {
46 $this->displayNotice( $repo, $index, $noticeData );
47 }
48 }
49 }
50 }
51 }
52
53 private function isRelevantOnPage() {
54 return $this->pageConfig->isAnyMessageOnPage( $this->currentNotices ) ||
55 $this->screenConfig->isAnyMessageOnPage( $this->currentNotices );
56 }
57
58 private function displayNotice( $repo, $id, $notice_params = [] ) {
59 $noticeId = $id;
60 if ( isset( $notice_params['noticeId'] ) ) {
61 $noticeId = $notice_params['noticeId'];
62 }
63 if ( ! call_user_func( $this->isDismissed, $repo, $noticeId ) ) {
64 $html = $this->messageTexts->get( $repo, $id, $notice_params );
65 if ( $html ) {
66 echo $html;
67 }
68 }
69 }
70
71 public function addScripts() {
72 $installer = OTGS_Installer();
73 wp_enqueue_style(
74 'installer-admin-notices',
75 $installer->res_url() . '/res/css/admin-notices.css',
76 [],
77 $installer->version()
78 );
79 }
80 }
81
82