所以我做了几件事。首先,我在HTML按钮中添加了一个ID,以便在同一个类中有多个按钮执行不同的操作的情况下简化操作。
然后,我编写了一个快速而简单的小AJAX函数-实际上不需要传递太多数据,它只需要向WP验证自己,以便WP知道允许它执行该函数。
然后我用php编写了另一个函数,基本上激活了插件。
<!-- //ADDED AN ID TO THE BUTTON -->
<button id="activate_plugin" class="btn btn-success">Activate</button>
<!-- //THE AJAX -->
<script type="text/javascript">
jQuery( document ).ready( function($) {
$( \'#activate_plugin\' ).on( \'click\', function(e) {
e.preventDefault();
var ajaxurl = \'<?php echo admin_url( "admin-ajax.php" ); ?>\';
var security = \'<?php echo wp_create_nonce( "activate_plugin" ); ?>\';
$.ajax( {
url: ajaxurl,
dataType: \'json\',
type: \'POST\',
delay: 150,
data :\'action=activate_plugin&security=\'+security,
success: function( data ) {
console.log( data + \', Plugin Activated!\' );
},
} );
} );
} );
</script>
<!-- //THE AJAX CALLBACK -->
<?php
function activate_plugin_ajax_callback() {
check_ajax_referer( \'activate_plugin\', \'security\' );
activate_plugin( \'plugin-dir/plugin-file.php\' );
if( is_wp_error( $result ) ) {
// Process Error
}
}
add_action( \'wp_ajax_activate_plugin\', \'activate_plugin_ajax_callback\' );
add_action( \'wp_ajax_nopriv_activate_plugin\', \'activate_plugin_ajax_callback\' );
?>
你还可以做很多其他的小事情,比如如果插件已经激活了,那么就不要显示按钮。
<?php if( is_plugin_inactive( \'plugin-dir/plugin-file.php\' ) ) : ?>
<button id="activate_plugin" class="btn btn-success" onclick="testme()">Activate</button>
<?php else : ?>
<span class="activated-note">The XXX Plugin is installed and activated.</span>
<?php endif; ?>
您还可以将AJAX成功设置为删除按钮,并通过替换
success
AJAX的一部分包括:
success: function( data ) {
console.log( data );
alert( \'Plugin Activated!\' );
$( \'#activate_plugin\' ).toggle();
$( \'.navbar-header\' ).append( \'<span class="activated-note">The XXX Plugin is installed and activated.</span>\' );
},