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 / Loader.php
woocommerce-multilingual / vendor / otgs / installer / includes / admin-notices Last commit date
config 4 years ago notices 1 month ago Config.php 1 month ago Dismissed.php 1 month ago Display.php 1 month ago Loader.php 1 month ago MessageTexts.php 1 month ago PageConfig.php 1 month ago ScreenConfig.php 1 month ago Store.php 1 month ago
Loader.php
73 lines
1 <?php
2
3 namespace OTGS\Installer\AdminNotices;
4
5 use function OTGS\Installer\FP\partial;
6
7 class Loader {
8
9 public static function addHooks( $isAjax ) {
10 add_action( 'current_screen', self::class . '::initDisplay' );
11 if ( $isAjax ) {
12 add_action( 'wp_ajax_installer_dismiss_nag', Dismissed::class . '::dismissNotice' );
13 }
14 add_action( 'activate_plugin', Dismissed::class . '::dismissNoticeOnPluginActivation', 10, 2 );
15 }
16
17 public static function initDisplay() {
18
19 remove_action( 'current_screen', self::class . '::initDisplay' );
20
21 $messages = apply_filters( 'otgs_installer_admin_notices', [] );
22
23 if ( ! empty( $messages ) ) {
24
25 $config = apply_filters( 'otgs_installer_admin_notices_config', [] );
26
27 $texts = apply_filters( 'otgs_installer_admin_notices_texts', [] );
28
29 $dismissedNotices = self::refreshDismissed();
30
31 ( new Display(
32 $messages,
33 $config,
34 new MessageTexts( $texts ),
35 partial( Dismissed::class . '::isDismissed', $dismissedNotices )
36 ) )->addHooks();
37 }
38 }
39
40 public static function isDismissed( $repository_id, $notice_id ) {
41 $remainigNotices = self::refreshDismissed();
42 return Dismissed::isDismissed( $remainigNotices, $repository_id, $notice_id );
43 }
44
45 private static function refreshDismissed() {
46 $store = new Store();
47
48 $dismissedMessages = $store->get( Dismissed::STORE_KEY, [] );
49 $remainingMessages = Dismissed::clearExpired(
50 $dismissedMessages,
51 [ self::class, 'timeOut' ]
52 );
53
54 if ( $dismissedMessages !== $remainingMessages ) {
55 $store->save( Dismissed::STORE_KEY, $remainingMessages );
56 }
57
58 return $remainingMessages;
59 }
60
61 public static function timeOut( $start, $repo, $id ) {
62 $timeout = apply_filters(
63 'otgs_installer_admin_notices_dismissed_time',
64 2 * MONTH_IN_SECONDS,
65 $repo,
66 $id
67 );
68
69 return time() - $start > $timeout;
70 }
71
72 }
73