我在设置页面中添加了一个复选框,如下所示:
function abc_render_admin(){
global $abc_options;
ob_start(); ?>
<form id="abc-form" action="" method="POST">
<div>
<?php $options = get_option('abc_options'); ?>
<p>
<input id="abc_settings[update_date]" name= "abc_settings[update_date]" type="checkbox" value="1" <?php checked('1', $abc_options['update_date']); ?>/>
<label class="description" for="abc_settings[update_date]">
<?php _e('Option 1', 'abc'); ?>
</label>
</p>
<button id="abc_submit" name="abc-submit" class="button-primary"> <?php _e('Submit', 'abc'); ?> </button>
</div>
</form>
<div id="abc_results"></div>
<?php echo ob_get_clean();
}
复选框在管理页面上很好地显示。但是,我无法找出检查复选框是否已选中的正确方法。我试过这个(不工作):
function abc_process_ajax(){
if($abc_options['update_date'] == true){
echo 'Checked';
}
}
add_action('wp_ajax_abc_show_results', 'abc_process_ajax');
我也尝试过做print_r($abc_options);
但没有得到任何结果。
检查复选框的正确方法是什么?我对WordPress不太熟悉,任何建议都会非常感激。
顺便说一句,Ajax工作正常。这是脚本:
function abc_load_scripts($hook){
global $abc_settings;
if($hook != $abc_settings)
return;
wp_enqueue_script('abc-ajax', plugin_dir_url(__FILE__) .'js/abc-ajax.js', array('jquery'));
wp_localize_script('abc-ajax', 'abc_vars', array(
'abc_nonce' => wp_create_nonce('abc-nonce')
)
);
}
add_action('admin_enqueue_scripts', 'abc_load_scripts');
ABC-ajax.js
jQuery(document).ready(function($){
$('#abc-form').submit(function(){
data = {
action: 'abc_show_results',
abc_nonce: abc_vars.abc_nonce
};
$.post(ajaxurl, data, function(response){
$('#abc_results').html(response);
});
return false;
});
});