Browse code

設定画面:更新時のメッセージ表示

nita authored on 2015/10/11 00:58:51
Showing 2 changed files
... ...
@@ -27,14 +27,17 @@ class Class_Rucy_Setting {
27 27
                 $is_different = true;
28 28
             }
29 29
             $is_update = $component->update_support_post_type( $post_support_posts );
30
-            if ( $is_different && $is_update ) {
31
-                // 更新完了
32
-            } else if ( $is_different && !$is_update ) {
30
+            if ( ( $is_different === false && $is_update === false ) || ( $is_different && $is_update ) ) {
31
+                // 更新完了 or 同じ値で更新した
32
+                set_transient( RC_SETTING_UPDATE, array( __( 'Success to setting update.', RC_TXT_DOMAIN ) ), 10 );
33
+            } else if ( $is_different && $is_update === false ) {
33 34
                 // 更新失敗
34
-            } else if ( !$is_different && !$is_update ) {
35
-                // 同じ値で更新した
35
+                $e = new WP_Error();
36
+                $e->add( 'error', __( 'Failed to setting update.', RC_TXT_DOMAIN ) );
37
+                set_transient( RC_SETTING_ERROR, $e->get_error_messages(), 10 );
36 38
             }
37 39
             $support_post_type = $component->get_support_post_type();
40
+            wp_safe_redirect( menu_page_url( 'rucy', false ) );
38 41
         }
39 42
 ?>
40 43
 <div class="wrap">
... ...
@@ -44,7 +47,7 @@ class Class_Rucy_Setting {
44 44
         <?php wp_nonce_field('update-options'); ?>
45 45
         <table class="form-table">
46 46
             <tr class="">
47
-                <th><?php _e( 'post type', RC_TXT_DOMAIN ); ?><br><small>*<?php _e( 'Require', RC_TXT_DOMAIN ); ?></small></th>
47
+                <th><?php _e( 'post type', RC_TXT_DOMAIN ); ?></th>
48 48
                 <td>
49 49
                     <ul>
50 50
                         <?php foreach ( $post_types as $key => $post_type ) { 
... ...
@@ -65,4 +68,22 @@ class Class_Rucy_Setting {
65 65
 </div>
66 66
 <?php 
67 67
     }
68
+    
69
+    public function set_admin_notices() {
70
+        $message_class = "";
71
+        if ( $messages = get_transient( RC_SETTING_UPDATE ) ) {
72
+            $message_class = 'updated';
73
+        } else if ( $messages = get_transient( RC_SETTING_ERROR ) ) {
74
+            $message_class = 'error';
75
+        }
76
+?>
77
+<div class="<?php echo $message_class; ?>">
78
+    <ul>
79
+    <?php foreach ( $messages as $message ): ?>
80
+        <li><?php echo esc_html( $message );  ?></li>
81
+    <?php endforeach; ?>
82
+    </ul>
83
+</div>
84
+<?php 
85
+    }
68 86
 }
... ...
@@ -14,6 +14,8 @@ define( 'RC_PLUGIN_DIR',  untrailingslashit( dirname( __FILE__ ) ) );
14 14
 define( 'RC_SETTING_OPTION_KEY', 'rucy_post_type' );
15 15
 define( 'RC_TXT_DOMAIN', 'rucy' );
16 16
 define( 'RC_CRON_HOOK', 'rucy_update_reserved_content' );
17
+define( 'RC_SETTING_UPDATE', 'rucy_setting_update' );
18
+define( 'RC_SETTING_ERROR', 'rucy_setting_error' );
17 19
 load_plugin_textdomain( RC_TXT_DOMAIN, false, 'rucy/lang' );
18 20
 
19 21
 require_once RC_PLUGIN_DIR . '/inc/class-rucy-component.php';
... ...
@@ -28,6 +30,7 @@ class Rucy_Class {
28 28
         add_action( 'wp_admin', array( $this, 'enqueue_pointer_menu' ) );
29 29
         $setting = new Class_Rucy_Setting();
30 30
         add_action( 'admin_menu', array( $setting, 'set_admin_menu' ) );
31
+        add_action( 'admin_notices', array( $setting, 'set_admin_notices' ) );
31 32
     }
32 33
     
33 34
     public function activate_plugin() {