Ich frage mich, ob mich jemand zu meinem Problem weiter beraten könnte. Ein Teil meines Plugins speichert Protokolldateien für Debugging-Zwecke. Ich habe sie erfolgreich in einem (div # log) auf meiner Admin-Seite mit jquery und wp_localise_script angezeigt. Ich habe eine Schaltfläche zum Löschen dieser Protokolle, bin mir jedoch nicht sicher, wie ich das verarbeiten soll. Ich habe das Gefühl, dass Ajax hier nützlich sein könnte, bin mir aber nicht sicher, wo ich anfangen soll.
Hier sind die relevanten Teile meines Codes:
admin_enqueue_scripts (Aktion)
$args = array(get_option('wow_tweets_log'));//log files fetched from wp_options table
wp_enqueue_script('wow_tweet');//registered earlier on with jQuery dependency
wp_localize_script('wow_tweet', 'wow_vars', $args);
Administrator Seite
<tr><th scope="row"><strong>Debugging</strong></th><td>
<div id="debug" class="button-primary">Debug</div><!--debug button shows logs-->
<div id="hide_debug" class="button-secondary">Hide</div><!--debug button hides logs-->
<div id="clear_log" class="button-secondary">Empty Log</div><!--Press to delete logs-->
</td></tr>
<tr><th scope="row"></th><td><div id="log"><!--Logs show here--></div></td></tr>
Javascript
jQuery(document).ready(function() {
var debug_show = jQuery('#log').hide();//hides log by default
jQuery('#debug').click(function(){//on click shows logs files in div#log
for (var i = 0, l = wow_vars.length; i < l; i++) {
var data = wow_vars[i];
}
jQuery('#log').show().html(data);
});
jQuery('#hide_debug').click(function()
{
debug_show.hide();
});
});
Aktion zum Löschen des Protokolls
function clear_log(){
delete_option('wow_tweets_log');//am stuck on how to invoke this
/*die(); would go at the end if ajax used*/
}
add_action('clear_log','clear_log');
Bisher zeigt dieses Skript alle Protokolldateien an. Jetzt muss ich sie nur noch löschen, wenn ich auf #clear_log klicke. Ich weiß, dass durch das Einfügen einer do_action in init diese gelöscht werden, sobald die Seite geladen wird, wodurch mein Javascript unbrauchbar wird. Ich denke, die einzige Option ist Ajax! Muss ich einen weiteren Verweis auf wp_localize_script () hinzufügen? Jede Hilfe wäre dankbar.