| | |
| | | <?php |
| | | namespace JVBase\blocks; |
| | | |
| | | use JVBase\managers\CacheManager; |
| | | use JVBase\forms\TaxonomySelector; |
| | | use JVBase\meta\MetaManager; |
| | | use JVBase\managers\Cache; |
| | | use WP_Block; |
| | | use WP_Query; |
| | | |
| | | class FAQBlock { |
| | | protected CacheManager $cache; |
| | | protected Cache $cache; |
| | | public function __construct() |
| | | { |
| | | $this->cache = CacheManager::for('faq_block', WEEK_IN_SECONDS); |
| | | $this->cache = Cache::for('faq_block', WEEK_IN_SECONDS)->connect('post', true)->connect('taxonomy', true); |
| | | add_action('init', [ $this, 'registerBlock' ]); |
| | | add_action('enqueue_block_editor_assets', [$this, 'localizeData']); |
| | | } |
| | |
| | | foreach ($sections as $term) { |
| | | $sections_data[] = [ |
| | | 'id' => $term->term_id, |
| | | 'name' => $term->name, |
| | | 'name' => html_entity_decode($term->name), |
| | | 'slug' => $term->slug, |
| | | ]; |
| | | } |
| | |
| | | $term = get_term($term_id, $section_taxonomy); |
| | | if ($term && !is_wp_error($term)) { |
| | | $url = (!$is_tax_archive) ? "#{$term->slug}" : get_term_link($term); |
| | | $nav .= '<li><a href="'.$url.'">'.$term->name.'</a></li>'; |
| | | $nav .= '<li><a href="'.$url.'">'.html_entity_decode($term->name).'</a></li>'; |
| | | } |
| | | } |
| | | $seeAll = ($is_tax_archive) ? '<p><a href="'.get_post_type_archive_link(BASE.'faq').'">'.__('See All FAQs', 'jvb').'</a></p>' : ''; |
| | |
| | | ?> |
| | | <details class="faq"<?= !$collapse_by_default ? ' open' : '' ?>> |
| | | <summary><h3><b>Q</b> <?= esc_html($faq['title']) ?></h3></summary> |
| | | <?= apply_filters('the_content', $faq['content']) ?> |
| | | <?= jvb_filter_content( $faq['content']) ?> |
| | | <a class="button" href="<?= $faq['url'] ?>" title="Learn More about <?=$faq['title']?>">Learn More</a> |
| | | </details> |
| | | <?php endforeach; ?> |