私はプラグインを持っています、cronジョブは毎日refresh_my_plugin()
を実行します。
私は自分のプラグインの設定/オプションページにボタンを必要とし、ユーザーが手動で上記の機能を実行することを可能にします、そして私はそれをajaxでインラインにしたいです。
私は次のものを持っています、それはうまくいくはずです - しかし、どのようにそれにWordpressのNoncesを追加するでしょうか?
<?php
if (isset($_POST['refresh_my_plugin'])) {
refresh_my_plugin();
}
function refresh_my_plugin() {
// main function, runs daily with cron
return true;
}
?>
<button id='refresh'>Refresh My Plugin</button>
<script>
jQuery('#refresh').click(function(){
$.ajax({
type: 'post',
data: { "refresh_my_plugin": "now"},
success: function(response) {
jQuery('#refresh').text("Successfully Refreshed!");
},
error: function(response) {
jQuery('#refresh').text("...error!");
},
});
});
</script>
私はそれを考え出した。単純に、私の要求では、data
の下に、私は追加しました
"nonce" : "<?php echo wp_create_nonce( 'refresh_my_plugin' ); ?>"
それから検証する
if (isset($_POST['refresh_my_plugin']))
if ( wp_verify_nonce( $_POST['nonce'], 'refresh_my_plugin' ) )
refresh_my_plugin();
wp_verify_nonce
が正しくないと、代わりに403が表示されます。これはerror
ハンドラーのボタンに反映されています。