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 |
} |