inc/class-rucy-setting.php
814b0ae1
 <?php
 /**
  * 
  *
  * @author Nita
  */
 require_once RC_PLUGIN_DIR . '/inc/class-rucy-component.php';
 
 class Class_Rucy_Setting {
     //
     public function set_admin_menu() {
         add_options_page( 'Rucy', 'Rucy', 'manage_options', 'rucy', array( $this, 'add_setting_menu') );
     }
     
     public function add_setting_menu() {
         $component = new Class_Rucy_Component();
         $post_types = $component->get_post_types();
         $support_post_type = $component->get_support_post_type();
         $is_different = false;
         if( ( isset( $_POST['page_options'] ) && $_POST['page_options'] === RC_SETTING_OPTION_KEY )  
            && ( isset( $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'update-options' ) )
           ) {
             // update post
2bc8e5be
             $post_support_posts = ( isset($_POST['rc_support_post_types']) ) ? $_POST['rc_support_post_types'] : array();
             if( count( array_diff( $support_post_type, $post_support_posts ) ) ) {
814b0ae1
                 // different data before post
                 $is_different = true;
             }
2bc8e5be
             $is_update = $component->update_support_post_type( $post_support_posts );
3b1b3bf0
             if ( $is_different && $is_update ) {
                 set_transient( RC_SETTING_UPDATE, array( __( 'Success to setting update.', RC_TXT_DOMAIN ) ), 10 );
             } else if ( $is_different === false && $is_update === false ) {
5ef6f4e2
                 set_transient( RC_SETTING_UPDATE, array( __( 'Success to setting update.', RC_TXT_DOMAIN ) ), 10 );
             } else if ( $is_different && $is_update === false ) {
814b0ae1
                 // 更新失敗
5ef6f4e2
                 $e = new WP_Error();
                 $e->add( 'error', __( 'Failed to setting update.', RC_TXT_DOMAIN ) );
                 set_transient( RC_SETTING_ERROR, $e->get_error_messages(), 10 );
814b0ae1
             }
             $support_post_type = $component->get_support_post_type();
5ef6f4e2
             wp_safe_redirect( menu_page_url( 'rucy', false ) );
814b0ae1
         }
 ?>
 <div class="wrap">
     <h2><?php _e( 'Rucy Settings', RC_TXT_DOMAIN ); ?></h2>
     <p><?php _e( 'Configure content types reservation update.', RC_TXT_DOMAIN ); ?></p>
ca5e52d0
     <div class="rc-donation">
         <p><?php _e( 'Your contribution will continue to better this plugin.', RC_TXT_DOMAIN ); ?> <a href="http://www.amazon.co.jp/registry/wishlist/27FDI6LJU0X1O" class="button"><?php _e( 'Donate', RC_TXT_DOMAIN ); ?></a></p>
     </div>
814b0ae1
     <form method="post" action="#">
         <?php wp_nonce_field('update-options'); ?>
         <table class="form-table">
             <tr class="">
5ef6f4e2
                 <th><?php _e( 'post type', RC_TXT_DOMAIN ); ?></th>
814b0ae1
                 <td>
                     <ul>
                         <?php foreach ( $post_types as $key => $post_type ) { 
                             $checked = ( in_array( $key, $support_post_type ) ) ? 'checked' : '';
                             ?>
                         <li><label for="rc_<?php echo $key; ?>"><input type="checkbox" id="rc_<?php echo $key; ?>" name="rc_support_post_types[]" value="<?php echo $key; ?>" <?php echo $checked; ?> /><?php echo $post_type->labels->name; ?></label></li>
                         <?php }  ?>
                     </ul>
                 </td>
             </tr>
         </table>
         <input type="hidden" name="action" value="update" />
         <input type="hidden" name="page_options" value="<?php echo RC_SETTING_OPTION_KEY ?>"/>
         <p class="submit">
             <input type="submit" class="button-primary" value="<?php _e( 'Save Changes' ) ?>" />
         </p>
     </form>
 </div>
 <?php 
     }
5ef6f4e2
     
     public function set_admin_notices() {
         $message_class = "";
         if ( $messages = get_transient( RC_SETTING_UPDATE ) ) {
             $message_class = 'updated';
         } else if ( $messages = get_transient( RC_SETTING_ERROR ) ) {
             $message_class = 'error';
         }
 ?>
 <div class="<?php echo $message_class; ?>">
     <ul>
     <?php foreach ( $messages as $message ): ?>
         <li><?php echo esc_html( $message );  ?></li>
     <?php endforeach; ?>
     </ul>
 </div>
 <?php 
     }
814b0ae1
 }