update_key_value( 'mainwp_extensions_master_api_key', false );
$new_extensions = array();
$extensions = get_option( 'mainwp_extensions', array() );
if ( is_array( $extensions ) ) {
foreach ( $extensions as $ext ) {
if ( isset( $ext['api'] ) && isset( $ext['apiManager'] ) && ! empty( $ext['apiManager'] ) ) {
if ( isset( $ext['api_key'] ) ) {
$ext['api_key'] = '';
}
if ( isset( $ext['activation_email'] ) ) {
$ext['activation_email'] = '';
}
if ( isset( $ext['activated_key'] ) ) {
$ext['activated_key'] = 'Deactivated';
}
$act_info = MainWP_Api_Manager::instance()->get_activation_info( $ext['api'] );
if ( isset( $act_info['api_key'] ) ) {
$act_info['api_key'] = '';
}
if ( isset( $act_info['activation_email'] ) ) {
$act_info['activation_email'] = '';
}
if ( isset( $act_info['activated_key'] ) ) {
$act_info['activated_key'] = 'Deactivated';
}
MainWP_Api_Manager::instance()->set_activation_info( $ext['api'], $act_info );
}
$new_extensions[] = $ext;
}
}
MainWP_Utility::update_option( 'mainwp_extensions', $new_extensions );
update_option( 'mainwp_extensions_all_activation_cached', '' );
wp_safe_redirect( esc_url( admin_url( 'admin.php?page=MainWPTools' ) ) );
die();
}
}
/**
* Instantiate the Settings Menu.
*
* @uses \MainWP\Dashboard\MainWP_Menu::is_disable_menu_item()
*/
public static function init_menu() {
add_submenu_page(
'mainwp_tab',
__( 'Settings Global options', 'mainwp' ),
' ' . esc_html__( 'Settings', 'mainwp' ) . '',
'read',
'Settings',
array(
self::get_class_name(),
'render',
)
);
if ( ! MainWP_Menu::is_disable_menu_item( 3, 'MainWPTools' ) ) {
add_submenu_page(
'mainwp_tab',
__( 'Tools', 'mainwp' ),
'
' . esc_html__( 'Tools', 'mainwp' ) . '
',
'read',
'MainWPTools',
array(
self::get_class_name(),
'render_mainwp_tools',
)
);
}
if ( ! MainWP_Menu::is_disable_menu_item( 3, 'SettingsAdvanced' ) ) {
add_submenu_page(
'mainwp_tab',
__( 'Advanced Options', 'mainwp' ),
' ' . esc_html__( 'Advanced Options', 'mainwp' ) . '
',
'read',
'SettingsAdvanced',
array(
self::get_class_name(),
'render_advanced',
)
);
}
if ( ! MainWP_Menu::is_disable_menu_item( 3, 'SettingsEmail' ) ) {
add_submenu_page(
'mainwp_tab',
__( 'Email Settings', 'mainwp' ),
' ' . esc_html__( 'Email Settings', 'mainwp' ) . '
',
'read',
'SettingsEmail',
array(
self::get_class_name(),
'render_email_settings',
)
);
}
/**
* Settings Subpages
*
* Filters subpages for the Settings page.
*
* @since Unknown
*/
$sub_pages = apply_filters_deprecated( 'mainwp-getsubpages-settings', array( array() ), '4.0.7.2', 'mainwp_getsubpages_settings' ); // @deprecated Use 'mainwp_getsubpages_settings' instead.
self::$subPages = apply_filters( 'mainwp_getsubpages_settings', $sub_pages );
if ( isset( self::$subPages ) && is_array( self::$subPages ) ) {
foreach ( self::$subPages as $subPage ) {
if ( MainWP_Menu::is_disable_menu_item( 3, 'Settings' . $subPage['slug'] ) ) {
continue;
}
add_submenu_page( 'mainwp_tab', $subPage['title'], '' . $subPage['title'] . '
', 'read', 'Settings' . $subPage['slug'], $subPage['callback'] );
}
}
}
/**
* Instantiate Settings SubPages Menu.
*
* @uses \MainWP\Dashboard\MainWP_Menu::is_disable_menu_item()
*/
public static function init_subpages_menu() {
?>
esc_html__( 'Settings', 'mainwp' ),
'parent_key' => 'mainwp_tab',
'slug' => 'Settings',
'href' => 'admin.php?page=Settings',
'icon' => '',
),
0
);
$init_sub_subleftmenu = array(
array(
'title' => esc_html__( 'General Settings', 'mainwp' ),
'parent_key' => 'Settings',
'href' => 'admin.php?page=Settings',
'slug' => 'Settings',
'right' => '',
),
array(
'title' => esc_html__( 'Advanced Settings', 'mainwp' ),
'parent_key' => 'Settings',
'href' => 'admin.php?page=SettingsAdvanced',
'slug' => 'SettingsAdvanced',
'right' => '',
),
array(
'title' => esc_html__( 'Email Settings', 'mainwp' ),
'parent_key' => 'Settings',
'href' => 'admin.php?page=SettingsEmail',
'slug' => 'SettingsEmail',
'right' => '',
),
array(
'title' => esc_html__( 'Tools', 'mainwp' ),
'parent_key' => 'Settings',
'href' => 'admin.php?page=MainWPTools',
'slug' => 'MainWPTools',
'right' => '',
),
);
MainWP_Menu::init_subpages_left_menu( $subPages, $init_sub_subleftmenu, 'Settings', 'Settings' );
foreach ( $init_sub_subleftmenu as $item ) {
if ( MainWP_Menu::is_disable_menu_item( 3, $item['slug'] ) ) {
continue;
}
MainWP_Menu::add_left_menu( $item, 2 );
}
}
/**
* Render Page Header.
*
* @param string $shownPage The page slug shown at this moment.
*
* @uses \MainWP\Dashboard\MainWP_Menu::is_disable_menu_item()
* @uses \MainWP\Dashboard\MainWP_UI::render_top_header()
* @uses \MainWP\Dashboard\MainWP_UI::render_page_navigation()
*/
public static function render_header( $shownPage = '' ) {
$params = array(
'title' => esc_html__( 'MainWP Settings', 'mainwp' ),
);
MainWP_UI::render_top_header( $params );
$renderItems = array();
$renderItems[] = array(
'title' => esc_html__( 'General Settings', 'mainwp' ),
'href' => 'admin.php?page=Settings',
'active' => ( '' === $shownPage ) ? true : false,
);
if ( ! MainWP_Menu::is_disable_menu_item( 3, 'SettingsAdvanced' ) ) {
$renderItems[] = array(
'title' => esc_html__( 'Advanced Settings', 'mainwp' ),
'href' => 'admin.php?page=SettingsAdvanced',
'active' => ( 'Advanced' === $shownPage ) ? true : false,
);
}
if ( ! MainWP_Menu::is_disable_menu_item( 3, 'SettingsEmail' ) ) {
$renderItems[] = array(
'title' => esc_html__( 'Email Settings', 'mainwp' ),
'href' => 'admin.php?page=SettingsEmail',
'active' => ( 'Emails' === $shownPage ) ? true : false,
);
}
if ( ! MainWP_Menu::is_disable_menu_item( 3, 'MainWPTools' ) ) {
$renderItems[] = array(
'title' => esc_html__( 'Tools', 'mainwp' ),
'href' => 'admin.php?page=MainWPTools',
'active' => ( 'MainWPTools' === $shownPage ) ? true : false,
);
}
if ( isset( self::$subPages ) && is_array( self::$subPages ) ) {
foreach ( self::$subPages as $subPage ) {
if ( MainWP_Menu::is_disable_menu_item( 3, 'Settings' . $subPage['slug'] ) ) {
continue;
}
$item = array();
$item['title'] = $subPage['title'];
$item['href'] = 'admin.php?page=Settings' . $subPage['slug'];
$item['active'] = ( $subPage['slug'] === $shownPage ) ? true : false;
if ( isset( $subPage['class'] ) ) {
$item['class'] = $subPage['class'];
}
$renderItems[] = $item;
}
}
MainWP_UI::render_page_navigation( $renderItems );
}
/**
* Close the HTML container.
*/
public static function render_footer() {
echo '';
}
/**
* Method handle_settings_post().
*
* This class handles the $_POST of Settings Options.
*
* @uses MainWP_DB::instance()
* @uses MainWP_Utility::update_option()
*
* @return boolean True|False Posts On True.
*
* @uses \MainWP\Dashboard\MainWP_DB_Common::get_user_extension()
* @uses \MainWP\Dashboard\MainWP_DB_Common::update_user_extension()
* @uses \MainWP\Dashboard\MainWP_System_Utility::is_admin()
* @uses \MainWP\Dashboard\MainWP_Utility::update_option()
*/
public static function handle_settings_post() {
if ( isset( $_POST['submit'] ) && isset( $_POST['wp_nonce'] ) && wp_verify_nonce( sanitize_key( $_POST['wp_nonce'] ), 'Settings' ) ) {
$userExtension = MainWP_DB_Common::instance()->get_user_extension();
$userExtension->pluginDir = '';
MainWP_DB_Common::instance()->update_user_extension( $userExtension );
if ( MainWP_System_Utility::is_admin() ) {
/**
* Action: mainwp_before_save_general_settings
*
* Fires before general settings save.
*
* @since 4.1
*/
do_action( 'mainwp_before_save_general_settings', $_POST );
$val = ( ! isset( $_POST['mainwp_pluginAutomaticDailyUpdate'] ) ? 0 : intval( $_POST['mainwp_pluginAutomaticDailyUpdate'] ) );
MainWP_Utility::update_option( 'mainwp_pluginAutomaticDailyUpdate', $val );
$val = ( ! isset( $_POST['mainwp_themeAutomaticDailyUpdate'] ) ? 0 : intval( $_POST['mainwp_themeAutomaticDailyUpdate'] ) );
MainWP_Utility::update_option( 'mainwp_themeAutomaticDailyUpdate', $val );
$val = ( ! isset( $_POST['mainwp_automaticDailyUpdate'] ) ? 0 : intval( $_POST['mainwp_automaticDailyUpdate'] ) );
MainWP_Utility::update_option( 'mainwp_automaticDailyUpdate', $val );
$val = ( ! isset( $_POST['mainwp_show_language_updates'] ) ? 0 : 1 );
MainWP_Utility::update_option( 'mainwp_show_language_updates', $val );
$val = ( ! isset( $_POST['mainwp_disable_update_confirmations'] ) ? 0 : intval( $_POST['mainwp_disable_update_confirmations'] ) );
MainWP_Utility::update_option( 'mainwp_disable_update_confirmations', $val );
$val = ( ! isset( $_POST['mainwp_backup_before_upgrade'] ) ? 0 : 1 );
MainWP_Utility::update_option( 'mainwp_backup_before_upgrade', $val );
$val = ( ! isset( $_POST['mainwp_backup_before_upgrade_days'] ) ? 7 : intval( $_POST['mainwp_backup_before_upgrade_days'] ) );
MainWP_Utility::update_option( 'mainwp_backup_before_upgrade_days', $val );
if ( is_plugin_active( 'mainwp-comments-extension/mainwp-comments-extension.php' ) ) {
MainWP_Utility::update_option( 'mainwp_maximumComments', isset( $_POST['mainwp_maximumComments'] ) ? intval( $_POST['mainwp_maximumComments'] ) : 50 );
}
$current_timeDailyUpdate = get_option( 'mainwp_timeDailyUpdate' );
$new_timeDailyUpdate = isset( $_POST['mainwp_timeDailyUpdate'] ) ? sanitize_text_field( wp_unslash( $_POST['mainwp_timeDailyUpdate'] ) ) : '';
if ( $current_timeDailyUpdate !== $new_timeDailyUpdate ) {
MainWP_Utility::update_option( 'mainwp_timeDailyUpdate', $new_timeDailyUpdate );
}
$new_freq = ( isset( $_POST['mainwp_frequencyDailyUpdate'] ) ? intval( $_POST['mainwp_frequencyDailyUpdate'] ) : 2 );
MainWP_Utility::update_option( 'mainwp_frequencyDailyUpdate', $new_freq );
$new_delay = ( isset( $_POST['mainwp_delay_autoupdate'] ) ? intval( $_POST['mainwp_delay_autoupdate'] ) : 1 );
MainWP_Utility::update_option( 'mainwp_delay_autoupdate', $new_delay );
$val = ( isset( $_POST['mainwp_sidebarPosition'] ) ? intval( $_POST['mainwp_sidebarPosition'] ) : 1 );
$user = wp_get_current_user();
if ( $user ) {
update_user_option( $user->ID, 'mainwp_sidebarPosition', $val, true );
}
MainWP_Utility::update_option( 'mainwp_numberdays_Outdate_Plugin_Theme', ! empty( $_POST['mainwp_numberdays_Outdate_Plugin_Theme'] ) ? intval( $_POST['mainwp_numberdays_Outdate_Plugin_Theme'] ) : 365 );
$ignore_http = isset( $_POST['mainwp_ignore_http_response_status'] ) ? sanitize_text_field( wp_unslash( $_POST['mainwp_ignore_http_response_status'] ) ) : '';
MainWP_Utility::update_option( 'mainwp_ignore_HTTP_response_status', $ignore_http );
$check_http_response = ( isset( $_POST['mainwp_check_http_response'] ) ? 1 : 0 );
MainWP_Utility::update_option( 'mainwp_check_http_response', $check_http_response );
$actions_notification_enable = ( isset( $_POST['mainwp_site_actions_notification_enable'] ) ? 1 : 0 );
MainWP_Utility::update_option( 'mainwp_site_actions_notification_enable', $actions_notification_enable );
//phpcs:disable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
// Handle custom date/time formats.
if ( ! empty( $_POST['date_format'] ) && isset( $_POST['date_format_custom'] )
&& '\c\u\s\t\o\m' === wp_unslash( $_POST['date_format'] )
) {
$_POST['date_format'] = wp_unslash( $_POST['date_format_custom'] );
}
if ( ! empty( $_POST['time_format'] ) && isset( $_POST['time_format_custom'] )
&& '\c\u\s\t\o\m' === wp_unslash( $_POST['time_format'] )
) {
$_POST['time_format'] = wp_unslash( $_POST['time_format_custom'] );
}
if ( isset( $_POST['timezone_string'] ) ) {
// Map UTC+- timezones to gmt_offsets and set timezone_string to empty.
if ( ! empty( $_POST['timezone_string'] ) && preg_match( '/^UTC[+-]/', wp_unslash( $_POST['timezone_string'] ) ) ) {
$_POST['gmt_offset'] = wp_unslash( $_POST['timezone_string'] );
$_POST['gmt_offset'] = preg_replace( '/UTC\+?/', '', wp_unslash( $_POST['gmt_offset'] ) ); //phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated
$_POST['timezone_string'] = '';
}
$options = array(
'gmt_offset',
'date_format',
'time_format',
'timezone_string',
);
foreach ( $options as $option ) {
$value = null;
if ( isset( $_POST[ $option ] ) ) {
$value = wp_unslash( $_POST[ $option ] );
if ( ! is_array( $value ) ) {
$value = trim( $value );
}
}
update_option( $option, $value );
}
}
//phpcs:enable
MainWP_Utility::update_option( 'mainwp_use_favicon', 1 );
/**
* Action: mainwp_after_save_general_settings
*
* Fires after save general settings.
*
* @since 4.1
*/
do_action( 'mainwp_after_save_general_settings', $_POST );
}
return true;
}
return false;
}
/**
* Render the MainWP Settings Page.
*
* @uses \MainWP\Dashboard\MainWP_Monitoring_View
* @uses \MainWP\Dashboard\MainWP_Manage_Backups::render_settings()
* @uses \MainWP\Dashboard\MainWP_Utility::get_http_codes()
*/
public static function render() { //phpcs:ignore -- complex method.
if ( ! mainwp_current_user_have_right( 'dashboard', 'manage_dashboard_settings' ) ) {
mainwp_do_not_have_permissions( esc_html__( 'manage dashboard settings', 'mainwp' ) );
return;
}
self::render_header( '' );
?>
' . esc_html( date_i18n( $timezone_format, false, true ) ) . '' ); ?>
' . esc_html( date_i18n( $timezone_format ) ) . '' ); ?>
format( 'I' );
if ( $dst ) {
esc_html_e( 'This timezone is currently in daylight saving time.', 'mainwp' );
} else {
esc_html_e( 'This timezone is currently in standard time.', 'mainwp' );
}
?>
' . wp_date( esc_html__( 'F j, Y' ) . ' ' . esc_html__( 'g:i a' ), esc_html( $transitions[1]['ts'] ) ) . '' ); // phpcs:ignore WordPress.Security.EscapeOutput
} else {
esc_html_e( 'This timezone does not observe daylight saving time.', 'mainwp' );
}
}
?>
get_websites_last_automatic_sync();
$lasttimeAutomatic = get_option( 'mainwp_updatescheck_last_timestamp' );
$lasttimeStartAutomatic = get_option( 'mainwp_updatescheck_start_last_timestamp' );
$local_timestamp = MainWP_Utility::get_timestamp();
$running = get_option( 'mainwp_cron_checksites_running' );
if ( empty( $lasttimeStartAutomatic ) && ! empty( $lasttimeAutomatic ) ) {
$lasttimeStartAutomatic = $lasttimeAutomatic;
}
if ( empty( $lastAutomaticUpdate ) ) {
$nextAutomaticUpdate = esc_html__( 'Any minute', 'mainwp' );
} elseif ( 'yes' === $running && ( 0 < MainWP_DB::instance()->get_websites_count_where_dts_automatic_sync_smaller_then_start( $lasttimeStartAutomatic ) || 0 < MainWP_DB::instance()->get_websites_check_updates_count( $lasttimeStartAutomatic ) ) ) {
$nextAutomaticUpdate = esc_html__( 'Processing your websites.', 'mainwp' );
} else {
$next_time = MainWP_System_Cron_Jobs::get_next_time_automatic_update_to_show();
if ( $next_time < $local_timestamp + 5 * MINUTE_IN_SECONDS ) {
$nextAutomaticUpdate = esc_html__( 'Any minute', 'mainwp' );
} else {
$nextAutomaticUpdate = MainWP_Utility::format_timestamp( $next_time );
}
}
if ( empty( $lastAutomaticUpdate ) ) {
$lastAutomaticUpdate = esc_html__( 'Never', 'mainwp' );
} else {
$lastAutomaticUpdate = MainWP_Utility::format_timestamp( $lastAutomaticUpdate );
}
return array(
'last' => $lastAutomaticUpdate,
'next' => $nextAutomaticUpdate,
);
}
/**
* Returns false or the location of the OpenSSL Lib File.
*
* @return mixed false|opensslLibLocation
*
* @uses \MainWP\Dashboard\MainWP_Server_Information_Handler::is_openssl_config_warning()
*/
public static function show_openssl_lib_config() {
if ( MainWP_Server_Information_Handler::is_openssl_config_warning() ) {
return true;
} else {
return false;
}
}
/**
* Render Advanced Options Subpage.
*
* @uses \MainWP\Dashboard\MainWP_Utility::update_option()
*/
public static function render_advanced() { //phpcs:ignore -- complex method.
if ( ! mainwp_current_user_have_right( 'dashboard', 'manage_dashboard_settings' ) ) {
mainwp_do_not_have_permissions( esc_html__( 'manage dashboard settings', 'mainwp' ) );
return;
}
if ( isset( $_POST['submit'] ) && isset( $_POST['wp_nonce'] ) && wp_verify_nonce( sanitize_key( $_POST['wp_nonce'] ), 'SettingsAdvanced' ) ) {
/**
* Action: mainwp_before_save_advanced_settings
*
* Fires before save advanced settings.
*
* @since 4.1
*/
do_action( 'mainwp_before_save_advanced_settings', $_POST );
MainWP_Utility::update_option( 'mainwp_maximumRequests', ! empty( $_POST['mainwp_maximumRequests'] ) ? intval( $_POST['mainwp_maximumRequests'] ) : 4 );
MainWP_Utility::update_option( 'mainwp_minimumDelay', ! empty( $_POST['mainwp_minimumDelay'] ) ? intval( $_POST['mainwp_minimumDelay'] ) : 200 );
MainWP_Utility::update_option( 'mainwp_maximumIPRequests', ! empty( $_POST['mainwp_maximumIPRequests'] ) ? intval( $_POST['mainwp_maximumIPRequests'] ) : 1 );
MainWP_Utility::update_option( 'mainwp_minimumIPDelay', ! empty( $_POST['mainwp_minimumIPDelay'] ) ? intval( $_POST['mainwp_minimumIPDelay'] ) : 1000 );
MainWP_Utility::update_option( 'mainwp_maximumSyncRequests', ! empty( $_POST['mainwp_maximumSyncRequests'] ) ? intval( $_POST['mainwp_maximumSyncRequests'] ) : 8 );
MainWP_Utility::update_option( 'mainwp_maximumInstallUpdateRequests', ! empty( $_POST['mainwp_maximumInstallUpdateRequests'] ) ? intval( $_POST['mainwp_maximumInstallUpdateRequests'] ) : 3 );
MainWP_Utility::update_option( 'mainwp_sslVerifyCertificate', isset( $_POST['mainwp_sslVerifyCertificate'] ) ? 1 : 0 );
MainWP_Utility::update_option( 'mainwp_connect_signature_algo', isset( $_POST['mainwp_settings_openssl_alg'] ) ? sanitize_text_field( wp_unslash( $_POST['mainwp_settings_openssl_alg'] ) ) : 0 );
MainWP_Utility::update_option( 'mainwp_verify_connection_method', isset( $_POST['mainwp_settings_verify_connection_method'] ) ? intval( $_POST['mainwp_settings_verify_connection_method'] ) : 0 );
MainWP_Utility::update_option( 'mainwp_forceUseIPv4', isset( $_POST['mainwp_forceUseIPv4'] ) ? 1 : 0 );
MainWP_Utility::update_option( 'mainwp_wp_cron', ( ! isset( $_POST['mainwp_options_wp_cron'] ) ? 0 : 1 ) );
MainWP_Utility::update_option( 'mainwp_optimize', ( ! isset( $_POST['mainwp_optimize'] ) ? 0 : 1 ) );
if ( isset( $_POST['mainwp_openssl_lib_location'] ) ) {
$openssl_loc = ! empty( $_POST['mainwp_openssl_lib_location'] ) ? sanitize_text_field( wp_unslash( $_POST['mainwp_openssl_lib_location'] ) ) : '';
MainWP_Utility::update_option( 'mainwp_opensslLibLocation', $openssl_loc );
}
/**
* Action: mainwp_after_save_advanced_settings
*
* Fires after advanced settings save.
*
* @since 4.1
*/
do_action( 'mainwp_after_save_advanced_settings', $_POST );
}
self::render_header( 'Advanced' );
?>
get_current_user_theme();
if ( false === $custom_theme ) {
// to compatible with Custom Dashboard extension settings.
$compat_settings = get_option( 'mainwp_custom_dashboard_settings' );
if ( is_array( $compat_settings ) && isset( $compat_settings['theme'] ) ) {
$compat_theme = $compat_settings['theme'];
}
if ( null !== $compat_theme ) {
$custom_theme = $compat_theme;
}
}
$themes_files = self::get_instance()->get_custom_themes_files();
if ( empty( $themes_files ) ) {
$themes_files = array();
}
?>
get_custom_theme_folder();
$scan_dir = $dirs[0];
$handle = opendir( $scan_dir );
$themes = array();
$scan_files = array();
if ( $handle ) {
$filename = readdir( $handle );
while ( false !== $filename ) {
$correct_file = true;
if ( '.' === substr( $filename, 0, 1 ) || 'index.php' === $filename ) {
$correct_file = false;
} elseif ( '.css' !== substr( $filename, - 4 ) ) {
$correct_file = false;
}
if ( $correct_file ) {
$theme = basename( $filename, '.css' );
$theme = str_replace( '-theme', '', $theme );
$themes[ $filename ] = trim( $theme );
}
$filename = readdir( $handle ); // to while loop.
}
closedir( $handle );
}
return $themes;
}
/**
* Get selected MainWP theme name.
*/
public function get_selected_theme() {
$selected_theme = false;
$custom_theme = $this->get_current_user_theme();
if ( false === $custom_theme ) {
// to compatible with Custom Dashboard extension settings.
$compat_settings = get_option( 'mainwp_custom_dashboard_settings' );
if ( is_array( $compat_settings ) && isset( $compat_settings['theme'] ) ) {
$compat_theme = $compat_settings['theme'];
}
if ( null !== $compat_theme ) {
$custom_theme = $compat_theme;
}
}
if ( ! empty( $custom_theme ) ) {
if ( 'default' === $custom_theme || 'dark' === $custom_theme || 'wpadmin' === $custom_theme || 'minimalistic' === $custom_theme ) {
return $custom_theme;
}
$dirs = $this->get_custom_theme_folder();
$theme_dir = $dirs[0];
$file = $theme_dir . $custom_theme;
if ( file_exists( $file ) && '.css' === substr( $file, - 4 ) ) {
$selected_theme = $custom_theme;
}
}
return $selected_theme;
}
/**
* Get custom MainWP theme folder.
*/
public function get_custom_theme_folder() {
$dirs = MainWP_System_Utility::get_mainwp_dir();
global $wp_filesystem;
if ( is_array( $dirs ) && ! $wp_filesystem->exists( $dirs[0] . 'themes' ) && $wp_filesystem->exists( $dirs[0] . 'custom-dashboard' ) ) {
// re-name the custom-dashboard folder to compatible.
$wp_filesystem->move( $dirs[0] . 'custom-dashboard', $dirs[0] . 'themes' );
}
$dirs = MainWP_System_Utility::get_mainwp_dir_allow_access( 'themes' );
return $dirs;
}
/**
* Get current user's selected theme.
*/
public function get_current_user_theme() {
$custom_theme = get_user_option( 'mainwp_selected_theme' );
if ( empty( $custom_theme ) ) {
$custom_theme = get_option( 'mainwp_selected_theme', 'default' );
}
return $custom_theme;
}
/**
* Export Child Sites and save as .csv file.
*
* @uses \MainWP\Dashboard\MainWP_DB::query()
* @uses \MainWP\Dashboard\MainWP_DB::get_sql_websites_for_current_user()
* @uses \MainWP\Dashboard\MainWP_DB::data_seek()
* @uses \MainWP\Dashboard\MainWP_DB::fetch_object()
* @uses \MainWP\Dashboard\MainWP_Utility::map_site()
*/
public static function export_sites() {
if ( isset( $_GET['doExportSites'] ) && isset( $_GET['_wpnonce'] ) && wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'export_sites' ) ) {
$sql = MainWP_DB::instance()->get_sql_websites_for_current_user( true );
$websites = MainWP_DB::instance()->query( $sql );
if ( ! $websites ) {
die( 'Not found sites' );
}
$keys = array( 'name', 'url', 'adminname', 'wpgroups', 'uniqueId', 'http_user', 'http_pass', 'verify_certificate', 'ssl_version' );
$allowedHeaders = array( 'site name', 'url', 'admin name', 'group', 'security id', 'http username', 'http password', 'verify certificate', 'ssl version' );
$csv = implode( ',', $allowedHeaders ) . "\r";
MainWP_DB::data_seek( $websites, 0 );
while ( $websites && ( $website = MainWP_DB::fetch_object( $websites ) ) ) {
if ( empty( $website ) ) {
continue;
}
$row = MainWP_Utility::map_site( $website, $keys, false );
$csv .= '"' . implode( '","', $row ) . '"' . "\r";
}
header( 'Content-Type: text/csv; charset=utf-8' );
header( 'Content-Disposition: attachment; filename=export-sites.csv' );
echo $csv; // phpcs:ignore WordPress.Security.EscapeOutput
exit();
}
}
/**
* Render MainWP Email Settings SubPage.
*
* @uses \MainWP\Dashboard\MainWP_Notification_Settings::get_notification_types()
* @uses \MainWP\Dashboard\MainWP_Notification_Settings::render_edit_settings()
* @uses \MainWP\Dashboard\MainWP_Notification_Settings::emails_general_settings_handle()
* @uses \MainWP\Dashboard\MainWP_Notification_Settings::render_all_settings()
* @uses \MainWP\Dashboard\MainWP_Notification_Template::handle_template_file_action()
*/
public static function render_email_settings() {
$notification_emails = MainWP_Notification_Settings::get_notification_types();
self::render_header( 'Emails' );
$edit_email = isset( $_GET['edit-email'] ) ? sanitize_text_field( wp_unslash( $_GET['edit-email'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
if ( ! empty( $edit_email ) && isset( $notification_emails[ $edit_email ] ) ) {
$updated_templ = MainWP_Notification_Template::instance()->handle_template_file_action();
MainWP_Notification_Settings::instance()->render_edit_settings( $edit_email, $updated_templ );
} else {
$updated = MainWP_Notification_Settings::emails_general_settings_handle();
MainWP_Notification_Settings::instance()->render_all_settings( $updated );
}
self::render_footer( 'Emails' );
}
/**
* Hook the section help content to the Help Sidebar element
*/
public static function mainwp_help_content() {
if ( isset( $_GET['page'] ) && ( 'Settings' === $_GET['page'] || 'SettingsAdvanced' === $_GET['page'] || 'MainWPTools' === $_GET['page'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
?>