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();