<?php
|
// /content/faq.php
|
function altr_faq():array
|
{
|
return [
|
'singular' => 'FAQ',
|
'plural' => 'FAQs',
|
'dash_description' => 'Manage your answers',
|
'capability_type' => ['faq', 'faqs'],
|
'breadcrumb' => 'FAQ',
|
'addCrumb' => 'section',
|
'show_directory'=> true,
|
'directory_extra'=> ['section'],
|
'dash_title' => 'FAQs',
|
'icon' => 'question',
|
'rewrite_taxonomy' => 'section',
|
'rewrite' => [
|
'slug' => 'faq',
|
'with_front' => false,
|
],
|
'fields' => [
|
'post_title' => [
|
'type' => 'text',
|
'label' => 'Question',
|
],
|
'post_status' => [
|
'type' => 'radio',
|
'label' => 'Status',
|
'hidden' => true,
|
'options' => [
|
'publish' => 'Show',
|
'draft' => 'Hide',
|
'trash' => 'Scrap',
|
'delete' => 'Permanently Delete'
|
]
|
],
|
'post_content' => [
|
'type' => 'textarea',
|
'label' => 'Answer',
|
'quill' => true,
|
],
|
],
|
'single_image' => false,
|
'upload_title' => 'Upload Before & Afters',
|
'seo' => [
|
'meta' => [
|
'title' => '{{post_title}} | FAQ',
|
'description' => '{{post_excerpt}}'
|
],
|
'schema' => [
|
'type' => 'FAQPage',
|
'question' => '{{post_title}}',
|
'answer' => '{{post_excerpt}}',
|
],
|
'archive' => [
|
'type' => 'FAQPage',
|
'name' => 'Common Questions about Laser Tattoo Removal',
|
],
|
]
|
];
|
}
|
|
|
add_action('wp_enqueue_scripts', 'nebDashScripts', 9999);
|
function nebDashScripts() {
|
global $wp;
|
$page = str_replace('dash/', '', $wp->request);
|
if ($page === 'settings') {
|
wp_enqueue_script('jvb-form');
|
wp_enqueue_script('jvb-tabs');
|
wp_enqueue_script('jvb-populate-form');
|
wp_enqueue_script('jvb-copy-hours');
|
wp_enqueue_script('jvb-quill');
|
wp_enqueue_script('jvb-store');
|
$script = 'function loadSettingsPage() {
|
let tabs = new window.jvbTabs(document.querySelector(".replace"));
|
let store = new window.jvbStore({
|
name: "options",
|
endpoint: "options",
|
headers: {
|
"action_nonce": jvbSettings.dash,
|
}
|
});
|
|
let form = new window.jvbForm(store);
|
let forms = [ "#hours", "#menu-sections"];
|
let setForms = {};
|
forms.forEach(f => {
|
let gotF = document.querySelector(`form${f}`);
|
setForms[f] = form.registerForm(gotF);
|
|
});
|
|
form.subscribe((event, data) => {
|
switch (event) {
|
case "form-submit":
|
case "form-autosave":
|
window.jvbQueue.addToQueue({
|
endpoint: "options",
|
headers: {
|
"action_nonce": jvbSettings.dash,
|
},
|
data: data.changes,
|
popup: `Saving options...`,
|
title: "Saving Options"
|
});
|
break;
|
}
|
});
|
}
|
document.addEventListener("DOMContentLoaded", ()=>{
|
loadSettingsPage()
|
});
|
';
|
$output = wp_add_inline_script('jvb-form', $script, 'after');
|
} elseif ($page === 'dash') {
|
wp_enqueue_script('jvb-form');
|
wp_enqueue_script('jvb-store');
|
$script = 'function loadDashPage() {
|
|
let store = new window.jvbStore({
|
name: "options",
|
endpoint: "options",
|
headers: {
|
"action_nonce": jvbSettings.dash,
|
}
|
});
|
|
let form = new window.jvbForm(store);
|
let forms = [ "#options"];
|
let setForms = {};
|
forms.forEach(f => {
|
let gotF = document.querySelector(`form${f}`);
|
setForms[f] = form.registerForm(gotF);
|
|
});
|
|
form.subscribe((event, data) => {
|
switch (event) {
|
case "form-submit":
|
case "form-autosave":
|
window.jvbQueue.addToQueue({
|
endpoint: "options",
|
headers: {
|
"action_nonce": jvbSettings.dash,
|
},
|
data: data.changes,
|
popup: `Saving options...`,
|
title: "Saving Options"
|
});
|
break;
|
}
|
});
|
}
|
document.addEventListener("DOMContentLoaded", ()=>{
|
loadDashPage()
|
});
|
';
|
// $output = wp_add_inline_script('jvb-form', $script, 'after');
|
}
|
}
|