<?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 $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 ) ) ) { // different data before post $is_different = true; } $is_update = $component->update_support_post_type( $post_support_posts ); 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 ) { set_transient( RC_SETTING_UPDATE, array( __( 'Success to setting update.', RC_TXT_DOMAIN ) ), 10 ); } else if ( $is_different && $is_update === false ) { // 更新失敗 $e = new WP_Error(); $e->add( 'error', __( 'Failed to setting update.', RC_TXT_DOMAIN ) ); set_transient( RC_SETTING_ERROR, $e->get_error_messages(), 10 ); } $support_post_type = $component->get_support_post_type(); wp_safe_redirect( menu_page_url( 'rucy', false ) ); } ?> <div class="wrap"> <h2><?php _e( 'Rucy Settings', RC_TXT_DOMAIN ); ?></h2> <p><?php _e( 'Configure content types reservation update.', RC_TXT_DOMAIN ); ?></p> <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> <form method="post" action="#"> <?php wp_nonce_field('update-options'); ?> <table class="form-table"> <tr class=""> <th><?php _e( 'post type', RC_TXT_DOMAIN ); ?></th> <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 } 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 } }