Je sais que c'est un gâchis, mais quelqu'un peut-il me dire pourquoi je ne peux pas sauvegarder dans l'option checkbox de ce plugin?
/* Runs when plugin is activated */
register_activation_hook(__FILE__,'vigtigt_besked_install');
/* Runs on plugin deactivation*/
register_deactivation_hook( __FILE__, 'vigtigt_besked_remove' );
function vigtig_besked_install() {
/* Creates new database field */
add_option("vigtigt_data", 'Default', '', 'yes');
add_option("tweakfunction1", 'Default', '', 'yes');
}
function vigtig_besked_remove() {
/* Deletes the database field */
delete_option('vigtigt_data');
delete_option('tweakfunction1');
}
/*———————————————————————*/
function vigtig_besked_html_page() {
?>
<div>
<h2>Vigtige beskeder!</h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>
<table width="900">
<tr valign="top">
<th align="left" width="140" scope="row">Skriv din tekst her:</th>
<td width="700">
<input size="76" name="vigtigt_data" type="text" id="vigtigt_data" value="<?php echo get_option('vigtigt_data'); ?>" />
(f.eks. Undervisning er aflyst pga. sne!)</td>
</tr>
<tr><th align="left" width="140" scope="row">Funktion1:</th><td>
<input size="76" name="tweakfunction1" type="checkbox" id="tweakfunction1" checked="<?php get_option( 'tweakfunction1' ); ?>" />
<?php echo get_option( 'tweakfunction1' ); ?>
</td></tr>
</table>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="vigtigt_data,tweakfunction1" />
<p>
<input type="submit" value="<?php _e('Gem ændringer') ?>" />
</p>
</form>
<?php if (!current_user_can('manage_options')) {
wp_die( __('You do not have sufficient permissions to access this page.') );
}
echo '<div class="wrap">';
echo '<p>Here is where the form would go if I actually had options.</p>';
echo '</div>'; ?>
</div>
<?php }
if ( is_admin() ){
/* Call the html code */
add_action('admin_menu', 'vigtig_besked_admin_menu');
function vigtig_besked_admin_menu() {
add_menu_page('Vigtigt', 'Vigtige beskeder!', '1','vigtig_besked', 'vigtig_besked_html_page');}
}
Vous ne savez pas exactement où vous ajoutez cette fonctionnalité, mais je ne vois nulle part dans ce code où vous utilisez la fonction update_option (). Au-dessus de votre formulaire HTML, vous devez vérifier si le formulaire contient des données, puis mettre à jour l'option.
//Do nonce checking here and
$Tweak = $_POST['tweakfunction1'] ? $_POST['tweakfunction1'] : '';
update_option('tweakfunction1', esc_html($Tweak));
Wordpress inclut une fonction appelée vérifié () qui vérifie une certaine valeur. Votre balise d’entrée n’a pas non plus d’attribut value. Je l'ai ajouté ci-dessous avec la fonction cochée.
<input size="76" name="tweakfunction1" type="checkbox" id="tweakfunction1" <?php checked('foobar', get_option('tweakfunction1'));?> value='foobar' />