-
Notifications
You must be signed in to change notification settings - Fork 0
/
ajax-search.php
27 lines (23 loc) · 1014 Bytes
/
ajax-search.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// Include necessary WordPress files
require_once ABSPATH . 'wp-includes/pluggable.php';
// Fetch roles and their descriptions
$roles = wp_roles()->roles;
// Process search query if provided
$searchQuery = isset($_POST['searchQuery']) ? sanitize_text_field($_POST['searchQuery']) : '';
// Filter roles based on search query
$filteredRoles = [];
foreach ($roles as $role_name => $role_details) {
if (strpos(strtolower($role_name), strtolower($searchQuery)) !== false ||
strpos(strtolower($role_details['description']), strtolower($searchQuery)) !== false) {
$filteredRoles[] = [
'role_name' => $role_name,
'description' => $role_details['description'],
'capabilities' => implode(', ', array_keys($role_details['capabilities'])),
'priority' => isset($role_details['priority']) ? $role_details['priority'] : ''
];
}
}
// Return filtered roles as JSON
echo json_encode(['data' => $filteredRoles]);
?>