From 4feea4e9a6494cff5f8fe5a84cc71fbfd58f2c0c Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Mon, 11 Jun 2018 00:01:23 +0300 Subject: [PATCH] - future list notice; - admin notices dimissible feature; --- includes/admin/assets/js/um-admin-scripts.js | 18 ++++++++ includes/admin/core/class-admin-enqueue.php | 2 +- includes/admin/core/class-admin-notices.php | 47 +++++++++++++++++++- 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/includes/admin/assets/js/um-admin-scripts.js b/includes/admin/assets/js/um-admin-scripts.js index 000abca8..fc20bbe2 100644 --- a/includes/admin/assets/js/um-admin-scripts.js +++ b/includes/admin/assets/js/um-admin-scripts.js @@ -216,4 +216,22 @@ jQuery(document).ready(function() { } }); + + jQuery(document).on( 'click', '.um-admin-notice.is-dismissible .notice-dismiss', function(e) { + var notice_key = jQuery(this).parents('.um-admin-notice').data('key'); + + wp.ajax.send( 'um_dimiss_notice', { + data: { + key: notice_key, + nonce: um_admin_scripts.nonce + }, + success: function( data ) { + return true; + }, + error: function( data ) { + return false; + } + }); + }); + }); \ No newline at end of file diff --git a/includes/admin/core/class-admin-enqueue.php b/includes/admin/core/class-admin-enqueue.php index b4ff56c6..279b0dfd 100644 --- a/includes/admin/core/class-admin-enqueue.php +++ b/includes/admin/core/class-admin-enqueue.php @@ -302,7 +302,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { * Load jQuery custom code */ function load_custom_scripts() { - wp_register_script( 'um_admin_scripts', $this->js_url . 'um-admin-scripts.js', '', '', true ); + wp_register_script( 'um_admin_scripts', $this->js_url . 'um-admin-scripts.js', array('jquery','wp-util'), '', true ); wp_enqueue_script( 'um_admin_scripts' ); } diff --git a/includes/admin/core/class-admin-notices.php b/includes/admin/core/class-admin-notices.php index 70b82f31..c2fe7b8e 100644 --- a/includes/admin/core/class-admin-notices.php +++ b/includes/admin/core/class-admin-notices.php @@ -29,6 +29,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { add_action( 'admin_init', array( &$this, 'create_list' ), 10 ); add_action( 'admin_notices', array( &$this, 'render_notices' ), 1 ); + + //add_action( 'wp_ajax_um_dimiss_notice', array( &$this, 'dimiss_notice' ) ); } @@ -42,6 +44,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { $this->need_upgrade(); $this->check_wrong_licenses(); + + //$this->future_changed(); + /** * UM hook * @@ -135,7 +140,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { $admin_notices = $this->get_admin_notices(); - $hidden = get_user_meta( get_current_user_id(), 'um_hidden_admin_notices' ); + $hidden = get_user_meta( get_current_user_id(), 'um_hidden_admin_notices', true ); $hidden = empty( $hidden ) ? array() : $hidden; uasort( $admin_notices, array( &$this, 'notice_priority_sort' ) ); @@ -186,9 +191,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { $class = ! empty( $notice_data['class'] ) ? $notice_data['class'] : 'updated'; + $dimissible = ! empty( $admin_notices[ $key ]['dimissible'] ); + ob_start(); ?> -
+
@@ -595,5 +602,41 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { } } + + /** + * Check Future Changes notice + */ + function future_changed() { + + ob_start(); ?> + +

+ %s future plans! Detailed future list is here', 'ultimate-member' ), ultimatemember_plugin_name, '#' ); ?> +

+ + add_notice( 'future_changes', array( + 'class' => 'updated', + 'message' => $message, + //'dimissible' => true, + ), 2 ); + } + + + function dimiss_notice() { + if ( empty( $_POST['key'] ) ) { + wp_send_json_error( __( 'Wrong Data', 'ultimate-member' ) ); + } + + $hidden_notices = get_user_meta( get_current_user_id(), 'um_hidden_admin_notices', true ); + $hidden_notices = empty( $hidden_notices ) ? array() : $hidden_notices; + $hidden_notices[] = $_POST['key']; + + update_user_meta( get_current_user_id(), 'um_hidden_admin_notices', $hidden_notices ); + + wp_send_json_success(); + } + } } \ No newline at end of file