PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / RequestHandler / Ajax / CustomFieldKeys.php
codepress-admin-columns / classes / RequestHandler / Ajax Last commit date
AdminGeneralOptionsGet.php 2 days ago AdminGeneralOptionsPersist.php 2 days ago CustomFieldKeys.php 2 days ago EditorMenuFavorites.php 2 days ago EditorMenuStatus.php 2 days ago ExtendedValue.php 2 days ago IntegrationToggle.php 2 days ago Integrations.php 2 days ago ListScreenAddColumn.php 2 days ago ListScreenDelete.php 2 days ago ListScreenOriginalColumns.php 2 days ago ListScreenSave.php 2 days ago ListScreenSelectColumn.php 2 days ago ListScreenSettings.php 2 days ago NetworkPostStati.php 2 days ago NumberFormat.php 2 days ago RestoreSettingsRequest.php 2 days ago ScreenOptions.php 2 days ago
CustomFieldKeys.php
85 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\RequestHandler\Ajax;
6
7 use AC\Capabilities;
8 use AC\Meta\Query;
9 use AC\MetaType;
10 use AC\Nonce;
11 use AC\Request;
12 use AC\RequestAjaxHandler;
13 use AC\Response\Json;
14 use Exception;
15
16 class CustomFieldKeys implements RequestAjaxHandler
17 {
18 public function handle(): void
19 {
20 if (! current_user_can(Capabilities::MANAGE)) {
21 return;
22 }
23
24 $request = new Request();
25 $response = new Json();
26
27 if (! (new Nonce\Ajax())->verify($request)) {
28 $response->error();
29 }
30
31 $meta_type = $request->get('meta_type');
32 $post_type = $request->get('post_type');
33
34 try {
35 $query = Query::from_meta_type(new MetaType((string)$meta_type));
36 } catch (Exception $e) {
37 $response
38 ->set_parameter('options', [])
39 ->success();
40 }
41
42 $query
43 ->select('meta_key')
44 ->distinct()
45 ->order_by('meta_key');
46
47 if ($post_type) {
48 $query->where_post_type((string)$post_type);
49 }
50
51 $encoded = [];
52
53 foreach ($query->get() as $meta_key) {
54 $encoded[] = [
55 'value' => $meta_key,
56 'label' => $meta_key,
57 'group' => $this->get_group($meta_key),
58 ];
59 }
60
61 usort($encoded, static function ($a, $b) {
62 return strcasecmp($a['group'], $b['group']);
63 });
64
65 $response->set_header(
66 'Cache-Control',
67 'max-age=120'
68 );
69
70 $response
71 ->set_parameter('options', $encoded)
72 ->success();
73 }
74
75 private function get_group(string $meta_key): string
76 {
77 if (str_starts_with($meta_key, '_')) {
78 return __('Hidden', 'codepress-admin-columns');
79 }
80
81 return __('Default', 'codepress-admin-columns');
82 }
83
84 }
85