diff --git a/includes/admin/core/class-admin-enqueue.php b/includes/admin/core/class-admin-enqueue.php
index 46ca9f81..bf934363 100644
--- a/includes/admin/core/class-admin-enqueue.php
+++ b/includes/admin/core/class-admin-enqueue.php
@@ -332,9 +332,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
* }
* ?>
*/
- $localize_data = apply_filters('um_admin_enqueue_localize_data', array(
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
- 'nonce' => wp_create_nonce( "um-admin-nonce" )
+ $localize_data = apply_filters( 'um_admin_enqueue_localize_data', array(
+ 'nonce' => wp_create_nonce( "um-admin-nonce" )
)
);
diff --git a/includes/admin/core/class-admin-menu.php b/includes/admin/core/class-admin-menu.php
index 26bafe60..88abb645 100644
--- a/includes/admin/core/class-admin-menu.php
+++ b/includes/admin/core/class-admin-menu.php
@@ -76,7 +76,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) {
url: wp.ajax.settings.url,
type: 'post',
data: {
- action: 'um_rated'
+ action: 'um_rated',
+ nonce: um_admin_scripts.nonce
},
success: function(){
@@ -98,8 +99,14 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) {
* When user clicks the review link in backend
*/
function ultimatemember_rated() {
+ UM()->admin()->check_ajax_nonce();
+
+ if ( ! is_user_logged_in() || ! current_user_can( 'manage_options' ) ) {
+ wp_send_json_error( __( 'Please login as administrator', 'ultimate-member' ) );
+ }
+
update_option( 'um_admin_footer_text_rated', 1 );
- die();
+ wp_send_json_success();
}
@@ -109,8 +116,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) {
public function menu_order_count() {
global $menu, $submenu;
- if ( ! current_user_can( 'list_users' ) )
+ if ( ! current_user_can( 'list_users' ) ) {
return;
+ }
$count = UM()->user()->get_pending_users_count();
if ( is_array( $menu ) ) {
@@ -215,14 +223,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) {
add_meta_box( 'um-metaboxes-sidebox-2', __( 'User Cache', 'ultimate-member' ), array( &$this, 'user_cache' ), $this->pagehook, 'side', 'core' );
- if ( $this->language_avaialable_not_installed() ) {
- add_meta_box( 'um-metaboxes-sidebox-2', __( 'Language', 'ultimate-member' ), array( &$this, 'dl_language' ), $this->pagehook, 'side', 'core' );
- } else if ( $this->language_avaialable_installed() ) {
- add_meta_box( 'um-metaboxes-sidebox-2', __( 'Language', 'ultimate-member' ), array( &$this, 'up_language' ), $this->pagehook, 'side', 'core' );
- } else if ( $this->language_not_available() ) {
- add_meta_box( 'um-metaboxes-sidebox-2', __( 'Language', 'ultimate-member' ), array( &$this, 'ct_language' ), $this->pagehook, 'side', 'core' );
- }
-
//If there are active and licensed extensions - show metabox for upgrade it
$exts = UM()->plugin_updater()->um_get_active_plugins();
if ( 0 < count( $exts ) ) {
@@ -231,33 +231,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) {
}
- /**
- *
- */
- function up_language() {
- $locale = get_option('WPLANG');
- include_once UM()->admin()->templates_path . 'dashboard/language-update.php';
- }
-
-
- /**
- *
- */
- function dl_language() {
- $locale = get_option('WPLANG');
- include_once UM()->admin()->templates_path . 'dashboard/language-download.php';
- }
-
-
- /**
- *
- */
- function ct_language() {
- $locale = get_option('WPLANG');
- include_once UM()->admin()->templates_path . 'dashboard/language-contrib.php';
- }
-
-
/**
*
*/
@@ -298,45 +271,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) {
}
- /**
- * Language not available
- *
- * @return bool
- */
- function language_not_available() {
- $locale = get_option( 'WPLANG' );
- if ( $locale && !strstr($locale, 'en_') && !isset( UM()->available_languages[$locale] ) && !file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) )
- return true;
- return false;
- }
-
-
- /**
- * Language available but not installed
- *
- * @return bool
- */
- function language_avaialable_not_installed() {
- $locale = get_option('WPLANG');
- if ( $locale && isset( UM()->available_languages[$locale] ) && !file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) )
- return true;
- return false;
- }
-
-
- /**
- * Language available and installed
- *
- * @return bool
- */
- function language_avaialable_installed() {
- $locale = get_option('WPLANG');
- if ( $locale && isset( UM()->available_languages[$locale] ) && file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) )
- return true;
- return false;
- }
-
-
/**
* Get a directory size
*
diff --git a/includes/admin/core/class-admin-notices.php b/includes/admin/core/class-admin-notices.php
index 05a032b6..50aede4a 100644
--- a/includes/admin/core/class-admin-notices.php
+++ b/includes/admin/core/class-admin-notices.php
@@ -38,7 +38,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) {
$this->old_extensions_notice();
$this->install_core_page_notice();
$this->exif_extension_notice();
- $this->localize_note();
$this->show_update_messages();
$this->check_wrong_install_folder();
$this->admin_notice_opt_in();
@@ -358,45 +357,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) {
}
- /**
- * Localization notice
- */
- function localize_note() {
- $locale = get_option( 'WPLANG' );
- if ( ! $locale || strstr( $locale, 'en_' ) ) {
- return;
- }
-
- if ( file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) ) {
- return;
- }
-
- $hide_locale_notice = get_option( 'um_hide_locale_notice' );
- if ( $hide_locale_notice ) {
- return;
- }
-
- if ( isset( UM()->available_languages[ $locale ] ) ) {
-
- $download_uri = add_query_arg( 'um_adm_action', 'um_language_downloader' );
-
- $this->add_notice( 'locale', array(
- 'class' => 'updated',
- 'message' => '
' . sprintf( __( 'Your site language is %1$s . Good news! Ultimate Member is already available in %2$s language . Download the translation files and start using the plugin in your language now. Hide this notice ','ultimate-member'), $locale, UM()->available_languages[ $locale ], $download_uri, add_query_arg( 'um_adm_action', 'um_hide_locale_notice' ) ) . '
',
- ), 40 );
-
- } else {
-
- $this->add_notice( 'locale', array(
- 'class' => 'updated',
- 'message' => '
' . sprintf( __( 'Ultimate Member has not yet been translated to your language: %1$s . If you have translated the plugin you need put these files ultimatemember-%1$s.po and ultimatemember-%1$s.mo in /wp-content/languages/plugins/ for the plugin to be translated in your language. Hide this notice ', 'ultimate-member' ), $locale, add_query_arg( 'um_adm_action', 'um_hide_locale_notice' ) ) . '
',
- ), 40 );
-
- }
-
- }
-
-
/**
* Updating users
*/
@@ -706,11 +666,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) {
function dismiss_notice() {
- $nonce = isset( $_POST["nonce"] ) ? $_POST["nonce"] : "";
- if ( ! wp_verify_nonce( $nonce, "um-admin-nonce" ) ) {
- wp_send_json_error( esc_js( __( "Wrong Nonce", 'ultimate-member' ) ) );
- }
-
+ UM()->admin()->check_ajax_nonce();
if ( empty( $_POST['key'] ) ) {
wp_send_json_error( __( 'Wrong Data', 'ultimate-member' ) );
diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php
index af0435f9..3e9a43a5 100644
--- a/includes/admin/core/class-admin-settings.php
+++ b/includes/admin/core/class-admin-settings.php
@@ -1061,19 +1061,25 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
*/
function sorting_licenses_options( $settings ) {
//sorting licenses
- if ( empty( $settings['licenses']['fields'] ) )
+ if ( empty( $settings['licenses']['fields'] ) ) {
return $settings;
+ }
+
$licenses = $settings['licenses']['fields'];
- @uasort( $licenses, create_function( '$a,$b', 'return strnatcasecmp($a["label"],$b["label"]);' ) );
+ @uasort( $licenses, function( $a, $b ) {
+ return strnatcasecmp( $a["label"], $b["label"] );
+ } );
$settings['licenses']['fields'] = $licenses;
-
//sorting extensions
- if ( empty( $settings['extensions']['sections'] ) )
+ if ( empty( $settings['extensions']['sections'] ) ) {
return $settings;
+ }
$extensions = $settings['extensions']['sections'];
- @uasort( $extensions, create_function( '$a,$b', 'return strnatcasecmp($a["title"],$b["title"]);' ) );
+ @uasort( $extensions, function( $a, $b ) {
+ return strnatcasecmp( $a["title"], $b["title"] );
+ } );
$keys = array_keys( $extensions );
if ( $keys[0] != "" ) {
@@ -1082,7 +1088,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
$extensions[$new_key] = $temp;
$extensions[""] = $extensions[$keys[0]];
unset( $extensions[$keys[0]] );
- @uasort( $extensions, create_function( '$a,$b', 'return strnatcasecmp($a["title"],$b["title"]);' ) );
+ @uasort( $extensions, function( $a, $b ) {
+ return strnatcasecmp( $a["title"], $b["title"] );
+ } );
}
$settings['extensions']['sections'] = $extensions;
@@ -1099,13 +1107,14 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
*/
function get_section_fields( $tab, $section ) {
- if ( empty( $this->settings_structure[$tab] ) )
+ if ( empty( $this->settings_structure[ $tab ] ) ) {
return array();
+ }
- if ( ! empty( $this->settings_structure[$tab]['sections'][$section]['fields'] ) ) {
- return $this->settings_structure[$tab]['sections'][$section]['fields'];
- } elseif ( ! empty( $this->settings_structure[$tab]['fields'] ) ) {
- return $this->settings_structure[$tab]['fields'];
+ if ( ! empty( $this->settings_structure[ $tab ]['sections'][ $section ]['fields'] ) ) {
+ return $this->settings_structure[ $tab ]['sections'][ $section ]['fields'];
+ } elseif ( ! empty( $this->settings_structure[ $tab ]['fields'] ) ) {
+ return $this->settings_structure[ $tab ]['fields'];
}
return array();
diff --git a/includes/admin/core/class-admin-upgrade.php b/includes/admin/core/class-admin-upgrade.php
index 2179daf4..da806aa5 100644
--- a/includes/admin/core/class-admin-upgrade.php
+++ b/includes/admin/core/class-admin-upgrade.php
@@ -260,7 +260,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
type: 'POST',
dataType: 'json',
data: {
- action: 'um_get_packages'
+ action: 'um_get_packages',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
um_packages = response.data.packages;
@@ -290,7 +291,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
dataType: 'html',
data: {
action: 'um_run_package',
- pack: pack
+ pack: pack,
+ nonce: um_admin_scripts.nonce
},
success: function( html ) {
um_add_upgrade_log( 'Package "' + pack + '" is ready. Start the execution...' );
@@ -334,6 +336,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
function ajax_run_package() {
+ UM()->admin()->check_ajax_nonce();
+
if ( empty( $_POST['pack'] ) ) {
exit('');
} else {
@@ -346,40 +350,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
function ajax_get_packages() {
+ UM()->admin()->check_ajax_nonce();
+
$update_versions = $this->need_run_upgrades();
wp_send_json_success( array( 'packages' => $update_versions ) );
}
- /**
- * Load packages
- */
- /*public function packages() {
- if ( ! ini_get( 'safe_mode' ) ) {
- @set_time_limit(0);
- }
-
- $this->set_update_versions();
-
- $um_last_version_upgrade = get_option( 'um_last_version_upgrade' );
- $um_last_version_upgrade = ! $um_last_version_upgrade ? '0.0.0' : $um_last_version_upgrade;
-
- foreach ( $this->update_versions as $update_version ) {
-
- if ( version_compare( $update_version, $um_last_version_upgrade, '<=' ) )
- continue;
-
- if ( version_compare( $update_version, ultimatemember_version, '>' ) )
- continue;
-
- $file_path = $this->packages_dir . $update_version . '.php';
-
- if ( file_exists( $file_path ) ) {
- include_once( $file_path );
- update_option( 'um_last_version_upgrade', $update_version );
- }
- }
- }*/
-
/**
* Parse packages dir for packages files
diff --git a/includes/admin/core/packages/1.3.39/functions.php b/includes/admin/core/packages/1.3.39/functions.php
index 9a0ba7d1..a9f2c5da 100644
--- a/includes/admin/core/packages/1.3.39/functions.php
+++ b/includes/admin/core/packages/1.3.39/functions.php
@@ -1,5 +1,7 @@
admin()->check_ajax_nonce();
+
include 'usermeta_query.php';
update_option( 'um_last_version_upgrade', '1.3.39' );
diff --git a/includes/admin/core/packages/1.3.39/init.php b/includes/admin/core/packages/1.3.39/init.php
index 3781024d..ec96f373 100644
--- a/includes/admin/core/packages/1.3.39/init.php
+++ b/includes/admin/core/packages/1.3.39/init.php
@@ -5,11 +5,12 @@
um_add_upgrade_log( 'Upgrade Usermeta...' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_usermetaquery1339'
+ action: 'um_usermetaquery1339',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
diff --git a/includes/admin/core/packages/2.0-beta1/functions.php b/includes/admin/core/packages/2.0-beta1/functions.php
index 52adba1f..e177d80c 100644
--- a/includes/admin/core/packages/2.0-beta1/functions.php
+++ b/includes/admin/core/packages/2.0-beta1/functions.php
@@ -1,5 +1,7 @@
admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'styles.php';
@@ -8,6 +10,8 @@ function um_upgrade_styles20beta1() {
function um_upgrade_user_roles20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
/**
* @var $response_roles_data
@@ -19,7 +23,10 @@ function um_upgrade_user_roles20beta1() {
function um_upgrade_get_users_per_role20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
+
if ( ! empty( $_POST['key_in_meta'] ) ) {
$args = array(
'meta_query' => array(
@@ -43,6 +50,8 @@ function um_upgrade_get_users_per_role20beta1() {
function um_upgrade_update_users_per_page20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
if ( ! empty( $_POST['key_in_meta'] ) && ! empty( $_POST['role_key'] ) && ! empty( $_POST['page'] ) ) {
$users_per_page = 100;
@@ -85,6 +94,8 @@ function um_upgrade_update_users_per_page20beta1() {
function um_upgrade_content_restriction20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'content_restriction.php';
@@ -94,6 +105,8 @@ function um_upgrade_content_restriction20beta1() {
function um_upgrade_settings20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'settings.php';
@@ -102,6 +115,8 @@ function um_upgrade_settings20beta1() {
function um_upgrade_menus20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'menus.php';
@@ -110,6 +125,8 @@ function um_upgrade_menus20beta1() {
function um_upgrade_mc_lists20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'mc_lists.php';
@@ -118,6 +135,8 @@ function um_upgrade_mc_lists20beta1() {
function um_upgrade_social_login20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'social_login.php';
@@ -126,6 +145,8 @@ function um_upgrade_social_login20beta1() {
function um_upgrade_cpt20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'um_cpt.php';
@@ -134,6 +155,8 @@ function um_upgrade_cpt20beta1() {
function um_upgrade_get_forums20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
remove_all_actions( 'pre_get_posts' );
@@ -149,6 +172,8 @@ function um_upgrade_get_forums20beta1() {
function um_upgrade_update_forum_per_page20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
if ( ! empty( $_POST['page'] ) ) {
@@ -205,6 +230,8 @@ function um_upgrade_update_forum_per_page20beta1() {
function um_upgrade_get_products20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
$wc_products = get_posts( array(
@@ -218,6 +245,8 @@ function um_upgrade_get_products20beta1() {
function um_upgrade_update_products_per_page20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
if ( ! empty( $_POST['page'] ) ) {
@@ -296,6 +325,8 @@ function um_upgrade_update_products_per_page20beta1() {
function um_upgrade_email_templates20beta1() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'email_templates.php';
diff --git a/includes/admin/core/packages/2.0-beta1/init.php b/includes/admin/core/packages/2.0-beta1/init.php
index 08587a21..1e4799fd 100644
--- a/includes/admin/core/packages/2.0-beta1/init.php
+++ b/includes/admin/core/packages/2.0-beta1/init.php
@@ -13,11 +13,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_styles20beta1'
+ action: 'um_styles20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -36,11 +37,12 @@
function upgrade_roles() {
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_user_roles20beta1'
+ action: 'um_user_roles20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -70,12 +72,13 @@
var role = um_roles_data.shift();
um_add_upgrade_log( '"' + role.role_key + '"' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
action: 'um_get_users_per_role20beta1',
- key_in_meta: role.key_in_meta
+ key_in_meta: role.key_in_meta,
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data.count != 'undefined' ) {
@@ -103,14 +106,15 @@
function update_user_per_page( role_key, key_in_meta ) {
if ( current_page <= users_pages ) {
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
action: 'um_update_users_per_page20beta1',
role_key: role_key,
key_in_meta: key_in_meta,
- page: current_page
+ page: current_page,
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -135,11 +139,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_content_restriction20beta1'
+ action: 'um_content_restriction20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -160,11 +165,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_settings20beta1'
+ action: 'um_settings20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -185,11 +191,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_menus20beta1'
+ action: 'um_menus20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -210,11 +217,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_mc_lists20beta1'
+ action: 'um_mc_lists20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -235,11 +243,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_social_login20beta1'
+ action: 'um_social_login20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -260,11 +269,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_cpt20beta1'
+ action: 'um_cpt20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -286,11 +296,12 @@
um_add_upgrade_log( '' );
current_page = 1;
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_get_forums20beta1'
+ action: 'um_get_forums20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -313,12 +324,13 @@
function update_forums_per_page() {
if ( current_page <= forums_pages ) {
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
action: 'um_update_forum_per_page20beta1',
- page: current_page
+ page: current_page,
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -346,11 +358,12 @@
current_page = 1;
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_get_products20beta1'
+ action: 'um_get_products20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -373,12 +386,13 @@
function update_products_per_page() {
if ( current_page <= products_pages ) {
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
action: 'um_update_products_per_page20beta1',
- page: current_page
+ page: current_page,
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -402,11 +416,12 @@
function upgrade_email_templates() {
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_email_templates20beta1'
+ action: 'um_email_templates20beta1',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
diff --git a/includes/admin/core/packages/2.0.10/functions.php b/includes/admin/core/packages/2.0.10/functions.php
index be32d0b3..0a12b32d 100644
--- a/includes/admin/core/packages/2.0.10/functions.php
+++ b/includes/admin/core/packages/2.0.10/functions.php
@@ -1,5 +1,7 @@
admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
include 'styles.php';
@@ -8,6 +10,8 @@ function um_upgrade_styles2010() {
function um_upgrade_cache2010() {
+ UM()->admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
UM()->user()->remove_cache_all_users();
diff --git a/includes/admin/core/packages/2.0.10/init.php b/includes/admin/core/packages/2.0.10/init.php
index c5b4d295..7ba29977 100644
--- a/includes/admin/core/packages/2.0.10/init.php
+++ b/includes/admin/core/packages/2.0.10/init.php
@@ -6,11 +6,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_styles2010'
+ action: 'um_styles2010',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
@@ -30,11 +31,12 @@
function um_clear_cache2010() {
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_cache2010'
+ action: 'um_cache2010',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
diff --git a/includes/admin/core/packages/2.0.24/functions.php b/includes/admin/core/packages/2.0.24/functions.php
index b379280a..ada9df2e 100644
--- a/includes/admin/core/packages/2.0.24/functions.php
+++ b/includes/admin/core/packages/2.0.24/functions.php
@@ -1,5 +1,7 @@
admin()->check_ajax_nonce();
+
um_maybe_unset_time_limit();
UM()->files()->remove_dir( UM()->files()->upload_temp );
diff --git a/includes/admin/core/packages/2.0.24/init.php b/includes/admin/core/packages/2.0.24/init.php
index 8d97f6be..e40b5c6d 100644
--- a/includes/admin/core/packages/2.0.24/init.php
+++ b/includes/admin/core/packages/2.0.24/init.php
@@ -6,11 +6,12 @@
um_add_upgrade_log( '' );
jQuery.ajax({
- url: '',
+ url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
- action: 'um_tempfolder2024'
+ action: 'um_tempfolder2024',
+ nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
diff --git a/includes/admin/templates/dashboard/language-contrib.php b/includes/admin/templates/dashboard/language-contrib.php
deleted file mode 100644
index 6909e03b..00000000
--- a/includes/admin/templates/dashboard/language-contrib.php
+++ /dev/null
@@ -1,7 +0,0 @@
-
- %1$s.', 'ultimate-member' ), $locale ); ?>
-
-
-
- community forum.', 'ultimate-member' ); ?>
-
\ No newline at end of file
diff --git a/includes/admin/templates/dashboard/language-download.php b/includes/admin/templates/dashboard/language-download.php
deleted file mode 100644
index ab5f06d7..00000000
--- a/includes/admin/templates/dashboard/language-download.php
+++ /dev/null
@@ -1,9 +0,0 @@
-
- %1$s (%2$s).', 'ultimate-member' ), UM()->available_languages[ $locale ], $locale ); ?>
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/includes/admin/templates/dashboard/language-update.php b/includes/admin/templates/dashboard/language-update.php
deleted file mode 100644
index 4287e3b7..00000000
--- a/includes/admin/templates/dashboard/language-update.php
+++ /dev/null
@@ -1,9 +0,0 @@
-
- %1$s (%2$s).', 'ultimate-member' ), UM()->available_languages[ $locale ], $locale ); ?>
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/includes/admin/templates/extensions.php b/includes/admin/templates/extensions.php
index c3755722..e475db72 100644
--- a/includes/admin/templates/extensions.php
+++ b/includes/admin/templates/extensions.php
@@ -162,11 +162,11 @@ $free['terms-conditions'] = array(
- Core Extensions Bundle – Check out our extensions bundle which includes all extensions at a significant discount.
+ All Access Pass – Get access to all Ultimate Member extensions at a significant discount with our All Access Pass.', 'ultimate-member' ) ?>
diff --git a/includes/admin/templates/modal/dynamic_edit_field.php b/includes/admin/templates/modal/dynamic_edit_field.php
index daf838b4..779f994d 100644
--- a/includes/admin/templates/modal/dynamic_edit_field.php
+++ b/includes/admin/templates/modal/dynamic_edit_field.php
@@ -11,6 +11,7 @@
diff --git a/includes/admin/templates/modal/dynamic_edit_row.php b/includes/admin/templates/modal/dynamic_edit_row.php
index 806c26ac..c00b530a 100644
--- a/includes/admin/templates/modal/dynamic_edit_row.php
+++ b/includes/admin/templates/modal/dynamic_edit_row.php
@@ -11,6 +11,7 @@
diff --git a/includes/admin/templates/modal/dynamic_new_divider.php b/includes/admin/templates/modal/dynamic_new_divider.php
index f9c9b10a..18484216 100644
--- a/includes/admin/templates/modal/dynamic_new_divider.php
+++ b/includes/admin/templates/modal/dynamic_new_divider.php
@@ -11,6 +11,7 @@
diff --git a/includes/admin/templates/modal/dynamic_new_field.php b/includes/admin/templates/modal/dynamic_new_field.php
index 9b3f64c6..9d4c587c 100644
--- a/includes/admin/templates/modal/dynamic_new_field.php
+++ b/includes/admin/templates/modal/dynamic_new_field.php
@@ -11,6 +11,7 @@
diff --git a/includes/admin/templates/modal/dynamic_new_group.php b/includes/admin/templates/modal/dynamic_new_group.php
index 2f061007..d9a3cddd 100644
--- a/includes/admin/templates/modal/dynamic_new_group.php
+++ b/includes/admin/templates/modal/dynamic_new_group.php
@@ -11,6 +11,7 @@
diff --git a/includes/class-functions.php b/includes/class-functions.php
index b40141cc..f2969d30 100644
--- a/includes/class-functions.php
+++ b/includes/class-functions.php
@@ -16,6 +16,21 @@ if ( ! class_exists( 'UM_Functions' ) ) {
}
+ /**
+ * Check frontend nonce
+ *
+ * @param bool $action
+ */
+ function check_ajax_nonce( $action = false ) {
+ $nonce = isset( $_POST['nonce'] ) ? $_POST['nonce'] : '';
+ $action = empty( $action ) ? 'um-frontend-nonce' : $action;
+
+ if ( ! wp_verify_nonce( $nonce, $action ) ) {
+ wp_send_json_error( esc_js( __( 'Wrong Nonce', 'ultimate-member' ) ) );
+ }
+ }
+
+
/**
* What type of request is this?
*
diff --git a/includes/class-init.php b/includes/class-init.php
index a21fd1e0..9af4fbca 100644
--- a/includes/class-init.php
+++ b/includes/class-init.php
@@ -65,14 +65,6 @@ if ( ! class_exists( 'UM' ) ) {
public $is_permalinks;
- /**
- * UM Available Languages
- *
- * @var array
- */
- var $available_languages;
-
-
/**
* Main UM Instance
*
@@ -198,31 +190,6 @@ if ( ! class_exists( 'UM' ) ) {
$this->is_filtering = 0;
$this->honeypot = 'request';
- $this->available_languages = array(
- 'en_US' => 'English (US)',
- 'es_ES' => 'Español',
- 'es_MX' => 'Español (México)',
- 'fr_FR' => 'Français',
- 'it_IT' => 'Italiano',
- 'de_DE' => 'Deutsch',
- 'nl_NL' => 'Nederlands',
- 'pt_BR' => 'Português do Brasil',
- 'fi_FI' => 'Suomi',
- 'ro_RO' => 'Română',
- 'da_DK' => 'Dansk',
- 'sv_SE' => 'Svenska',
- 'pl_PL' => 'Polski',
- 'cs_CZ' => 'Czech',
- 'el' => 'Greek',
- 'id_ID' => 'Indonesian',
- 'zh_CN' => '简体中文',
- 'ru_RU' => 'Русский',
- 'tr_TR' => 'Türkçe',
- 'fa_IR' => 'Farsi',
- 'he_IL' => 'Hebrew',
- 'ar' => 'العربية',
- );
-
// textdomain loading
$this->localize();
diff --git a/includes/core/class-enqueue.php b/includes/core/class-enqueue.php
index 1ef61d0b..d8fadb14 100644
--- a/includes/core/class-enqueue.php
+++ b/includes/core/class-enqueue.php
@@ -88,17 +88,15 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
wp_register_script( 'um_fileupload', $this->js_baseurl . 'um-fileupload' . $this->suffix . '.js', array( 'jquery', 'um_jquery_form' ), ultimatemember_version, true );
- $datetime_deps = array( 'jquery' );
- // load a localized version for date/time
- $locale = get_locale();
- if ( $locale && file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
- wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery' ), ultimatemember_version, true );
- $datetime_deps[] = 'um_datetime_locale';
- }
- wp_register_script( 'um_datetime', $this->js_baseurl . 'pickadate/picker.js', $datetime_deps, ultimatemember_version, true );
+ wp_register_script( 'um_datetime', $this->js_baseurl . 'pickadate/picker.js', array( 'jquery' ), ultimatemember_version, true );
wp_register_script( 'um_datetime_date', $this->js_baseurl . 'pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
wp_register_script( 'um_datetime_time', $this->js_baseurl . 'pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
wp_register_script( 'um_datetime_legacy', $this->js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
+ // load a localized version for date/time
+ $locale = get_locale();
+ if ( $locale && file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
+ wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
+ }
wp_register_script( 'um_tipsy', $this->js_baseurl . 'um-tipsy' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
wp_register_script( 'um_raty', $this->js_baseurl . 'um-raty' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
@@ -110,7 +108,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
wp_register_script('um_functions', $this->js_baseurl . 'um-functions' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), ultimatemember_version, true );
wp_register_script( 'um-gdpr', $this->js_baseurl . 'um-gdpr' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, false );
wp_register_script('um_conditional', $this->js_baseurl . 'um-conditional' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
- wp_register_script('um_scripts', $this->js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_conditional' ), ultimatemember_version, true );
+ wp_register_script('um_scripts', $this->js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_conditional', 'um_datetime', 'um_datetime_date', 'um_datetime_time', 'um_datetime_legacy' ), ultimatemember_version, true );
/**
* UM hook
*
@@ -131,7 +129,9 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
* }
* ?>
*/
- $localize_data = apply_filters( 'um_enqueue_localize_data', array() );
+ $localize_data = apply_filters( 'um_enqueue_localize_data', array(
+ 'nonce' => wp_create_nonce( "um-frontend-nonce" ),
+ ) );
wp_localize_script( 'um_scripts', 'um_scripts', $localize_data );
wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
@@ -327,6 +327,13 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
wp_enqueue_script('um_datetime_date');
wp_enqueue_script('um_datetime_time');
wp_enqueue_script('um_datetime_legacy');
+
+ // load a localized version for date/time
+ $locale = get_locale();
+ if ( $locale && file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
+ wp_enqueue_script('um_datetime_locale' );
+ }
+
wp_enqueue_style('um_datetime');
wp_enqueue_style('um_datetime_date');
wp_enqueue_style('um_datetime_time');
diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php
index a87f19bf..3552f8ec 100644
--- a/includes/core/class-fields.php
+++ b/includes/core/class-fields.php
@@ -4096,21 +4096,25 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
*
*/
function do_ajax_action() {
- if (!is_user_logged_in() || !current_user_can( 'manage_options' )) die( __( 'Please login as administrator', 'ultimate-member' ) );
+ UM()->admin()->check_ajax_nonce();
+
+ if ( ! is_user_logged_in() || ! current_user_can( 'manage_options' ) ) {
+ wp_send_json_error( __( 'Please login as administrator', 'ultimate-member' ) );
+ }
extract( $_POST );
$output = null;
$position = array();
- if (!empty( $in_column )) {
+ if ( ! empty( $in_column ) ) {
$position['in_row'] = '_um_row_' . ( (int)$in_row + 1 );
$position['in_sub_row'] = $in_sub_row;
$position['in_column'] = $in_column;
$position['in_group'] = $in_group;
}
- switch ($act_id) {
+ switch ( $act_id ) {
case 'um_admin_duplicate_field':
$this->duplicate_field( $arg1, $arg2 );
diff --git a/includes/core/class-files.php b/includes/core/class-files.php
index e5dd73c8..06974e16 100644
--- a/includes/core/class-files.php
+++ b/includes/core/class-files.php
@@ -81,11 +81,11 @@ if ( ! class_exists( 'um\core\Files' ) ) {
$field_key = urlencode( $field_key );
if ( UM()->is_permalinks ) {
- $url = get_site_url( get_current_blog_id() );
+ $url = get_home_url( get_current_blog_id() );
$nonce = wp_create_nonce( $user_id . $form_id . 'um-download-nonce' );
$url = $url . "/um-download/{$form_id}/{$field_key}/{$user_id}/{$nonce}";
} else {
- $url = get_site_url( get_current_blog_id() );
+ $url = get_home_url( get_current_blog_id() );
$nonce = wp_create_nonce( $user_id . $form_id . 'um-download-nonce' );
$url = add_query_arg( array( 'um_action' => 'download', 'um_form' => $form_id, 'um_field' => $field_key, 'um_user' => $user_id, 'um_verify' => $nonce ), $url );
}
@@ -241,7 +241,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
* Remove file by AJAX
*/
function ajax_remove_file() {
- UM()->check_frontend_ajax_nonce();
+ UM()->check_ajax_nonce();
/**
* @var $src
@@ -257,7 +257,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
* Resize image AJAX handler
*/
function ajax_resize_image() {
- UM()->check_frontend_ajax_nonce();
+ UM()->check_ajax_nonce();
/**
* @var $key
diff --git a/includes/core/class-form.php b/includes/core/class-form.php
index ccebba66..59c5d8e7 100644
--- a/includes/core/class-form.php
+++ b/includes/core/class-form.php
@@ -50,6 +50,8 @@ if ( ! class_exists( 'um\core\Form' ) ) {
*
*/
function ajax_muted_action() {
+ UM()->check_ajax_nonce();
+
extract( $_REQUEST );
if ( ! UM()->roles()->um_current_user_can( 'edit', $user_id ) )
@@ -86,7 +88,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
*
*/
function ajax_select_options() {
-
+ UM()->check_ajax_nonce();
$arr_options = array();
$arr_options['status'] = 'success';
diff --git a/includes/core/class-profile.php b/includes/core/class-profile.php
index 1b6d7e79..4ce8f126 100644
--- a/includes/core/class-profile.php
+++ b/includes/core/class-profile.php
@@ -45,6 +45,8 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
* Delete profile avatar AJAX handler
*/
function ajax_delete_profile_photo() {
+ UM()->check_ajax_nonce();
+
/**
* @var $user_id
*/
@@ -61,6 +63,8 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
* Delete cover photo AJAX handler
*/
function ajax_delete_cover_photo() {
+ UM()->check_ajax_nonce();
+
/**
* @var $user_id
*/
@@ -218,7 +222,7 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
*/
function can_view_tab( $tab ) {
- $target_id = UM()->user()->target_id;
+ $target_id = (int) UM()->user()->target_id;
if ( empty( $target_id ) ) {
return true;
}
diff --git a/includes/core/class-query.php b/includes/core/class-query.php
index 1c4dbe64..dfd13ddb 100644
--- a/includes/core/class-query.php
+++ b/includes/core/class-query.php
@@ -39,6 +39,8 @@ if ( ! class_exists( 'um\core\Query' ) ) {
* Ajax pagination for posts
*/
function ajax_paginate() {
+ UM()->check_ajax_nonce();
+
/**
* @var $hook
* @var $args
diff --git a/includes/core/class-user-posts.php b/includes/core/class-user-posts.php
index 24ec6f76..76a75229 100644
--- a/includes/core/class-user-posts.php
+++ b/includes/core/class-user-posts.php
@@ -82,6 +82,8 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
*
*/
function load_posts() {
+ UM()->check_ajax_nonce();
+
$author = ! empty( $_POST['author'] ) ? $_POST['author'] : get_current_user_id();
$page = ! empty( $_POST['page'] ) ? $_POST['page'] : 0;
diff --git a/includes/core/class-user.php b/includes/core/class-user.php
index 30ab7290..24f709b1 100644
--- a/includes/core/class-user.php
+++ b/includes/core/class-user.php
@@ -87,8 +87,11 @@ if ( ! class_exists( 'um\core\User' ) ) {
add_action( 'init', array( &$this, 'check_membership' ), 10 );
- add_action( 'delete_user', array( &$this, 'delete_user_handler' ), 10, 1 );
- add_action( 'wpmu_delete_user', array( &$this, 'delete_user_handler' ), 10, 1 );
+ if ( is_multisite() ) {
+ add_action( 'delete_user', array( &$this, 'delete_user_handler' ), 10, 1 );
+ } else {
+ add_action( 'wpmu_delete_user', array( &$this, 'delete_user_handler' ), 10, 1 );
+ }
}
@@ -96,6 +99,8 @@ if ( ! class_exists( 'um\core\User' ) ) {
* @param $user_id
*/
function delete_user_handler( $user_id ) {
+ error_log( '----------------' );
+ error_log( $user_id );
um_fetch_user( $user_id );
diff --git a/includes/core/um-actions-ajax.php b/includes/core/um-actions-ajax.php
index 7647e352..d8d82ba7 100644
--- a/includes/core/um-actions-ajax.php
+++ b/includes/core/um-actions-ajax.php
@@ -8,6 +8,8 @@ if ( ! defined( 'ABSPATH' ) ) exit;
* @return boolean
*/
function ultimatemember_check_username_exists() {
+ UM()->check_ajax_nonce();
+
$username = isset($_REQUEST['username']) ? $_REQUEST['username'] : '';
$exists = username_exists( $username );
diff --git a/includes/core/um-actions-misc.php b/includes/core/um-actions-misc.php
index df9b737f..2def15d0 100644
--- a/includes/core/um-actions-misc.php
+++ b/includes/core/um-actions-misc.php
@@ -12,33 +12,30 @@ function um_browser_url_redirect_to( $args ) {
$url = '';
if ( ! empty( $_REQUEST['redirect_to'] ) ) {
+
$url = $_REQUEST['redirect_to'];
- echo '
';
} elseif ( ! empty( $args['after_login'] ) ) {
-
+
switch ( $args['after_login'] ) {
-
+
case 'redirect_admin':
$url = admin_url();
break;
-
+
case 'redirect_profile':
$url = um_user_profile_url();
break;
-
+
case 'redirect_url':
$url = $args['redirect_url'];
break;
-
+
case 'refresh':
-
$url = UM()->permalinks()->get_current_url();
-
break;
-
+
}
-
}
/**
@@ -66,7 +63,6 @@ function um_browser_url_redirect_to( $args ) {
if ( ! empty( $url ) ) {
echo '
';
}
-
}
add_action( 'um_after_form_fields', 'um_browser_url_redirect_to' );
diff --git a/includes/core/um-actions-profile.php b/includes/core/um-actions-profile.php
index 1a0042b0..500f28af 100644
--- a/includes/core/um-actions-profile.php
+++ b/includes/core/um-actions-profile.php
@@ -888,9 +888,7 @@ function um_profile_header( $args ) {
data-character-limit="options()->get( 'profile_bio_maxchars' ); ?>"
placeholder=""
name=""
- id="">
+ id="">fields()->field_value( 'description' ) ?>
options()->get( 'profile_bio_maxchars' ); ?>
window.location = '" . $url . "'\";";
- register_shutdown_function( create_function( '', $funtext ) );
+ register_shutdown_function( function( $url ) {
+ echo '';
+ }, $url );
- if (1 < ob_get_level()) {
- while (ob_get_level() > 1) {
+ if ( 1 < ob_get_level() ) {
+ while ( ob_get_level() > 1 ) {
ob_end_clean();
}
- }
-
- ?>
-
-
+
+ %s %s requires 2.0 extensions. You have pre 2.0 extensions "
@@ -1110,31 +1111,31 @@ msgid ""
"versions. For more info see this
doc ."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:301
+#: includes/admin/core/class-admin-notices.php:300
#, php-format
msgid ""
"%s needs to create several pages (User Profiles, Account, Registration, "
"Login, Password Reset, Logout, Member Directory) to function correctly."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:305
+#: includes/admin/core/class-admin-notices.php:304
msgid "Create Pages"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:307
-#: includes/admin/core/class-admin-notices.php:540
+#: includes/admin/core/class-admin-notices.php:306
+#: includes/admin/core/class-admin-notices.php:500
msgid "No thanks"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:327
+#: includes/admin/core/class-admin-notices.php:326
msgid "Ultimate Member Setup Error: User page can not be a child page."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:337
+#: includes/admin/core/class-admin-notices.php:336
msgid "Ultimate Member Setup Error: Account page can not be a child page."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:355
+#: includes/admin/core/class-admin-notices.php:354
#, php-format
msgid ""
"Exif is not enabled on your server. Mobile photo uploads will not be rotated "
@@ -1142,88 +1143,69 @@ msgid ""
"notice"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:385
-#, php-format
-msgid ""
-"Your site language is
%1$s . Good news! Ultimate Member is "
-"already available in
%2$s language .
Download the translation files and start using the plugin in your "
-"language now.
Hide this notice "
-msgstr ""
-
-#: includes/admin/core/class-admin-notices.php:392
-#, php-format
-msgid ""
-"Ultimate Member has not yet been translated to your language:
%1$s"
-"strong>. If you have translated the plugin you need put these files "
-"ultimatemember-%1$s.po and ultimatemember-%1$s.mo in /"
-"wp-content/languages/plugins/ for the plugin to be translated in "
-"your language. Hide this notice "
-msgstr ""
-
-#: includes/admin/core/class-admin-notices.php:429
+#: includes/admin/core/class-admin-notices.php:389
#, php-format
msgid ""
"Are you sure you want to delete the selected user(s)? The following users "
"will be deleted: %s
This cannot be undone! "
msgstr ""
-#: includes/admin/core/class-admin-notices.php:430
+#: includes/admin/core/class-admin-notices.php:390
msgid "Undo"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:435
+#: includes/admin/core/class-admin-notices.php:395
msgid "Your translation files have been updated successfully."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:439
+#: includes/admin/core/class-admin-notices.php:399
msgid "Your temp uploads directory is now clean."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:443
+#: includes/admin/core/class-admin-notices.php:403
msgid "Your user cache is now removed."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:447
+#: includes/admin/core/class-admin-notices.php:407
msgid "You got the latest upgrades."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:451
+#: includes/admin/core/class-admin-notices.php:411
msgid "Try again later. You can run this action once daily."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:455
+#: includes/admin/core/class-admin-notices.php:415
msgid "The form has been duplicated successfully."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:459
+#: includes/admin/core/class-admin-notices.php:419
msgid "User has been updated."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:463
+#: includes/admin/core/class-admin-notices.php:423
msgid "Users have been updated."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:467
+#: includes/admin/core/class-admin-notices.php:427
msgid "Changed roles."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:471
+#: includes/admin/core/class-admin-notices.php:431
msgid "Super administrators cannot be modified."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:472
+#: includes/admin/core/class-admin-notices.php:432
msgid "Other users have been updated."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:509
+#: includes/admin/core/class-admin-notices.php:469
#, php-format
msgid ""
"You have installed %s with wrong folder name. Correct "
"folder name is \"ultimate-member\" ."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:534
+#: includes/admin/core/class-admin-notices.php:494
#, php-format
msgid ""
"Thanks for installing %s ! We hope you like the plugin. To "
@@ -1232,12 +1214,12 @@ msgid ""
"discount code for our extensions bundle ."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:538
+#: includes/admin/core/class-admin-notices.php:498
#, php-format
msgid "Claim 20% discount code"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:577
+#: includes/admin/core/class-admin-notices.php:537
#, php-format
msgid ""
"There are %d inactive %s license keys for this site. This site is not "
@@ -1245,14 +1227,14 @@ msgid ""
"\">www.ultimatemember.com."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:584
+#: includes/admin/core/class-admin-notices.php:544
#, php-format
msgid ""
"You have %d invalid or expired license keys for %s. Please go to the Licenses page to correct this issue."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:598
+#: includes/admin/core/class-admin-notices.php:558
#, php-format
msgid ""
"%s version %s needs to be updated to work correctly. page and run the upgrade process."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:602
+#: includes/admin/core/class-admin-notices.php:562
msgid "Upgrade Now"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:616
+#: includes/admin/core/class-admin-notices.php:576
#, php-format
msgid "%s %s Successfully Upgraded"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:642
+#: includes/admin/core/class-admin-notices.php:602
#, php-format
msgid ""
"Hey there! It's been one month since you installed %s. How have you found "
"the plugin so far?"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:645
+#: includes/admin/core/class-admin-notices.php:605
msgid "I love it!"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:646
+#: includes/admin/core/class-admin-notices.php:606
msgid "It's good but could be better"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:647
+#: includes/admin/core/class-admin-notices.php:607
msgid "I don't like the plugin"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:652
+#: includes/admin/core/class-admin-notices.php:612
#, php-format
msgid ""
"Great! We're happy to hear that you love the plugin. It would be amazing if "
@@ -1298,22 +1280,22 @@ msgid ""
"appreciated by us!"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:656
+#: includes/admin/core/class-admin-notices.php:616
msgid "Leave Review"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:661
+#: includes/admin/core/class-admin-notices.php:621
msgid ""
"We're glad to hear that you like the plugin but we would love to get your "
"feedback so we can make the plugin better."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:665
-#: includes/admin/core/class-admin-notices.php:674
+#: includes/admin/core/class-admin-notices.php:625
+#: includes/admin/core/class-admin-notices.php:634
msgid "Provide Feedback"
msgstr ""
-#: includes/admin/core/class-admin-notices.php:670
+#: includes/admin/core/class-admin-notices.php:630
#, php-format
msgid ""
"We're sorry to hear that. If you're having the issue with the plugin you can "
@@ -1323,18 +1305,14 @@ msgid ""
"like about the plugin you can tell us know by giving us feedback."
msgstr ""
-#: includes/admin/core/class-admin-notices.php:696
+#: includes/admin/core/class-admin-notices.php:656
#, php-format
msgid ""
"%s future plans! Detailed future list is here "
msgstr ""
-#: includes/admin/core/class-admin-notices.php:711
-msgid "Wrong Nonce"
-msgstr ""
-
-#: includes/admin/core/class-admin-notices.php:716
+#: includes/admin/core/class-admin-notices.php:672
msgid "Wrong Data"
msgstr ""
@@ -2337,130 +2315,130 @@ msgstr ""
msgid "Install Info"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1150
+#: includes/admin/core/class-admin-settings.php:1159
msgid "Ultimate Member - Settings"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1289
+#: includes/admin/core/class-admin-settings.php:1298
msgid "Save Changes"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1732
+#: includes/admin/core/class-admin-settings.php:1741
msgid "Subject Line"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1734
+#: includes/admin/core/class-admin-settings.php:1743
msgid "This is the subject line of the e-mail"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1739
+#: includes/admin/core/class-admin-settings.php:1748
msgid "Message Body"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1741
+#: includes/admin/core/class-admin-settings.php:1750
msgid "This is the content of the e-mail"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1791
-#: includes/admin/core/class-admin-settings.php:1889
+#: includes/admin/core/class-admin-settings.php:1800
+#: includes/admin/core/class-admin-settings.php:1898
#, php-format
msgid ""
"Your license key expired on %s. Please renew your license key ."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1804
-#: includes/admin/core/class-admin-settings.php:1902
+#: includes/admin/core/class-admin-settings.php:1813
+#: includes/admin/core/class-admin-settings.php:1911
#, php-format
msgid ""
"Your license key has been disabled. Please contact support for more information."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1816
-#: includes/admin/core/class-admin-settings.php:1914
+#: includes/admin/core/class-admin-settings.php:1825
+#: includes/admin/core/class-admin-settings.php:1923
#, php-format
msgid ""
"Invalid license. Please visit your account "
"page and verify it."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1829
-#: includes/admin/core/class-admin-settings.php:1927
+#: includes/admin/core/class-admin-settings.php:1838
+#: includes/admin/core/class-admin-settings.php:1936
#, php-format
msgid ""
"Your %s is not active for this URL. Please visit your account page to manage your license key URLs."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1841
-#: includes/admin/core/class-admin-settings.php:1939
+#: includes/admin/core/class-admin-settings.php:1850
+#: includes/admin/core/class-admin-settings.php:1948
#, php-format
msgid "This appears to be an invalid license key for %s."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1850
-#: includes/admin/core/class-admin-settings.php:1948
+#: includes/admin/core/class-admin-settings.php:1859
+#: includes/admin/core/class-admin-settings.php:1957
#, php-format
msgid ""
"Your license key has reached its activation limit. View "
"possible upgrades now."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1859
-#: includes/admin/core/class-admin-settings.php:1957
+#: includes/admin/core/class-admin-settings.php:1868
+#: includes/admin/core/class-admin-settings.php:1966
msgid ""
"The key you entered belongs to a bundle, please use the product specific "
"license key."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1867
-#: includes/admin/core/class-admin-settings.php:1875
+#: includes/admin/core/class-admin-settings.php:1876
+#: includes/admin/core/class-admin-settings.php:1884
msgid "unknown_error"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1868
-#: includes/admin/core/class-admin-settings.php:1876
+#: includes/admin/core/class-admin-settings.php:1877
+#: includes/admin/core/class-admin-settings.php:1885
#, php-format
msgid ""
"There was an error with this license key: %s. Please contact "
"our support team ."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1972
+#: includes/admin/core/class-admin-settings.php:1981
msgid "License key never expires."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1979
+#: includes/admin/core/class-admin-settings.php:1988
#, php-format
msgid ""
"Your license key expires soon! It expires on %s. Renew your license key ."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1989
+#: includes/admin/core/class-admin-settings.php:1998
#, php-format
msgid "Your license key expires on %s."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2007
+#: includes/admin/core/class-admin-settings.php:2016
#, php-format
msgid "To receive updates, please enter your valid %s license key."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2031
+#: includes/admin/core/class-admin-settings.php:2040
msgid "Clear License"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2033
+#: includes/admin/core/class-admin-settings.php:2042
msgid "Activate"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2035
+#: includes/admin/core/class-admin-settings.php:2044
msgid "Re-Activate"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2087
+#: includes/admin/core/class-admin-settings.php:2096
msgid ""
"To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C "
"(Mac)."
@@ -2574,7 +2552,7 @@ msgstr ""
#: includes/admin/core/class-admin-users.php:305
#: includes/admin/templates/dashboard/users.php:11
-#: includes/core/class-user.php:816
+#: includes/core/class-user.php:821
msgid "Approved"
msgstr ""
@@ -2697,59 +2675,59 @@ msgstr ""
msgid "User Role Deleted Successfully."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:6
-#: includes/admin/core/packages/2.0.10/functions.php:6
+#: includes/admin/core/packages/2.0-beta1/functions.php:8
+#: includes/admin/core/packages/2.0.10/functions.php:8
msgid "Styles was upgraded successfully"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:17
+#: includes/admin/core/packages/2.0-beta1/functions.php:21
msgid "User Roles was upgraded successfully"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:80
+#: includes/admin/core/packages/2.0-beta1/functions.php:89
#, php-format
msgid "Users from %s to %s was upgraded successfully..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:100
+#: includes/admin/core/packages/2.0-beta1/functions.php:113
msgid "Settings was upgraded successfully"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:108
+#: includes/admin/core/packages/2.0-beta1/functions.php:123
msgid "Menus settings was upgraded successfully"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:116
+#: includes/admin/core/packages/2.0-beta1/functions.php:133
msgid "Mailchimp Lists was upgraded successfully"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:124
+#: includes/admin/core/packages/2.0-beta1/functions.php:143
msgid "Social login forms was upgraded successfully"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:132
+#: includes/admin/core/packages/2.0-beta1/functions.php:153
msgid "UM Custom Posts was upgraded successfully"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:147
+#: includes/admin/core/packages/2.0-beta1/functions.php:170
msgid "Forums are ready for upgrade"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:200
+#: includes/admin/core/packages/2.0-beta1/functions.php:225
#, php-format
msgid "Forums from %s to %s was upgraded successfully..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:216
+#: includes/admin/core/packages/2.0-beta1/functions.php:243
msgid "Woocommerce Products are ready for upgrade"
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:290
+#: includes/admin/core/packages/2.0-beta1/functions.php:319
#, php-format
msgid "Woocommerce Products from %s to %s was upgraded successfully..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/functions.php:306
+#: includes/admin/core/packages/2.0-beta1/functions.php:337
msgid "Email Templates was upgraded successfully"
msgstr ""
@@ -2758,72 +2736,72 @@ msgstr ""
msgid "Upgrade Styles..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:37
+#: includes/admin/core/packages/2.0-beta1/init.php:38
msgid "Upgrade Roles..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:50
+#: includes/admin/core/packages/2.0-beta1/init.php:52
msgid "Upgrade Users..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:71
+#: includes/admin/core/packages/2.0-beta1/init.php:73
msgid "Getting "
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:71
-#: includes/admin/core/packages/2.0-beta1/init.php:82
+#: includes/admin/core/packages/2.0-beta1/init.php:73
+#: includes/admin/core/packages/2.0-beta1/init.php:85
msgid " users..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:82
+#: includes/admin/core/packages/2.0-beta1/init.php:85
msgid "There are "
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:83
+#: includes/admin/core/packages/2.0-beta1/init.php:86
msgid "Start users upgrading..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:135
+#: includes/admin/core/packages/2.0-beta1/init.php:139
msgid "Upgrade Content Restriction Settings..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:160
+#: includes/admin/core/packages/2.0-beta1/init.php:165
msgid "Upgrade Settings..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:185
+#: includes/admin/core/packages/2.0-beta1/init.php:191
msgid "Upgrade Menu Items..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:210
+#: includes/admin/core/packages/2.0-beta1/init.php:217
msgid "Upgrade Mailchimp Lists..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:235
+#: includes/admin/core/packages/2.0-beta1/init.php:243
msgid "Upgrade Social Login Forms..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:260
+#: includes/admin/core/packages/2.0-beta1/init.php:269
msgid "Upgrade UM Custom Post Types..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:285
+#: includes/admin/core/packages/2.0-beta1/init.php:295
msgid "Upgrade bbPress Forums..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:286
+#: includes/admin/core/packages/2.0-beta1/init.php:296
msgid "Get bbPress Forums count..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:343
+#: includes/admin/core/packages/2.0-beta1/init.php:355
msgid "Upgrade Woocommerce Products..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:344
+#: includes/admin/core/packages/2.0-beta1/init.php:356
msgid "Get all Products..."
msgstr ""
-#: includes/admin/core/packages/2.0-beta1/init.php:403
+#: includes/admin/core/packages/2.0-beta1/init.php:417
msgid "Upgrade Email Templates..."
msgstr ""
@@ -2852,15 +2830,15 @@ msgstr ""
msgid "Search User Roles"
msgstr ""
-#: includes/admin/core/packages/2.0.10/functions.php:17
+#: includes/admin/core/packages/2.0.10/functions.php:21
msgid "Users cache was cleared successfully"
msgstr ""
-#: includes/admin/core/packages/2.0.10/init.php:31
+#: includes/admin/core/packages/2.0.10/init.php:32
msgid "Clear Users Cache..."
msgstr ""
-#: includes/admin/core/packages/2.0.24/functions.php:9
+#: includes/admin/core/packages/2.0.24/functions.php:11
msgid "Temporary dir was purged successfully"
msgstr ""
@@ -2881,39 +2859,6 @@ msgstr ""
msgid "Latest From Ultimate Member"
msgstr ""
-#: includes/admin/templates/dashboard/language-contrib.php:2
-#, php-format
-msgid ""
-"Ultimate Member is not yet available in your language: %1$s ."
-msgstr ""
-
-#: includes/admin/templates/dashboard/language-contrib.php:6
-msgid ""
-"If you want to contribute this translation to the plugin, please add it on "
-"our community forum ."
-msgstr ""
-
-#: includes/admin/templates/dashboard/language-download.php:2
-#, php-format
-msgid ""
-"Ultimate Member is available in your language: %1$s (%2$s) ."
-msgstr ""
-
-#: includes/admin/templates/dashboard/language-download.php:7
-msgid "Download Translation"
-msgstr ""
-
-#: includes/admin/templates/dashboard/language-update.php:2
-#, php-format
-msgid ""
-"You are currently using Ultimate Member in your language: %1$s "
-"(%2$s) ."
-msgstr ""
-
-#: includes/admin/templates/dashboard/language-update.php:7
-msgid "Force Update Translation"
-msgstr ""
-
#: includes/admin/templates/dashboard/purge.php:4
#, php-format
msgid ""
@@ -2942,12 +2887,12 @@ msgid "Get latest versions"
msgstr ""
#: includes/admin/templates/dashboard/users.php:27
-#: includes/core/class-user.php:824
+#: includes/core/class-user.php:829
msgid "Pending Review"
msgstr ""
#: includes/admin/templates/dashboard/users.php:32
-#: includes/core/class-user.php:820
+#: includes/core/class-user.php:825
msgid "Awaiting E-mail Confirmation"
msgstr ""
@@ -3184,8 +3129,14 @@ msgstr ""
msgid "We are sorry. We cannot find any users who match your search criteria."
msgstr ""
+#: includes/admin/templates/extensions.php:165
+msgid ""
+"All Access Pass – Get access to all Ultimate Member "
+"extensions at a significant discount with our All Access Pass."
+msgstr ""
+
#: includes/admin/templates/extensions.php:169
-msgid "View our Extensions Bundle"
+msgid "View Pricing"
msgstr ""
#: includes/admin/templates/extensions.php:178
@@ -3525,19 +3476,19 @@ msgstr ""
msgid "Update"
msgstr ""
-#: includes/admin/templates/modal/dynamic_edit_field.php:14
-#: includes/admin/templates/modal/dynamic_edit_row.php:14
-#: includes/admin/templates/modal/dynamic_new_divider.php:14
-#: includes/admin/templates/modal/dynamic_new_field.php:14
-#: includes/admin/templates/modal/dynamic_new_group.php:14
+#: includes/admin/templates/modal/dynamic_edit_field.php:15
+#: includes/admin/templates/modal/dynamic_edit_row.php:15
+#: includes/admin/templates/modal/dynamic_new_divider.php:15
+#: includes/admin/templates/modal/dynamic_new_field.php:15
+#: includes/admin/templates/modal/dynamic_new_group.php:15
#: includes/admin/templates/modal/fonticons.php:11
#: includes/admin/templates/role/publish.php:24
#: includes/core/class-fields.php:2301 includes/core/class-fields.php:2398
#: includes/core/um-actions-profile.php:554
#: includes/core/um-actions-profile.php:693
#: includes/core/um-actions-profile.php:726
-#: includes/core/um-actions-profile.php:1073
-#: includes/core/um-actions-profile.php:1080
+#: includes/core/um-actions-profile.php:1071
+#: includes/core/um-actions-profile.php:1078
msgid "Cancel"
msgstr ""
@@ -3900,7 +3851,7 @@ msgid "Members"
msgstr ""
#: includes/class-config.php:133 includes/class-config.php:738
-#: includes/core/um-actions-profile.php:1079
+#: includes/core/um-actions-profile.php:1077
#: includes/core/um-actions-user.php:15
msgid "Logout"
msgstr ""
@@ -4059,7 +4010,7 @@ msgstr ""
msgid "Correct folder name is \"%s\" "
msgstr ""
-#: includes/class-init.php:160 includes/class-init.php:169
+#: includes/class-init.php:152 includes/class-init.php:161
msgid "Cheatin’ huh?"
msgstr ""
@@ -4171,7 +4122,7 @@ msgstr ""
msgid "You must add a shortcode to the content area"
msgstr ""
-#: includes/core/class-builtin.php:663 includes/core/class-user.php:1538
+#: includes/core/class-builtin.php:663 includes/core/class-user.php:1543
msgid "Only me"
msgstr ""
@@ -6362,8 +6313,8 @@ msgstr ""
msgid "Unauthorized to do this attempt."
msgstr ""
-#: includes/core/class-form.php:56 includes/core/class-profile.php:54
-#: includes/core/class-profile.php:70
+#: includes/core/class-form.php:58 includes/core/class-profile.php:56
+#: includes/core/class-profile.php:74
msgid "You can not edit this user"
msgstr ""
@@ -6425,15 +6376,15 @@ msgstr ""
msgid "https://wordpress.org/support/"
msgstr ""
-#: includes/core/class-profile.php:106
+#: includes/core/class-profile.php:110
msgid "About"
msgstr ""
-#: includes/core/class-profile.php:110
+#: includes/core/class-profile.php:114
msgid "Posts"
msgstr ""
-#: includes/core/class-profile.php:114
+#: includes/core/class-profile.php:118
msgid "Comments"
msgstr ""
@@ -6558,19 +6509,19 @@ msgstr ""
msgid "Maximum file size allowed: %s"
msgstr ""
-#: includes/core/class-user.php:610
+#: includes/core/class-user.php:615
msgid "Ultimate Member Role"
msgstr ""
-#: includes/core/class-user.php:613
+#: includes/core/class-user.php:618
msgid "— No role for Ultimate Member —"
msgstr ""
-#: includes/core/class-user.php:828
+#: includes/core/class-user.php:833
msgid "Membership Rejected"
msgstr ""
-#: includes/core/class-user.php:832
+#: includes/core/class-user.php:837
msgid "Membership Inactive"
msgstr ""
@@ -6836,51 +6787,51 @@ msgstr ""
msgid "Last Page"
msgstr ""
-#: includes/core/um-actions-misc.php:115
+#: includes/core/um-actions-misc.php:111
msgid "Your account was updated successfully."
msgstr ""
-#: includes/core/um-actions-misc.php:119
+#: includes/core/um-actions-misc.php:115
msgid "You have successfully changed your password."
msgstr ""
-#: includes/core/um-actions-misc.php:123
+#: includes/core/um-actions-misc.php:119
msgid "Your account is now active! You can login."
msgstr ""
-#: includes/core/um-actions-misc.php:157
+#: includes/core/um-actions-misc.php:153
msgid "An error has been encountered"
msgstr ""
-#: includes/core/um-actions-misc.php:161
+#: includes/core/um-actions-misc.php:157
msgid "Registration is currently disabled"
msgstr ""
-#: includes/core/um-actions-misc.php:165 includes/core/um-filters-login.php:40
+#: includes/core/um-actions-misc.php:161 includes/core/um-filters-login.php:40
msgid "This email address has been blocked."
msgstr ""
-#: includes/core/um-actions-misc.php:169
+#: includes/core/um-actions-misc.php:165
msgid "We do not accept registrations from that domain."
msgstr ""
-#: includes/core/um-actions-misc.php:173 includes/core/um-filters-login.php:43
+#: includes/core/um-actions-misc.php:169 includes/core/um-filters-login.php:43
msgid "Your IP address has been blocked."
msgstr ""
-#: includes/core/um-actions-misc.php:177 includes/core/um-filters-login.php:136
+#: includes/core/um-actions-misc.php:173 includes/core/um-filters-login.php:136
msgid "Your account has been disabled."
msgstr ""
-#: includes/core/um-actions-misc.php:181 includes/core/um-filters-login.php:139
+#: includes/core/um-actions-misc.php:177 includes/core/um-filters-login.php:139
msgid "Your account has not been approved yet."
msgstr ""
-#: includes/core/um-actions-misc.php:185 includes/core/um-filters-login.php:142
+#: includes/core/um-actions-misc.php:181 includes/core/um-filters-login.php:142
msgid "Your account is awaiting e-mail verification."
msgstr ""
-#: includes/core/um-actions-misc.php:189 includes/core/um-filters-login.php:145
+#: includes/core/um-actions-misc.php:185 includes/core/um-filters-login.php:145
msgid "Your membership request has been rejected."
msgstr ""
@@ -6913,17 +6864,17 @@ msgstr ""
msgid "Tell us a bit about yourself..."
msgstr ""
-#: includes/core/um-actions-profile.php:907
+#: includes/core/um-actions-profile.php:905
#, php-format
msgid "This user account status is %s"
msgstr ""
-#: includes/core/um-actions-profile.php:1046
-#: includes/core/um-actions-profile.php:1077
+#: includes/core/um-actions-profile.php:1044
+#: includes/core/um-actions-profile.php:1075
msgid "Edit Profile"
msgstr ""
-#: includes/core/um-actions-profile.php:1078
+#: includes/core/um-actions-profile.php:1076
msgid "My Account"
msgstr ""
@@ -6969,11 +6920,11 @@ msgstr ""
msgid "Login as this user"
msgstr ""
-#: includes/um-short-functions.php:580
+#: includes/um-short-functions.php:578
msgid "date submitted"
msgstr ""
-#: includes/um-short-functions.php:586
+#: includes/um-short-functions.php:584
msgid "(empty)"
msgstr ""
diff --git a/readme.txt b/readme.txt
index 65bf3aa6..4ea68126 100644
--- a/readme.txt
+++ b/readme.txt
@@ -6,7 +6,7 @@ Donate link:
Tags: community, member, membership, user-profile, user-registration
Requires at least: 4.7
Tested up to: 4.9
-Stable tag: 2.0.30
+Stable tag: 2.0.33
License: GNU Version 2 or Any Later Version
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
@@ -39,7 +39,7 @@ Read about all of the plugin's features at [Ultimate Member](https://ultimatemem
= Paid Extensions =
-Ultimate Member has a range of extensions that allow you to extend the power of the plugin
+Ultimate Member has a range of extensions that allow you to extend the power of the plugin. You can purchase all of these extensions at a significant discount with our [All Access Pass](https://ultimatemember.com/pricing/) or you can purchase extensions individually.
* [Private Content](https://ultimatemember.com/extensions/private-content/) - Display private content to logged in users that only they can access
* [Instagram](https://ultimatemember.com/extensions/instagram/) - Allow users to show their Instagram photos on their profile
@@ -137,6 +137,28 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
= Important: UM2.0+ is a significant update to the code base from 1.3.88. Please make sure you take a full-site backup with restore point before updating the plugin =
+= 2.0.33: November 21, 2018 =
+
+* Bugfixes:
+ - Fixed AJAX vulnerabilities
+ - Fixed delete user email notification
+ - Fixed profile tabs displaying
+
+= 2.0.32: November 20, 2018 =
+
+* Bugfixes:
+ - Added compatibility with PHP7.2 (removed deprecated functions and ini variables)
+ - Fixed duplicated "redirect_to" field
+ - Fixed errors on the installs < PHP5.6
+ - Fixed download files/images on the installs with the different home URL and site URL
+ - Fixed unique emails in admin email notifications
+ - Remove language notice, all translates are available on wp.org
+
+= 2.0.31: November 14, 2018 =
+
+* Bugfixes:
+ - Fixed compatibility with JS/CSS cache plugins
+
= 2.0.30: November 12, 2018 =
* Bugfixes:
diff --git a/ultimate-member.php b/ultimate-member.php
index 6fb8cc17..d0a901f5 100644
--- a/ultimate-member.php
+++ b/ultimate-member.php
@@ -3,7 +3,7 @@
Plugin Name: Ultimate Member
Plugin URI: http://ultimatemember.com/
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
-Version: 2.0.30
+Version: 2.0.33
Author: Ultimate Member
Author URI: http://ultimatemember.com/
Text Domain: ultimate-member