- Added: um_member_directory_cover_image_size hook with ability to change the cover photo size on the member directory

- Added: `um_member_directory_get_members_allow` JS hook for 3rd-party integration with the member directory. You could use a time throttle until some data is loaded
- Fixed: Upgrade process on websites where a hosting locks the frequent AJAX requests (added default JS throttle between requests)
This commit is contained in:
nikitasinelnikov
2020-11-18 16:56:01 +02:00
parent 5a731e91f3
commit dfc6f876ac
11 changed files with 121 additions and 50 deletions
+25 -21
View File
@@ -186,7 +186,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
if ( $handle ) {
while ( false !== ( $filename = readdir( $handle ) ) ) {
if ( $filename != '.' && $filename != '..' ) {
if ( is_dir( $this->packages_dir . DIRECTORY_SEPARATOR . $filename ) ) {
if ( is_dir( $this->packages_dir . $filename ) ) {
$update_versions[] = $filename;
}
}
@@ -205,7 +205,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
*/
function init_packages_ajax() {
foreach ( $this->necessary_packages as $package ) {
$hooks_file = $this->packages_dir . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR . 'hooks.php';
$hooks_file = $this->packages_dir . $package . DIRECTORY_SEPARATOR . 'hooks.php';
if ( file_exists( $hooks_file ) ) {
$pack_ajax_hooks = include_once $hooks_file;
@@ -222,7 +222,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
*/
function init_packages_ajax_handlers() {
foreach ( $this->necessary_packages as $package ) {
$handlers_file = $this->packages_dir . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR . 'functions.php';
$handlers_file = $this->packages_dir . $package . DIRECTORY_SEPARATOR . 'functions.php';
if ( file_exists( $handlers_file ) ) {
include_once $handlers_file;
}
@@ -257,6 +257,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
</div>
<script type="text/javascript">
var um_request_throttle = 15000;
var um_packages;
jQuery( document ).ready( function() {
@@ -293,23 +294,26 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
*/
function um_run_upgrade() {
if ( um_packages.length ) {
var pack = um_packages.shift();
um_add_upgrade_log( '<br />=================================================================' );
um_add_upgrade_log( '<h4 style="font-weight: bold;">Prepare package "' + pack + '" version...</h4>' );
jQuery.ajax({
url: '<?php echo esc_js( admin_url( 'admin-ajax.php' ) ) ?>',
type: 'POST',
dataType: 'html',
data: {
action: 'um_run_package',
pack: pack,
nonce: um_admin_scripts.nonce
},
success: function( html ) {
um_add_upgrade_log( 'Package "' + pack + '" is ready. Start the execution...' );
jQuery( '#run_upgrade' ).after( html );
}
});
// 30s between upgrades
setTimeout( function () {
var pack = um_packages.shift();
um_add_upgrade_log( '<br />=================================================================' );
um_add_upgrade_log( '<h4 style="font-weight: bold;">Prepare package "' + pack + '" version...</h4>' );
jQuery.ajax({
url: '<?php echo esc_js( admin_url( 'admin-ajax.php' ) ) ?>',
type: 'POST',
dataType: 'html',
data: {
action: 'um_run_package',
pack: pack,
nonce: um_admin_scripts.nonce
},
success: function( html ) {
um_add_upgrade_log( 'Package "' + pack + '" is ready. Start the execution...' );
jQuery( '#run_upgrade' ).after( html );
}
});
}, um_request_throttle );
} else {
window.location = '<?php echo add_query_arg( array( 'page' => 'ultimatemember', 'msg' => 'updated' ), admin_url( 'admin.php' ) ) ?>'
}
@@ -353,7 +357,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
exit('');
} else {
ob_start();
include_once $this->packages_dir . DIRECTORY_SEPARATOR . sanitize_text_field( $_POST['pack'] ) . DIRECTORY_SEPARATOR . 'init.php';
include_once $this->packages_dir . sanitize_text_field( $_POST['pack'] ) . DIRECTORY_SEPARATOR . 'init.php';
ob_get_flush();
exit;
}
+56 -19
View File
@@ -23,7 +23,10 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
upgrade_roles();
setTimeout( function () {
upgrade_roles();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -50,7 +53,10 @@
um_roles_data = response.data.roles;
um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade Users...', 'ultimate-member' ) ) ?>' );
get_users_per_role();
setTimeout( function () {
get_users_per_role();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -86,7 +92,9 @@
um_add_upgrade_log( '<?php echo esc_js( __( 'Start users upgrading...', 'ultimate-member' ) ) ?>');
users_pages = Math.ceil( response.data.count / users_per_page );
update_user_per_page( role.role_key, role.key_in_meta );
setTimeout( function () {
update_user_per_page( role.role_key, role.key_in_meta );
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -96,7 +104,9 @@
}
});
} else {
upgrade_content_restriction();
setTimeout( function () {
upgrade_content_restriction();
}, um_request_throttle );
}
return false;
@@ -120,7 +130,9 @@
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
current_page++;
update_user_per_page( role_key, key_in_meta );
setTimeout( function () {
update_user_per_page( role_key, key_in_meta );
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -130,7 +142,9 @@
}
});
} else {
get_users_per_role();
setTimeout( function () {
get_users_per_role();
}, um_request_throttle );
}
}
@@ -149,7 +163,9 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
upgrade_settings();
setTimeout( function () {
upgrade_settings();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -175,7 +191,9 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
upgrade_menus();
setTimeout( function () {
upgrade_menus();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -201,7 +219,9 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
upgrade_mc_lists();
setTimeout( function () {
upgrade_mc_lists();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -227,7 +247,9 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
upgrade_social_login();
setTimeout( function () {
upgrade_social_login();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -253,7 +275,9 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
upgrade_cpt();
setTimeout( function () {
upgrade_cpt();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -279,7 +303,9 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
get_forums();
setTimeout( function () {
get_forums();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -309,7 +335,9 @@
forums_pages = Math.ceil( response.data.count / users_per_page );
update_forums_per_page();
setTimeout( function () {
update_forums_per_page();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -336,7 +364,9 @@
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
current_page++;
update_forums_per_page();
setTimeout( function () {
update_forums_per_page();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -346,7 +376,9 @@
}
});
} else {
get_products();
setTimeout( function () {
get_products();
}, um_request_throttle );
}
}
@@ -370,8 +402,9 @@
um_add_upgrade_log( response.data.message );
products_pages = Math.ceil( response.data.count / users_per_page );
update_products_per_page();
setTimeout( function () {
update_products_per_page();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -398,7 +431,9 @@
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
current_page++;
update_products_per_page();
setTimeout( function () {
update_products_per_page();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -408,7 +443,9 @@
}
});
} else {
upgrade_email_templates();
setTimeout( function () {
upgrade_email_templates();
}, um_request_throttle );
}
}
+3 -1
View File
@@ -16,7 +16,9 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
um_clear_cache2010();
setTimeout( function () {
um_clear_cache2010();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -17,7 +17,9 @@
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
um_memberdir210beta1();
setTimeout( function () {
um_memberdir210beta1();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -24,7 +24,9 @@
users_pages = Math.ceil( response.data.count / users_per_page );
um_update_metadata_per_user213beta3();
setTimeout( function () {
um_update_metadata_per_user213beta3();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -49,7 +51,9 @@
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
current_page++;
um_update_metadata_per_user213beta3();
setTimeout( function () {
um_update_metadata_per_user213beta3();
}, um_request_throttle );
} else {
um_wrong_ajax();
}
@@ -59,7 +63,9 @@
}
});
} else {
um_metatable213beta3();
setTimeout( function () {
um_metatable213beta3();
}, um_request_throttle );
}
}