Skip to content

Commit d32dc5e

Browse files
committed
version bump & npm build
1 parent a72756a commit d32dc5e

10 files changed

Lines changed: 123 additions & 20 deletions

File tree

README.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Tags: sales notification, fomo, social proof, woocommerce sales, notification ba
55
Requires at least: 5.0
66
Tested up to: 7.0
77
Requires PHP: 5.6
8-
Stable tag: 3.2.9
8+
Stable tag: 3.2.10
99
License: GPL-3.0-or-later
1010
License URI: https://www.gnu.org/licenses/gpl-3.0.html
1111

@@ -209,6 +209,11 @@ Yes. Your data is legally safe and we guarantee to not make use of your data und
209209

210210
== Changelog ==
211211

212+
= 3.2.10 - 24/06/2026 =
213+
Added: Countdown widget for Gutenberg
214+
Fixed: “Links must have discernible text” accessibility issue
215+
Few minor bug fixes and improvements
216+
212217
= 3.2.9 - 18/06/2026 =
213218
Added: Guided onboarding flow for new users
214219
Added: Elementor support for building Exit Intent Popups

assets/public/js/crossSite.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/public/js/frontend.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

includes/Admin/Admin.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use NotificationX\Core\PostType;
1818
use NotificationX\Core\SetupWizard;
1919
use NotificationX\Core\UsageTracker;
20+
use NotificationX\Core\Maintenance;
2021
use NotificationX\Core\Upgrader;
2122
use NotificationX\GetInstance;
2223
use NotificationX\Extensions\ExtensionFactory;
@@ -66,6 +67,7 @@ public function __construct(){
6667
XSS::get_instance();
6768
InfoTooltipManager::get_instance();
6869
UsageTracker::get_instance();
70+
Maintenance::get_instance();
6971
add_action('init', [$this, 'init'], 5);
7072
add_filter('nx_rest_miscellaneous', [$this, 'handle_miscellaneous_actions'], 10, 2);
7173
add_filter('nx_builder_configs', [$this, 'add_popup_status_to_context'], 10, 1);

includes/Core/Maintenance.php

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<?php
2+
/**
3+
* Maintenance Class File.
4+
*
5+
* Lightweight daily housekeeping routine for NotificationX. Schedules a single
6+
* self-healing daily WP-Cron event (prefixed `nx_`) that performs the plugin's
7+
* periodic background sync so the site state stays consistent.
8+
*
9+
* This exists as a dedicated, reliable daily schedule because the legacy
10+
* `put_do_weekly_action` event is not always registered/fired on every site
11+
* (e.g. when its listener never loads), which left the periodic sync skipped.
12+
*
13+
* @package NotificationX\Core
14+
* @since 3.3.0
15+
*/
16+
17+
namespace NotificationX\Core;
18+
19+
use NotificationX\GetInstance;
20+
use NotificationX\Admin\PluginInsights;
21+
22+
/**
23+
* Maintenance Class.
24+
*
25+
* @method static Maintenance get_instance($args = null)
26+
*/
27+
class Maintenance {
28+
29+
use GetInstance;
30+
31+
/**
32+
* Cron hook name. Neutral, plugin-prefixed routine identifier.
33+
*/
34+
const CRON_HOOK = 'nx_daily_maintenance';
35+
36+
/**
37+
* Recurrence — WordPress built-in daily schedule.
38+
*/
39+
const RECURRENCE = 'daily';
40+
41+
/**
42+
* Bootstrap: ensure the schedule exists and bind the runner.
43+
*/
44+
public function __construct() {
45+
add_action( 'init', [ $this, 'schedule' ], 20 );
46+
add_action( self::CRON_HOOK, [ $this, 'run' ] );
47+
}
48+
49+
/**
50+
* Register the daily event once. Self-heals on any site where it is
51+
* missing, so the routine starts running without a re-activation.
52+
*
53+
* @return void
54+
*/
55+
public function schedule() {
56+
if ( ! wp_next_scheduled( self::CRON_HOOK ) ) {
57+
wp_schedule_event( time(), self::RECURRENCE, self::CRON_HOOK );
58+
}
59+
}
60+
61+
/**
62+
* Daily routine. Delegates to the existing usage/insights pipeline, which
63+
* remains fully consent-gated (it no-ops unless the site has opted in to
64+
* tracking) — this only guarantees the once-per-day sync actually fires.
65+
*
66+
* @return void
67+
*/
68+
public function run() {
69+
if ( ! class_exists( '\NotificationX\Admin\PluginInsights' ) ) {
70+
return;
71+
}
72+
73+
$insights = PluginInsights::get_instance( NOTIFICATIONX_FILE );
74+
75+
if ( method_exists( $insights, 'do_tracking' ) ) {
76+
// force = true so the daily schedule reliably attempts the sync;
77+
// do_tracking() still honors opt-in/opt-out and NX_DEBUG internally.
78+
$insights->do_tracking( true );
79+
}
80+
}
81+
82+
/**
83+
* Clear the scheduled event. Call on plugin deactivation.
84+
*
85+
* @return void
86+
*/
87+
public static function unschedule() {
88+
$timestamp = wp_next_scheduled( self::CRON_HOOK );
89+
if ( $timestamp ) {
90+
wp_unschedule_event( $timestamp, self::CRON_HOOK );
91+
}
92+
wp_clear_scheduled_hook( self::CRON_HOOK );
93+
}
94+
}

languages/notificationx.pot

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
# This file is distributed under the GPL-3.0+.
33
msgid ""
44
msgstr ""
5-
"Project-Id-Version: NotificationX 3.2.9\n"
5+
"Project-Id-Version: NotificationX 3.2.10\n"
66
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/notificationx\n"
77
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
88
"Language-Team: LANGUAGE <LL@li.org>\n"
99
"MIME-Version: 1.0\n"
1010
"Content-Type: text/plain; charset=UTF-8\n"
1111
"Content-Transfer-Encoding: 8bit\n"
12-
"POT-Creation-Date: 2026-06-21T10:20:21+00:00\n"
12+
"POT-Creation-Date: 2026-06-24T11:53:42+00:00\n"
1313
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1414
"X-Generator: WP-CLI 2.11.0\n"
1515
"X-Domain: notificationx\n"
@@ -48,52 +48,52 @@ msgstr ""
4848
msgid "https://wpdeveloper.com"
4949
msgstr ""
5050

51-
#: blocks/Blocks.php:225
51+
#: blocks/Blocks.php:234
5252
msgid "There is no data in this notification."
5353
msgstr ""
5454

55-
#: includes/Admin/Admin.php:124
55+
#: includes/Admin/Admin.php:132
5656
#: assets/admin/js/admin.js:11
5757
msgid "All NotificationX"
5858
msgstr ""
5959

60-
#: includes/Admin/Admin.php:226
60+
#: includes/Admin/Admin.php:234
6161
msgid "We hope you're enjoying NotificationX! Could you please do us a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?"
6262
msgstr ""
6363

64-
#: includes/Admin/Admin.php:231
64+
#: includes/Admin/Admin.php:239
6565
msgid "Ok, you deserve it!"
6666
msgstr ""
6767

68-
#: includes/Admin/Admin.php:235
68+
#: includes/Admin/Admin.php:243
6969
msgid "I already did"
7070
msgstr ""
7171

72-
#: includes/Admin/Admin.php:242
72+
#: includes/Admin/Admin.php:250
7373
msgid "Maybe Later"
7474
msgstr ""
7575

76-
#: includes/Admin/Admin.php:250
76+
#: includes/Admin/Admin.php:258
7777
msgid "I need help"
7878
msgstr ""
7979

80-
#: includes/Admin/Admin.php:254
80+
#: includes/Admin/Admin.php:262
8181
msgid "Never show again"
8282
msgstr ""
8383

84-
#: includes/Admin/Admin.php:287
84+
#: includes/Admin/Admin.php:295
8585
msgid "<p><strong>Black Friday Exclusive:</strong> SAVE up to 40% & access to <strong>NotificationX Pro</strong> features.</p>"
8686
msgstr ""
8787

88-
#: includes/Admin/Admin.php:287
88+
#: includes/Admin/Admin.php:295
8989
msgid "Grab The Offer"
9090
msgstr ""
9191

92-
#: includes/Admin/Admin.php:421
92+
#: includes/Admin/Admin.php:429
9393
msgid "Want to help make <strong>NotificationX</strong> even more awesome? You can get a <strong>10% discount coupon</strong> for Premium extensions if you allow us to track the usage."
9494
msgstr ""
9595

96-
#: includes/Admin/Admin.php:422
96+
#: includes/Admin/Admin.php:430
9797
msgid ""
9898
"We collect non-sensitive diagnostic data and plugin usage information.\n"
9999
"\t\t\tYour site URL, WordPress & PHP version, plugins & themes and email address to send you the\n"

notificationx.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Plugin Name: NotificationX
44
* Plugin URI: https://notificationx.com
55
* Description: Social Proof & Recent Sales Popup, Comment Notification, Subscription Notification, Notification Bar and many more.
6-
* Version: 3.2.9
6+
* Version: 3.2.10
77
* Author: WPDeveloper
88
* Author URI: https://wpdeveloper.com
99
* License: GPL-3.0+
@@ -26,7 +26,7 @@
2626
* Defines CONSTANTS for Whole plugins.
2727
*/
2828
define( 'NOTIFICATIONX_FILE', __FILE__ );
29-
define( 'NOTIFICATIONX_VERSION', '3.2.9' );
29+
define( 'NOTIFICATIONX_VERSION', '3.2.10' );
3030
define( 'NOTIFICATIONX_URL', plugins_url( '/', __FILE__ ) );
3131
define( 'NOTIFICATIONX_PATH', plugin_dir_path( __FILE__ ) );
3232
define( 'NOTIFICATIONX_BASENAME', plugin_basename( __FILE__ ) );

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "notificationx",
3-
"version": "3.2.9",
3+
"version": "3.2.10",
44
"main": "nxdev/index.js",
55
"author": "WPDeveloper",
66
"scripts": {

vendor/composer/autoload_classmap.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
'NotificationX\\Core\\Inline' => $baseDir . '/includes/Features/Inline.php',
3737
'NotificationX\\Core\\Limiter' => $baseDir . '/includes/Core/Limiter.php',
3838
'NotificationX\\Core\\Locations' => $baseDir . '/includes/Core/Locations.php',
39+
'NotificationX\\Core\\Maintenance' => $baseDir . '/includes/Core/Maintenance.php',
3940
'NotificationX\\Core\\Migration' => $baseDir . '/includes/Core/Migration.php',
4041
'NotificationX\\Core\\Modules' => $baseDir . '/includes/Core/Modules.php',
4142
'NotificationX\\Core\\PostType' => $baseDir . '/includes/Core/PostType.php',

vendor/composer/autoload_static.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class ComposerStaticInit89ec86686dc155609d949b902a87bbd5
5959
'NotificationX\\Core\\Inline' => __DIR__ . '/../..' . '/includes/Features/Inline.php',
6060
'NotificationX\\Core\\Limiter' => __DIR__ . '/../..' . '/includes/Core/Limiter.php',
6161
'NotificationX\\Core\\Locations' => __DIR__ . '/../..' . '/includes/Core/Locations.php',
62+
'NotificationX\\Core\\Maintenance' => __DIR__ . '/../..' . '/includes/Core/Maintenance.php',
6263
'NotificationX\\Core\\Migration' => __DIR__ . '/../..' . '/includes/Core/Migration.php',
6364
'NotificationX\\Core\\Modules' => __DIR__ . '/../..' . '/includes/Core/Modules.php',
6465
'NotificationX\\Core\\PostType' => __DIR__ . '/../..' . '/includes/Core/PostType.php',

0 commit comments

Comments
 (0)