PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.6.0
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.6.0
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 / views / shortcodes / faq-tab.php

faq-tab.php in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 4.6.0, at views/shortcodes/faq-tab.php

94 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <div
2 <?php
3 // phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- view template receives variables via extract(); prefixing is impractical.
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7 echo $wrapper_attr; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- contains attriutes and values together which are required here ?>>
8 <?php
9 $section_tag = betterdocs()->template_helper->is_valid_tag( $faq_section_title_tag );
10 echo wp_kses_post( '<' . $section_tag . ' class="' . esc_attr( $faq_heading_class ) . ' betterdocs-faq-section-title">' . esc_html( $faq_heading ) . '</' . $section_tag . '>' );
11 ?>
12
13 <div class="betterdocs-faq-inner-wrapper">
14 <?php
15 $terms = get_terms( $terms_query_args );
16 $faq_json = '';
17
18 if ( ! is_wp_error( $terms ) ) {
19 $GLOBALS['betterdocs_faq_schema'] = [];
20 if ( $faq_schema ) {
21 $faq_json = [
22 '@context' => 'https://schema.org',
23 '@type' => 'FAQPage',
24 'mainEntity' => []
25 ];
26
27 $GLOBALS['betterdocs_faq_schema_main_entity'] = $faq_json['mainEntity'];
28 }
29
30 echo '<div class="betterdocs-faq-tab-wrapper">';
31 foreach ( $terms as $term ) {
32 if ( $term->count <= 0 ) {
33 continue;
34 }
35 $faq_icon_url = get_term_meta($term->term_id, 'faq_group_icon', true);
36 echo '<div class="betterdocs-faq-tab" data-term-id="' . esc_attr( $term->term_id ) . '">';
37 echo ( ! empty( $faq_icon_url ) ) ? '<img src="' . esc_url( $faq_icon_url ) . '" width="24" height="24" class="faq-group-image" />' : '';
38 echo '<span class="faq-tab-title">' . esc_html( $term->name ) . '</span>';
39 echo '</div>';
40 }
41 echo '</div>';
42
43 echo '<div class="betterdocs-faq-list-wrapper">';
44 foreach ( $terms as $term ) {
45 if ( $term->count <= 0 ) {
46 continue;
47 }
48
49 $faq_icon_url = get_term_meta($term->term_id, 'faq_group_icon', true);
50 echo '<div class="betterdocs-faq-tab" data-term-id="' . esc_attr( $term->term_id ) . '">';
51 echo ( ! empty( $faq_icon_url ) ) ? '<img src="' . esc_url( $faq_icon_url ) . '" width="24" height="24" class="faq-group-image" />' : '';
52 echo '<span class="faq-tab-title">' . esc_html( $term->name ) . '</span>';
53
54 $faq_markup = '<svg class="betterdocs-faq-iconplus" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
55 <g clip-path="url(#clip0_8028_2975)">
56 <path d="M5.5 7.5L10.5 12.5L15.5 7.5" stroke="#707E95" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
57 </g>
58 <defs>
59 <clipPath id="clip0_8028_2975">
60 <rect width="20" height="20" fill="white" transform="translate(0.5)"/>
61 </clipPath>
62 </defs>
63 </svg>';
64 $faq_markup .= '<svg class="betterdocs-faq-iconminus" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
65 <path d="M15.5 12.5L10.5 7.5L5.5 12.5" stroke="#707E95" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
66 </svg>';
67
68 echo $faq_markup; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
69
70 echo '</div>';
71
72 // faq list
73 echo '<div class="betterdocs-faq-list-content" data-term-id="' . esc_attr( $term->term_id ) . '" style="display: none;">';
74 $view_object->get(
75 'shortcode-parts/faq-list',
76 [
77 'term' => $term,
78 'faq_schema' => $faq_schema,
79 'faq_json' => $faq_schema ? $faq_json['mainEntity'] : ''
80 ]
81 );
82 echo '</div>';
83 }
84 echo '</div>';
85
86 if ( $faq_schema ) {
87 $faq_json['mainEntity'] = $GLOBALS['betterdocs_faq_schema_main_entity'];
88 echo '<script type="application/ld+json">' . wp_json_encode( $faq_json ) . '</script>';
89 }
90 }
91 ?>
92 </div>
93 </div>
94