Grazie mille nick :)
Non ho capito sola cosa rappresentano "$oldvalue, $_newvalue" - ora faccio qualche prova in locale/leggo un po' e vedo cosa ottengo
-
Edit, ok, credo di esserci arrivato! Rappresenta un confronto fra quanto c'era prima e quanto verrà inserito adesso (in effetti il nome era piuttosto indicativo) :P :D
-
Nick, scusami, io ci smanetto da un po', ma non ottengo nulla (non scrive né aggiorna il file) :(
Codice PHP:
// Register Settings
function register_settings_mccss()
{
register_setting('mccss_settings','my_custom_css');
}
function mccss_options()
{
?>
<div class="wrap">
<h2><?php _e('My Custom CSS Options','mccss'); ?></h2>
<form method="post" action="options.php">
<?php settings_fields( 'mccss_settings' ); ?>
<p><?php _e('Custom CSS Code:','mccss'); ?> <input type="submit" class="button-secondary" value="<?php _e('Save','mccss'); ?>" style="font-size: 20px; height: 35px; position: fixed; top: 35px; right: 15px; z-index: 5;" /></p>
<textarea name="my_custom_css" id="my_custom_css" dir="ltr" style="width:100%;height:350px;"><?php echo get_option('my_custom_css'); ?></textarea>
<script language="javascript">var editor = CodeMirror.fromTextArea(document.getElementById("my_custom_css"), { lineNumbers: true });</script>
<p>
<input type="submit" class="button-primary" value="<?php _e('Save','mccss'); ?>" />
<input type="button" class="button-secondary" value="Top^" onclick="self.scrollTo(0, 0); return false;" style="float: right;" />
</p>
</form>
</div>
<?php
}
// Save also in *.css file!
$option_name = get_option('my_custom_css'); // prendo i vecchi dati
$_newvalue = $_POST['my_custom_css']; // qui prendo quelli nuovi dalla textarea ($_POST)
function my_custom_css_make_style($option_name, $_newvalue)
{
$path = plugin_dir_url(__FILE__)."my_style.css";
file_put_contents($path, $_newvalue);
return;
}
add_action('update_option_mccss_options','my_custom_css_make_style', 10, 2);
-
Riedit: dopo varie prove ho risolto semplicemente così:
Codice PHP:
<div class="wrap">
<h2><?php _e('My Custom CSS Options','mccss'); ?></h2>
<form method="post" action="options.php">
<?php settings_fields( 'mccss_settings' ); ?>
<p><?php _e('Custom CSS Code:','mccss'); ?> <input type="submit" class="button-secondary" value="<?php _e('Save','mccss'); ?>" style="font-size: 20px; height: 35px; position: fixed; top: 35px; right: 15px; z-index: 5;" /></p>
<textarea name="my_custom_css" id="my_custom_css" dir="ltr" style="width:100%;height:350px;"><?php echo get_option('my_custom_css'); ?></textarea>
<script language="javascript">var editor = CodeMirror.fromTextArea(document.getElementById("my_custom_css"), { lineNumbers: true });</script>
<p>
<input type="submit" class="button-primary" value="<?php _e('Save','mccss'); ?>" />
<input type="button" class="button-secondary" value="Top^" onclick="self.scrollTo(0, 0); return false;" style="float: right;" />
</p>
</form>
</div>
<?php
// Save also in *.css file!
$mycustomcss = strip_tags(get_option('my_custom_css'));
$css_link = plugin_dir_path(__FILE__)."my_style.css";
if(empty($mycustomcss))
{
unlink($css_link);
}
else
{
file_put_contents($css_link, "/******* Do not delete this file *********/\n/*\nMy Custom CSS - Maked by Salvatore Noschese\na.k.a. DarkWolf - http://www://darkwolf.it/\n*/\n\n".$mycustomcss);
}
}
Cioè, nel modo più banale possibile (niente funzioni, niente add_action, solo "file_put_contents"), e funziona alla grande