我正试图通过ajax将自定义数据从插件后端安全地保存到数据库。
单击“保存”按钮后运行的JavaScript代码:
$.ajax({
url: ajaxVars.ajaxurl,
type: \'post\',
data: {
action : \'myPluginDataSave\',
someData: \'blabla\',
myPluginNonce : ajaxVars.nonce
},
complete: function(data) {
console.log(\'finish\',data.responseText);
}
});
PHP代码(某些部分缺失),ajax\\u save\\u data函数从JS代码接收数据:
add_action( \'wp_ajax_myPluginDataSave\', array(&$this, \'ajax_save_data\') );
wp_enqueue_script( \'my-plugn-js\' );
wp_localize_script( \'my-plugn-js\', \'ajaxVars\', array(
\'ajaxurl\' => admin_url( \'admin-ajax.php\' ),
\'nonce\' => wp_create_nonce( \'myPluginNonce\' ),
));
function ajax_save_data() {
if ( !isset($_POST[\'myPluginNonce\']) || !wp_verify_nonce( $_POST[\'myPluginNonce\'], \'myPluginNonce\' ) )
die ( \'you cant do this\' );
echo \'here data gets saved to DB\' . $_POST[\'someData\'];
die();
}
挂钩仅在admin(内部)中添加
is_admin()
if语句)。可以多次单击“保存”按钮(无需刷新页面)。
代码有效。但是,我的问题是:这样做正确吗?我需要暂时在那里吗?
谢谢你的建议。