diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php
index 6ec3e115..825b518f 100644
--- a/includes/admin/core/class-admin-settings.php
+++ b/includes/admin/core/class-admin-settings.php
@@ -88,7 +88,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
array(
'id' => 'pages_settings',
'type' => 'hidden',
- 'default' => true,
+ 'value' => true,
'is_option' => false
)
);
@@ -1688,6 +1688,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
$slug = str_replace( 'core_', '', $option_slug );
update_post_meta( $post_id, '_um_core', $slug );
}
+
+ // reset rewrite rules after re-save pages
+ UM()->rewrite()->reset_rules();
+
} elseif ( ! empty( $_POST['um_options']['permalink_base'] ) ) {
if ( ! empty( $this->need_change_permalinks ) ) {
$users = get_users( array(
@@ -2312,7 +2316,6 @@ Upgraded From: options()->get( 'current_url_method' ). "\n"; ?>
Cache User Profile: options()->get( 'um_profile_object_cache_stop' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
Generate Slugs on Directories: options()->get( 'um_generate_slug_in_directory' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
-Rewrite Rules: options()->get( 'um_flush_stop' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
Force UTF-8 Encoding: options()->get( 'um_force_utf8_strings' ) == 1 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
JS/CSS Compression:
diff --git a/includes/core/class-rewrite.php b/includes/core/class-rewrite.php
index 318a6432..475fb2ca 100644
--- a/includes/core/class-rewrite.php
+++ b/includes/core/class-rewrite.php
@@ -18,14 +18,37 @@ if ( ! class_exists( 'um\core\Rewrite' ) ) {
* Rewrite constructor.
*/
function __construct() {
+ if ( ! defined( 'DOING_AJAX' ) ) {
+ add_filter( 'wp_loaded', array( $this, 'maybe_flush_rewrite_rules' ) );
+ }
+
//add rewrite rules
- add_filter( 'query_vars', array(&$this, 'query_vars'), 10, 1 );
+ add_filter( 'query_vars', array( &$this, 'query_vars' ), 10, 1 );
add_filter( 'rewrite_rules_array', array( &$this, '_add_rewrite_rules' ), 10, 1 );
- add_action( 'init', array( &$this, 'rewrite_rules'), 100000000 );
+
+ add_action( 'template_redirect', array( &$this, 'redirect_author_page' ), 9999 );
+ add_action( 'template_redirect', array( &$this, 'locate_user_profile' ), 9999 );
+ }
- add_action( 'template_redirect', array( &$this, 'redirect_author_page'), 9999 );
- add_action( 'template_redirect', array( &$this, 'locate_user_profile'), 9999 );
+ /**
+ * Update "flush" option for reset rules on wp_loaded hook
+ */
+ function reset_rules() {
+ update_option( 'um_flush_rewrite_rules', 1 );
+ }
+
+
+ /**
+ * Reset Rewrite rules if need it.
+ *
+ * @return void
+ */
+ function maybe_flush_rewrite_rules() {
+ if ( get_option( 'um_flush_rewrite_rules' ) ) {
+ flush_rewrite_rules( false );
+ delete_option( 'um_flush_rewrite_rules' );
+ }
}
@@ -144,43 +167,6 @@ if ( ! class_exists( 'um\core\Rewrite' ) ) {
}
- /**
- * Setup rewrite rules
- */
- function rewrite_rules() {
-
- if ( isset( UM()->config()->permalinks['user'] ) && isset( UM()->config()->permalinks['account'] ) ) {
-
- /**
- * UM hook
- *
- * @type filter
- * @title um_rewrite_flush_rewrite_rules
- * @description Enable flushing rewrite rules
- * @input_vars
- * [{"var":"$stop_flush","type":"bool","desc":"Stop flushing rewrite rules"}]
- * @change_log
- * ["Since: 2.0"]
- * @usage
- *
- * @example
- *
- */
- if ( ! apply_filters( 'um_rewrite_flush_rewrite_rules', UM()->options()->get( 'um_flush_stop' ) ) ) {
- flush_rewrite_rules( true );
- }
-
- }
-
- }
-
-
/**
* Author page to user profile redirect
*/
diff --git a/includes/core/class-setup.php b/includes/core/class-setup.php
index 1758ea38..de825faa 100644
--- a/includes/core/class-setup.php
+++ b/includes/core/class-setup.php
@@ -1,14 +1,16 @@
install_basics();
$this->install_default_forms();
- //$this->install_default_pages();
$this->set_default_settings();
$this->set_default_role_meta();
}
@@ -210,6 +210,9 @@ if ( ! class_exists( 'um\core\Setup' ) ) {
}
update_option( 'um_options', $options );
+
+ // reset rewrite rules after first install of core pages
+ UM()->rewrite()->reset_rules();
}
@@ -217,13 +220,13 @@ if ( ! class_exists( 'um\core\Setup' ) ) {
* Set default UM settings
*/
function set_default_settings() {
- $options = get_option( 'um_options' );
- $options = empty( $options ) ? array() : $options;
+ $options = get_option( 'um_options', array() );
foreach ( UM()->config()->settings_defaults as $key => $value ) {
//set new options to default
- if ( ! isset( $options[ $key ] ) )
+ if ( ! isset( $options[ $key ] ) ) {
$options[ $key ] = $value;
+ }
}
update_option( 'um_options', $options );
diff --git a/languages/ultimate-member-en_US.po b/languages/ultimate-member-en_US.po
index b821dd9b..a0cd4299 100644
--- a/languages/ultimate-member-en_US.po
+++ b/languages/ultimate-member-en_US.po
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Ultimate Member\n"
-"POT-Creation-Date: 2019-10-23 17:19+0300\n"
-"PO-Revision-Date: 2019-10-23 17:19+0300\n"
+"POT-Creation-Date: 2019-10-24 00:57+0300\n"
+"PO-Revision-Date: 2019-10-24 00:58+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en_US\n"
@@ -181,7 +181,7 @@ msgstr ""
msgid "This field type is not setup correcty."
msgstr ""
-#: includes/admin/core/class-admin-builder.php:1148
+#: includes/admin/core/class-admin-builder.php:1150
#: includes/core/class-form.php:159 includes/core/class-form.php:333
#: includes/core/class-password.php:533
msgid "This is not possible for security reasons."
@@ -2973,130 +2973,130 @@ msgstr ""
msgid "Save Changes"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1856
+#: includes/admin/core/class-admin-settings.php:1860
msgid "Subject Line"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1858
+#: includes/admin/core/class-admin-settings.php:1862
msgid "This is the subject line of the e-mail"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1863
+#: includes/admin/core/class-admin-settings.php:1867
msgid "Message Body"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1865
+#: includes/admin/core/class-admin-settings.php:1869
msgid "This is the content of the e-mail"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1915
-#: includes/admin/core/class-admin-settings.php:2025
+#: includes/admin/core/class-admin-settings.php:1919
+#: includes/admin/core/class-admin-settings.php:2029
#, php-format
msgid ""
"Your license key expired on %s. Please renew your license key."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1928
-#: includes/admin/core/class-admin-settings.php:2038
+#: includes/admin/core/class-admin-settings.php:1932
+#: includes/admin/core/class-admin-settings.php:2042
#, php-format
msgid ""
"Your license key has been disabled. Please contact support for more information."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1940
-#: includes/admin/core/class-admin-settings.php:2050
+#: includes/admin/core/class-admin-settings.php:1944
+#: includes/admin/core/class-admin-settings.php:2054
#, php-format
msgid ""
"Invalid license. Please visit your account "
"page and verify it."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1953
-#: includes/admin/core/class-admin-settings.php:2063
+#: includes/admin/core/class-admin-settings.php:1957
+#: includes/admin/core/class-admin-settings.php:2067
#, 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:1965
-#: includes/admin/core/class-admin-settings.php:2075
+#: includes/admin/core/class-admin-settings.php:1969
+#: includes/admin/core/class-admin-settings.php:2079
#, php-format
msgid "This appears to be an invalid license key for %s."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1974
-#: includes/admin/core/class-admin-settings.php:2084
+#: includes/admin/core/class-admin-settings.php:1978
+#: includes/admin/core/class-admin-settings.php:2088
#, php-format
msgid ""
"Your license key has reached its activation limit. View "
"possible upgrades now."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1983
-#: includes/admin/core/class-admin-settings.php:2093
+#: includes/admin/core/class-admin-settings.php:1987
+#: includes/admin/core/class-admin-settings.php:2097
msgid ""
"The key you entered belongs to a bundle, please use the product specific "
"license key."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1991
-#: includes/admin/core/class-admin-settings.php:1999
-#: includes/admin/core/class-admin-settings.php:2011
+#: includes/admin/core/class-admin-settings.php:1995
+#: includes/admin/core/class-admin-settings.php:2003
+#: includes/admin/core/class-admin-settings.php:2015
msgid "unknown_error"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:1992
-#: includes/admin/core/class-admin-settings.php:2000
+#: includes/admin/core/class-admin-settings.php:1996
+#: includes/admin/core/class-admin-settings.php:2004
#, 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:2013
+#: includes/admin/core/class-admin-settings.php:2017
#, php-format
msgid ""
"There was an error with this license key: %s%s. Please contact our support team."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2108
+#: includes/admin/core/class-admin-settings.php:2112
msgid "License key never expires."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2115
+#: includes/admin/core/class-admin-settings.php:2119
#, php-format
msgid ""
"Your license key expires soon! It expires on %s. Renew your license key."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2125
+#: includes/admin/core/class-admin-settings.php:2129
#, php-format
msgid "Your license key expires on %s."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2143
+#: includes/admin/core/class-admin-settings.php:2147
#, php-format
msgid "To receive updates, please enter your valid %s license key."
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2165
+#: includes/admin/core/class-admin-settings.php:2169
msgid "Clear License"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2167
+#: includes/admin/core/class-admin-settings.php:2171
msgid "Activate"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2169
+#: includes/admin/core/class-admin-settings.php:2173
msgid "Re-Activate"
msgstr ""
-#: includes/admin/core/class-admin-settings.php:2221
+#: includes/admin/core/class-admin-settings.php:2225
msgid ""
"To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C "
"(Mac)."
diff --git a/uninstall.php b/uninstall.php
index 964758cb..0a48b647 100644
--- a/uninstall.php
+++ b/uninstall.php
@@ -77,6 +77,7 @@ if ( ! empty( $delete_options ) ) {
}
delete_option( '__ultimatemember_sitekey' );
+ delete_option( 'um_flush_rewrite_rules' );
//remove all users cache
UM()->user()->remove_cache_all_users();