Zastanawiam się, czy ktokolwiek mógłby mi doradzić w sprawie mojego problemu. Część mojej wtyczki przechowuje pliki dziennika do celów debugowania. Udało mi się wyświetlić je w (div # log) na mojej stronie administratora przy użyciu jquery i wp_localise_script. Mam przycisk do usunięcia tych dzienników, ale nie jestem pewien, jak to przetworzyć. Mam wrażenie, że ajax może się tu przydać, ale nie jestem pewien, od czego zacząć.
Oto odpowiednie części mojego kodu:
admin_enqueue_scripts (akcja)
$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);
Strona administratora
<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();
});
});
Działanie w celu wyczyszczenia dziennika
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');
Jak dotąd ten skrypt działa, aby wyświetlić wszystkie pliki dziennika, teraz wystarczy, że je usunę, klikając #clear_log. Wiem, że podłączenie do okazji do init usunie je, gdy tylko strona się załaduje, dzięki czemu mój javascript będzie bezużyteczny, więc sądzę, że jedyną opcją jest ajax! Czy muszę dodać kolejne odwołanie do wp_localize_script ()? Każda pomoc będzie mile widziana.