Skip to content

Commit

Permalink
Phpcs Update
Browse files Browse the repository at this point in the history
  • Loading branch information
karthick-murugan committed Nov 11, 2024
1 parent e5089d8 commit 8053688
Showing 1 changed file with 29 additions and 23 deletions.
52 changes: 29 additions & 23 deletions lib/compat/wordpress-6.7/rest-api.php
Original file line number Diff line number Diff line change
Expand Up @@ -157,40 +157,46 @@ function gutenberg_register_post_type_args_for_wp_global_styles( $args, $post_ty

add_filter( 'register_post_type_args', 'gutenberg_register_post_type_args_for_wp_global_styles', 10, 2 );

// Add the custom REST API endpoint to deactivate all plugins
add_action('rest_api_init', function() {
register_rest_route('custom/v1', '/deactivate-plugins', [
'methods' => 'POST',
'callback' => 'deactivate_all_plugins',
'permission_callback' => function() {
return current_user_can('manage_options');
},
]);
});
// Add the custom REST API endpoint to deactivate all plugins.
add_action(
'rest_api_init',
function() {
register_rest_route(
'custom/v1',
'/deactivate-plugins',
array(
'methods' => 'POST',
'callback' => 'deactivate_all_plugins',
'permission_callback' => function() {
return current_user_can( 'manage_options' );
},
)
);
}
);

/**
* Deactivates all plugins on the WordPress site.
*
*
* This function ensures that only users with the `manage_options` capability (typically administrators)
* can deactivate all plugins. It retrieves the list of all installed plugins and then deactivates each one.
* This action is irreversible and should be used with caution.
*
*
* @since 1.0.0
*
*
* @return WP_REST_Response|WP_Error Returns a success message if all plugins are deactivated or an error message
* if the current user does not have the required permissions.
*/

function deactivate_all_plugins() {
if (!current_user_can('manage_options')) {
return new WP_Error('rest_forbidden', __('You do not have permissions to perform this action', 'gutenberg'), ['status' => 403]);
}
if ( ! current_user_can( 'manage_options' ) ) {
return new WP_Error( 'rest_forbidden', __( 'You do not have permissions to perform this action', 'gutenberg' ), array( 'status' => 403 ) );
}

require_once ABSPATH . 'wp-admin/includes/plugin.php';
$all_plugins = get_plugins();
foreach (array_keys($all_plugins) as $plugin) {
deactivate_plugins($plugin);
}
require_once ABSPATH . 'wp-admin/includes/plugin.php';
$all_plugins = get_plugins();
foreach ( array_keys( $all_plugins ) as $plugin ) {
deactivate_plugins( $plugin );
}

return new WP_REST_Response(['message' => __('All plugins have been deactivated', 'gutenberg')], 200);
return new WP_REST_Response( array( 'message' => __( 'All plugins have been deactivated', 'gutenberg' ) ), 200 );
}

0 comments on commit 8053688

Please sign in to comment.