diff --git a/includes/admin/class-admin.php b/includes/admin/class-admin.php index 9eed2865..56267f35 100644 --- a/includes/admin/class-admin.php +++ b/includes/admin/class-admin.php @@ -35,6 +35,7 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { add_action( 'um_admin_do_action__user_cache', array( &$this, 'user_cache' ) ); add_action( 'um_admin_do_action__purge_temp', array( &$this, 'purge_temp' ) ); + add_action( 'um_admin_do_action__manual_upgrades_request', array( &$this, 'manual_upgrades_request' ) ); add_action( 'um_admin_do_action__duplicate_form', array( &$this, 'duplicate_form' ) ); add_action( 'um_admin_do_action__um_language_downloader', array( &$this, 'um_language_downloader' ) ); add_action( 'um_admin_do_action__um_hide_locale_notice', array( &$this, 'um_hide_notice' ) ); @@ -48,6 +49,25 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { } + function manual_upgrades_request() { + if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) { + die(); + } + + $last_request = get_option( 'um_last_manual_upgrades_request', false ); + + if ( empty( $last_request ) || time() > $last_request + DAY_IN_SECONDS ) { + UM()->plugin_updater()->um_checklicenses(); + + update_option( 'um_last_manual_upgrades_request', time() ); + + $url = add_query_arg( array( 'page' => 'ultimatemember', 'update' => 'got_updates' ), admin_url( 'admin.php' ) ); + } else { + $url = add_query_arg( array( 'page' => 'ultimatemember', 'update' => 'often_updates' ), admin_url( 'admin.php' ) ); + } + exit( wp_redirect( $url ) ); + } + /** * Clear all users cache diff --git a/includes/admin/core/class-admin-menu.php b/includes/admin/core/class-admin-menu.php index f42ad023..cbb68cfd 100644 --- a/includes/admin/core/class-admin-menu.php +++ b/includes/admin/core/class-admin-menu.php @@ -206,6 +206,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) { add_meta_box( 'um-metaboxes-mainbox-1', __( 'Latest from our blog', 'ultimate-member' ), array( &$this, 'um_news' ), $this->pagehook, 'normal', 'core' ); add_meta_box( 'um-metaboxes-sidebox-1', __( 'Purge Temp Files', 'ultimate-member' ), array( &$this, 'purge_temp' ), $this->pagehook, 'side', 'core' ); + 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() ) { @@ -215,6 +216,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) { } 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 ) ) { + add_meta_box( 'um-metaboxes-sidebox-3', __( 'Upgrade\'s Manual Request', 'ultimate-member' ), array( &$this, 'upgrade_request' ), $this->pagehook, 'side', 'core' ); + } } @@ -269,6 +276,14 @@ if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) { } + /** + * + */ + function upgrade_request() { + include_once UM()->admin()->templates_path . 'dashboard/upgrade-request.php'; + } + + /** * */ diff --git a/includes/admin/core/class-admin-notices.php b/includes/admin/core/class-admin-notices.php index a26b409d..70b82f31 100644 --- a/includes/admin/core/class-admin-notices.php +++ b/includes/admin/core/class-admin-notices.php @@ -420,6 +420,14 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { $messages[0]['content'] = __( 'Your user cache is now removed.', 'ultimate-member' ); break; + case 'got_updates': + $messages[0]['content'] = __( 'You got the latest upgrades.', 'ultimate-member' ); + break; + + case 'often_updates': + $messages[0]['err_content'] = __( 'Try again later. You can run this action once daily.', 'ultimate-member' ); + break; + case 'form_duplicated': $messages[0]['content'] = __( 'The form has been duplicated successfully.', 'ultimate-member' ); break; diff --git a/includes/admin/templates/dashboard/upgrade-request.php b/includes/admin/templates/dashboard/upgrade-request.php new file mode 100644 index 00000000..f7c5bfcc --- /dev/null +++ b/includes/admin/templates/dashboard/upgrade-request.php @@ -0,0 +1,6 @@ +

+

+ + + +

\ No newline at end of file