PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.5.1
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.5.1
4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.5.2 All 199 releases
betterdocs / includes / REST / CategoryField.php

CategoryField.php in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 4.5.1, at includes/REST/CategoryField.php

108 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPDeveloper\BetterDocs\REST;
4
5 use WPDeveloper\BetterDocs\Core\BaseAPI;
6
7 class CategoryField extends BaseAPI {
8 /**
9 * @return mixed
10 */
11 public function register() {
12 $this->register_field(
13 'doc_category',
14 'doc_category_order',
15 [
16 'get_callback' => [ $this, 'doc_category_order' ]
17 ]
18 );
19 $this->register_field(
20 'doc_category',
21 'thumbnail',
22 [
23 'get_callback' => [ $this, 'thumbnail_image' ]
24 ]
25 );
26 $this->register_field(
27 'doc_category',
28 'handbookthumbnail',
29 [
30 'get_callback' => [ $this, 'handbook_thumbnail_image' ]
31 ]
32 );
33 $this->register_field(
34 'doc_category',
35 'subcategories_count',
36 [
37 'get_callback' => [ $this, 'get_subcategory_count' ]
38 ]
39 );
40 $this->register_field(
41 'doc_category',
42 'total_docs_count',
43 [
44 'get_callback' => [ $this, 'total_docs_count' ]
45 ]
46 );
47 $this->register_field(
48 'doc_category',
49 'last_updated_time',
50 [
51 'get_callback' => [ $this, 'last_updated_time' ]
52 ]
53 );
54 }
55
56 public function last_updated_time( $object ) {
57 $date = betterdocs()->query->latest_updated_date( $object['taxonomy'], $object['slug'] );
58 return $date;
59 }
60
61 public function doc_category_order( $object ) {
62 // Get language-specific meta key with fallback for multilingual sites
63 $meta_key = \WPDeveloper\BetterDocs\Utils\Helper::get_meta_key_with_fallback( 'doc_category_order', $object['id'] );
64 $doc_category_order = get_term_meta( $object['id'], $meta_key, true );
65
66 // If still no order found, try the base key as final fallback
67 if ( ! $doc_category_order ) {
68 $doc_category_order = get_term_meta( $object['id'], 'doc_category_order', true );
69 }
70
71 if ( ! $doc_category_order ) {
72 return;
73 }
74
75 return $doc_category_order;
76 }
77
78 public function thumbnail_image( $object ) {
79 $attachment_id = get_term_meta( $object['id'], 'doc_category_image-id', true );
80 if ( ! $attachment_id ) {
81 return;
82 }
83
84 return wp_get_attachment_url( $attachment_id );
85 }
86
87 public function handbook_thumbnail_image( $object ) {
88 $handbook_img_id = get_term_meta( $object['id'], 'doc_category_thumb-id', true );
89
90 if ( ! $handbook_img_id ) {
91 return;
92 }
93
94 return wp_get_attachment_url( $handbook_img_id );
95 }
96
97 public function get_subcategory_count( $object ) {
98 $sub_terms_count = count( betterdocs()->query->get_all_child_term_ids( 'doc_category', $object['id'] ) );
99
100 return $sub_terms_count;
101 }
102
103 public function total_docs_count( $object ) {
104 $docs_count = betterdocs()->query->get_docs_count( (object) $object, false );
105 return $docs_count;
106 }
107 }
108