136 changes: 69 additions & 67 deletions .wordpress-org/icon.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,8 @@
##### [Version 2.6.8](https://github.com/Codeinwp/wp-maintenance-mode/compare/v2.6.7...v2.6.8) (2023-06-07)

- Fix the Save button Module tab not working
- Codebase updates

##### [Version 2.6.7](https://github.com/Codeinwp/wp-maintenance-mode/compare/v2.6.6...v2.6.7) (2023-04-01)

- Bug fix: Addressed an unnecessary 'no maintenance page' error occurrence.
Expand Down
10 changes: 9 additions & 1 deletion README.md
Expand Up @@ -8,7 +8,7 @@
**Tags:** maintenance mode, admin, administration, unavailable, coming soon, multisite, landing page, under construction, contact form, subscribe, countdown
**Requires at least:** 3.5
**Tested up to:** 6.2
**Stable tag:** 2.6.7
**Stable tag:** 2.6.8
**Requires PHP:** 5.6
**License:** GPL-2.0+

Expand Down Expand Up @@ -93,6 +93,14 @@ Notice: `wp-cron.php` is excluded by default.

## Changelog ##

##### [Version 2.6.8](https://github.com/Codeinwp/wp-maintenance-mode/compare/v2.6.7...v2.6.8) (2023-06-07)

- Fix the Save button Module tab not working
- Codebase updates




##### [Version 2.6.7](https://github.com/Codeinwp/wp-maintenance-mode/compare/v2.6.6...v2.6.7) (2023-04-01)

- Bug fix: Addressed an unnecessary 'no maintenance page' error occurrence.
Expand Down
136 changes: 69 additions & 67 deletions assets/images/icon.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions composer.json
Expand Up @@ -2,7 +2,7 @@
"name": "codeinwp/wp-maintenance-mode",
"description": "Adds a splash page to your site that lets visitors know your site is down for maintenance. Full access to the back- & front-end is optional.",
"type": "wordpress-plugin",
"version": "2.6.7",
"version": "2.6.8",
"license": "GPL-2.0+",
"homepage": "https://themeisle.com",
"support": {
Expand All @@ -17,7 +17,7 @@
}
],
"require": {
"codeinwp/themeisle-sdk": "^3.2",
"codeinwp/themeisle-sdk": "^3.3",
"ext-json": "*",
"ext-dom": "*"
},
Expand Down
19 changes: 7 additions & 12 deletions composer.lock
103 changes: 60 additions & 43 deletions includes/classes/wp-maintenance-mode-admin.php
Expand Up @@ -36,6 +36,7 @@ private function __construct() {

// Add the options page and menu item.
add_action( 'admin_menu', array( $this, 'add_plugin_menu' ) );
add_action( 'admin_head', array( $this, 'add_inline_global_style' ) );
add_action( 'network_admin_menu', array( $this, 'add_plugin_menu' ) );

add_action( 'admin_init', array( $this, 'maybe_redirect' ) );
Expand Down Expand Up @@ -148,7 +149,7 @@ public function enqueue_admin_scripts() {
'wpmmVars',
array(
'ajaxURL' => admin_url( 'admin-ajax.php' ),
'pluginURL' => add_query_arg( array( 'page' => $this->plugin_slug ), admin_url( 'options-general.php' ) ),
'pluginURL' => add_query_arg( array( 'page' => $this->plugin_slug ), admin_url( 'admin.php' ) ),
'ajaxNonce' => wp_create_nonce( 'ajax' ),
'wizardNonce' => wp_create_nonce( 'wizard' ),
'pluginInstallNonce' => wp_create_nonce( 'updates' ),
Expand Down Expand Up @@ -321,19 +322,18 @@ public function subscribers_empty_list() {
* @since 2.0.0
*/
public function add_plugin_menu() {
$parent_menu = 'options-general.php';
$network_menu_hook_suffix = '';
if ( is_multisite() && is_network_admin() ) {
$parent_menu = 'settings.php';
$network_menu_hook_suffix = '-network';
}
$this->plugin_screen_hook_suffix = add_submenu_page(
$parent_menu,
$this->plugin_screen_hook_suffix = add_menu_page(
__( 'LightStart', 'wp-maintenance-mode' ),
__( 'LightStart', 'wp-maintenance-mode' ),
wpmm_get_capability( 'settings' ),
$this->plugin_slug,
array( $this, 'display_plugin_settings' )
array( $this, 'display_plugin_settings' ),
esc_url( WPMM_IMAGES_URL . 'icon.svg' ),
99
);
$this->plugin_screen_hook_suffix = $this->plugin_screen_hook_suffix . $network_menu_hook_suffix;
}
Expand All @@ -352,7 +352,7 @@ public function maybe_redirect() {
}

update_option( 'wpmm_settings_redirect', '0' );
wp_safe_redirect( admin_url( 'options-general.php?page=wp-maintenance-mode' ) );
wp_safe_redirect( admin_url( 'admin.php?page=wp-maintenance-mode' ) );
exit;
}

Expand Down Expand Up @@ -478,39 +478,41 @@ public function save_plugin_settings() {
}
break;
case 'modules':
// Countdown
$_POST['options']['modules']['countdown_status'] = (int) $_POST['options']['modules']['countdown_status'];
$_POST['options']['modules']['countdown_start'] = sanitize_text_field( $_POST['options']['modules']['countdown_start'] );
$_POST['options']['modules']['countdown_details'] = array_map( 'trim', $_POST['options']['modules']['countdown_details'] );
$_POST['options']['modules']['countdown_details'] = array(
'days' => isset( $_POST['options']['modules']['countdown_details']['days'] ) && is_numeric( $_POST['options']['modules']['countdown_details']['days'] ) ? sanitize_text_field( $_POST['options']['modules']['countdown_details']['days'] ) : 0,
'hours' => isset( $_POST['options']['modules']['countdown_details']['hours'] ) && is_numeric( $_POST['options']['modules']['countdown_details']['hours'] ) ? sanitize_text_field( $_POST['options']['modules']['countdown_details']['hours'] ) : 1,
'minutes' => isset( $_POST['options']['modules']['countdown_details']['minutes'] ) && is_numeric( $_POST['options']['modules']['countdown_details']['minutes'] ) ? sanitize_text_field( $_POST['options']['modules']['countdown_details']['minutes'] ) : 0,
);
if ( ! get_option( 'wpmm_new_look' ) ) {
// Countdown
$_POST['options']['modules']['countdown_status'] = (int) $_POST['options']['modules']['countdown_status'];
$_POST['options']['modules']['countdown_start'] = sanitize_text_field( $_POST['options']['modules']['countdown_start'] );
$_POST['options']['modules']['countdown_details'] = array_map( 'trim', $_POST['options']['modules']['countdown_details'] );
$_POST['options']['modules']['countdown_details'] = array(
'days' => isset( $_POST['options']['modules']['countdown_details']['days'] ) && is_numeric( $_POST['options']['modules']['countdown_details']['days'] ) ? sanitize_text_field( $_POST['options']['modules']['countdown_details']['days'] ) : 0,
'hours' => isset( $_POST['options']['modules']['countdown_details']['hours'] ) && is_numeric( $_POST['options']['modules']['countdown_details']['hours'] ) ? sanitize_text_field( $_POST['options']['modules']['countdown_details']['hours'] ) : 1,
'minutes' => isset( $_POST['options']['modules']['countdown_details']['minutes'] ) && is_numeric( $_POST['options']['modules']['countdown_details']['minutes'] ) ? sanitize_text_field( $_POST['options']['modules']['countdown_details']['minutes'] ) : 0,
);

$_POST['options']['modules']['countdown_color'] = sanitize_hex_color( $_POST['options']['modules']['countdown_color'] );

// Subscribe
$_POST['options']['modules']['subscribe_status'] = (int) $_POST['options']['modules']['subscribe_status'];
$_POST['options']['modules']['subscribe_text'] = sanitize_text_field( $_POST['options']['modules']['subscribe_text'] );
$_POST['options']['modules']['subscribe_text_color'] = sanitize_hex_color( $_POST['options']['modules']['subscribe_text_color'] );

// Social networks
$_POST['options']['modules']['social_status'] = (int) $_POST['options']['modules']['social_status'];
$_POST['options']['modules']['social_target'] = (int) $_POST['options']['modules']['social_target'];
$_POST['options']['modules']['social_github'] = sanitize_text_field( $_POST['options']['modules']['social_github'] );
$_POST['options']['modules']['social_dribbble'] = sanitize_text_field( $_POST['options']['modules']['social_dribbble'] );
$_POST['options']['modules']['social_twitter'] = sanitize_text_field( $_POST['options']['modules']['social_twitter'] );
$_POST['options']['modules']['social_facebook'] = sanitize_text_field( $_POST['options']['modules']['social_facebook'] );
$_POST['options']['modules']['social_instagram'] = sanitize_text_field( $_POST['options']['modules']['social_instagram'] );
$_POST['options']['modules']['social_pinterest'] = sanitize_text_field( $_POST['options']['modules']['social_pinterest'] );
$_POST['options']['modules']['social_google+'] = sanitize_text_field( $_POST['options']['modules']['social_google+'] );
$_POST['options']['modules']['social_linkedin'] = sanitize_text_field( $_POST['options']['modules']['social_linkedin'] );

// Contact
$_POST['options']['modules']['contact_status'] = (int) $_POST['options']['modules']['contact_status'];
$_POST['options']['modules']['contact_email'] = sanitize_text_field( $_POST['options']['modules']['contact_email'] );
$_POST['options']['modules']['contact_effects'] = sanitize_text_field( $_POST['options']['modules']['contact_effects'] );
$_POST['options']['modules']['countdown_color'] = sanitize_hex_color( $_POST['options']['modules']['countdown_color'] );

// Subscribe
$_POST['options']['modules']['subscribe_status'] = (int) $_POST['options']['modules']['subscribe_status'];
$_POST['options']['modules']['subscribe_text'] = sanitize_text_field( $_POST['options']['modules']['subscribe_text'] );
$_POST['options']['modules']['subscribe_text_color'] = sanitize_hex_color( $_POST['options']['modules']['subscribe_text_color'] );

// Social networks
$_POST['options']['modules']['social_status'] = (int) $_POST['options']['modules']['social_status'];
$_POST['options']['modules']['social_target'] = (int) $_POST['options']['modules']['social_target'];
$_POST['options']['modules']['social_github'] = sanitize_text_field( $_POST['options']['modules']['social_github'] );
$_POST['options']['modules']['social_dribbble'] = sanitize_text_field( $_POST['options']['modules']['social_dribbble'] );
$_POST['options']['modules']['social_twitter'] = sanitize_text_field( $_POST['options']['modules']['social_twitter'] );
$_POST['options']['modules']['social_facebook'] = sanitize_text_field( $_POST['options']['modules']['social_facebook'] );
$_POST['options']['modules']['social_instagram'] = sanitize_text_field( $_POST['options']['modules']['social_instagram'] );
$_POST['options']['modules']['social_pinterest'] = sanitize_text_field( $_POST['options']['modules']['social_pinterest'] );
$_POST['options']['modules']['social_google+'] = sanitize_text_field( $_POST['options']['modules']['social_google+'] );
$_POST['options']['modules']['social_linkedin'] = sanitize_text_field( $_POST['options']['modules']['social_linkedin'] );

// Contact
$_POST['options']['modules']['contact_status'] = (int) $_POST['options']['modules']['contact_status'];
$_POST['options']['modules']['contact_email'] = sanitize_text_field( $_POST['options']['modules']['contact_email'] );
$_POST['options']['modules']['contact_effects'] = sanitize_text_field( $_POST['options']['modules']['contact_effects'] );
}

// Google Analytics
$_POST['options']['modules']['ga_status'] = (int) $_POST['options']['modules']['ga_status'];
Expand Down Expand Up @@ -969,7 +971,7 @@ public function delete_cache() {
public function add_settings_link( $links ) {
return array_merge(
array(
'wpmm_settings' => sprintf( '<a href="%s">%s</a>', add_query_arg( array( 'page' => $this->plugin_slug ), admin_url( 'options-general.php' ) ), esc_html__( 'Settings', 'wp-maintenance-mode' ) ),
'wpmm_settings' => sprintf( '<a href="%s">%s</a>', add_query_arg( array( 'page' => $this->plugin_slug ), admin_url( 'admin.php' ) ), esc_html__( 'Settings', 'wp-maintenance-mode' ) ),
),
$links
);
Expand Down Expand Up @@ -1004,7 +1006,7 @@ public function add_notices() {
'msg' => sprintf(
/* translators: plugin settings url */
__( 'The Maintenance Mode is <strong>active</strong>. Please don\'t forget to <a href="%s">deactivate</a> as soon as you are done.', 'wp-maintenance-mode' ),
add_query_arg( array( 'page' => $this->plugin_slug ), admin_url( 'options-general.php' ) )
add_query_arg( array( 'page' => $this->plugin_slug ), admin_url( 'admin.php' ) )
),
);
}
Expand All @@ -1018,7 +1020,7 @@ public function add_notices() {
'class' => 'error',
'msg' => $maintenance_page->post_status === 'draft' ?
sprintf( __( '<strong>Action required</strong>: your Maintenance page is drafted. Visit the page to <a href="%s">publish</a> it.', 'wp-maintenance-mode' ), get_edit_post_link( $maintenance_page ) ) :
sprintf( __( '<strong>Action required</strong>: your Maintenance page has been deleted. Visit <a href="%s">settings page</a> to address this issue.', 'wp-maintenance-mode' ), get_admin_url() . 'options-general.php?page=wp-maintenance-mode#design' ),
sprintf( __( '<strong>Action required</strong>: your Maintenance page has been deleted. Visit <a href="%s">settings page</a> to address this issue.', 'wp-maintenance-mode' ), get_admin_url() . 'admin.php?page=wp-maintenance-mode#design' ),
);
}
}
Expand All @@ -1029,7 +1031,7 @@ public function add_notices() {
if ( ! isset( $this->plugin_settings['design']['page_id'] ) || ! get_post( $this->plugin_settings['design']['page_id'] ) ) {
$notices['maintenance_page_not_found'] = array(
'class' => 'error',
'msg' => sprintf( __( '<strong>Action required</strong>: you don\'t have a page as Maintenance page. Visit <a href="%s">settings page</a> to select one.', 'wp-maintenance-mode' ), get_admin_url() . 'options-general.php?page=wp-maintenance-mode#design' ),
'msg' => sprintf( __( '<strong>Action required</strong>: you don\'t have a page as Maintenance page. Visit <a href="%s">settings page</a> to select one.', 'wp-maintenance-mode' ), get_admin_url() . 'admin.php?page=wp-maintenance-mode#design' ),
);
}
}
Expand Down Expand Up @@ -1262,5 +1264,20 @@ public function save_plugin_settings_notice() {
<?php
}
}

/**
* Add inline global style.
*/
public function add_inline_global_style() {
?>
<style type="text/css">
#toplevel_page_wp-maintenance-mode .wp-menu-image img {
padding: 7px 0 0 0;
opacity: 1;
max-width: 20px;
}
</style>
<?php
}
}
}
4 changes: 2 additions & 2 deletions includes/classes/wp-maintenance-mode.php
Expand Up @@ -8,7 +8,7 @@

class WP_Maintenance_Mode {

const VERSION = '2.6.7';
const VERSION = '2.6.8';

const MAINTENANCE = 'maintenance';
const COMING_SOON = 'coming-soon';
Expand Down Expand Up @@ -460,7 +460,7 @@ public static function single_activate( $network_wide = false ) {
'msg' => sprintf(
/* translators: plugin settings url */
__( 'WP Maintenance Mode plugin was relaunched and you MUST revise <a href="%s">settings</a>.', 'wp-maintenance-mode' ),
add_query_arg( array( 'page' => self::get_instance()->plugin_slug ), admin_url( 'options-general.php' ) )
add_query_arg( array( 'page' => self::get_instance()->plugin_slug ), admin_url( 'admin.php' ) )
),
)
);
Expand Down
2 changes: 1 addition & 1 deletion includes/functions/helpers.php
Expand Up @@ -517,7 +517,7 @@ function sanitize_hex_color( $color ) {
* Get option page URL.
*/
function wpmm_option_page_url() {
$option_page = admin_url( 'options-general.php' );
$option_page = admin_url( 'admin.php' );
if ( is_multisite() && is_network_admin() ) {
$option_page = network_admin_url( 'settings.php' );
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "wp-maintenance-mode",
"version": "2.6.7",
"version": "2.6.8",
"author": "Themeisle",
"homepage": "https://themeisle.com/",
"license": "GPL-3.0+",
Expand Down
10 changes: 9 additions & 1 deletion readme.txt
Expand Up @@ -8,7 +8,7 @@ Author URI: https://themeisle.com/
Tags: maintenance mode, admin, administration, unavailable, coming soon, multisite, landing page, under construction, contact form, subscribe, countdown
Requires at least: 3.5
Tested up to: 6.2
Stable tag: 2.6.7
Stable tag: 2.6.8
Requires PHP: 5.6
License: GPL-2.0+

Expand Down Expand Up @@ -93,6 +93,14 @@ Notice: `wp-cron.php` is excluded by default.

== Changelog ==

##### [Version 2.6.8](https://github.com/Codeinwp/wp-maintenance-mode/compare/v2.6.7...v2.6.8) (2023-06-07)

- Fix the Save button Module tab not working
- Codebase updates




##### [Version 2.6.7](https://github.com/Codeinwp/wp-maintenance-mode/compare/v2.6.6...v2.6.7) (2023-04-01)

- Bug fix: Addressed an unnecessary 'no maintenance page' error occurrence.
Expand Down
11 changes: 10 additions & 1 deletion wp-maintenance-mode.php
Expand Up @@ -4,7 +4,7 @@
*
* Plugin Name: LightStart - Maintenance Mode, Coming Soon and Landing Page Builder
* Description: Adds a splash page to your site that lets visitors know your site is down for maintenance. It's perfect for a coming soon or landing page.
* Version: 2.6.7
* Version: 2.6.8
* Author: Themeisle
* Author URI: https://themeisle.com/
* Twitter: themeisle
Expand Down Expand Up @@ -74,6 +74,15 @@

add_filter( 'themeisle_sdk_products', 'wpmm_load_sdk' );

add_filter(
'wp_maintenance_mode_about_us_metadata',
function() {
return array(
'logo' => esc_url( WPMM_IMAGES_URL . 'icon.svg' ),
'location' => 'wp-maintenance-mode',
);
}
);

/**
* Filter products array.
Expand Down