Ultimate FAQ - Version 1.4.3

Version Description

  • Added in a new set of tutorials for new users
  • Centralized the plugin dashboard and menu
Download this release

Release Info

Developer Rustaurius
Plugin Icon 128x128 Ultimate FAQ
Version 1.4.3
Comparing to
See all releases

Code changes from version 1.4.2 to 1.4.3

Blog.html ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <a target='_blank' href='http://www.etoilewebdesign.com/wordpress-beginner-how-to-build-a-business-website-or-blog-in-24-hours/'><h3>WORDPRESS BEGINNER? HOW TO BUILD A BUSINESS WEBSITE OR BLOG IN 24 HOURS.</h3></a>
2
+ <p>If you are considering a WordPress website project you’ll be in good company. Over 70…</p>
Functions/EWD_UFAQ_Help_Pointers.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function UFAQ_Return_Pointers() {
4
+ $pointers = array();
5
+
6
+ $pointers['tutorial-one'] = array(
7
+ 'title' => "<h3>" . 'Ultimate FAQ Intro' . "</h3>",
8
+ 'content' => "<div><p>Thanks for installing UFAQ! These 6 slides will help get you started using the plugin.</p></div><div class='ufaq-pointer-count'><p>1 of 6</p></div>",
9
+ 'anchor_id' => '.Header',
10
+ 'edge' => 'top',
11
+ 'align' => 'left',
12
+ 'nextTab' => 'Products',
13
+ 'width' => '320',
14
+ 'where' => array( 'toplevel_page_EWD-UFAQ-Options') // <-- Please note this
15
+ );
16
+
17
+ $pointers['tutorial-two'] = array(
18
+ 'title' => "<h3>" . 'Create FAQs' . "</h3>",
19
+ 'content' => "<div><p>Click 'Add New' to create FAQs for your visitors to view. Enter the FAQ question in the title area and the FAQ answer in the main post content area. Set the author name using the 'Author Display Name' field under the main post content area. Select and/or create FAQ categories and FAQ tags in the right-side menu.</p></div><div class='ufaq-pointer-count'><p>2 of 6</p></div>",
20
+ 'anchor_id' => '#FAQs_Menu',
21
+ 'edge' => 'top',
22
+ 'align' => 'left',
23
+ 'nextTab' => 'Categories',
24
+ 'width' => '320',
25
+ 'where' => array( 'toplevel_page_EWD-UFAQ-Options') // <-- Please note this
26
+ );
27
+
28
+ $pointers['tutorial-three'] = array(
29
+ 'title' => "<h3>" . 'Set Up Categories' . "</h3>",
30
+ 'content' => "<div><p>Categories help organize your FAQs. You can assign FAQs to categories and optionally choose to group your FAQ page by category.</p></div><div class='ufaq-pointer-count'><p>3 of 6</p></div>",
31
+ 'anchor_id' => '#FAQ_Categories_Menu',
32
+ 'edge' => 'top',
33
+ 'align' => 'left',
34
+ 'nextTab' => 'Catalogues',
35
+ 'width' => '320',
36
+ 'where' => array( 'toplevel_page_EWD-UFAQ-Options') // <-- Please note this
37
+ );
38
+
39
+ $pointers['tutorial-four'] = array(
40
+ 'title' => "<h3>" . 'Display FAQs' . "</h3>",
41
+ 'content' => "<div><p>Place the [ultimate-faqs] shortcode in the content area of any page you've created and it will display your FAQs</p></div><div class='ufaq-pointer-count'><p>4 of 6</p></div>",
42
+ 'anchor_id' => '#menu-pages',
43
+ 'edge' => 'top',
44
+ 'align' => 'left',
45
+ 'nextTab' => 'Options',
46
+ 'width' => '320',
47
+ 'where' => array( 'toplevel_page_EWD-UFAQ-Options') // <-- Please note this
48
+ );
49
+
50
+ $pointers['tutorial-five'] = array(
51
+ 'title' => "<h3>" . 'Customize Options' . "</h3>",
52
+ 'content' => "<div><p>The FAQ settings area has options to help customize the plugin perfectly for your site, including:</p><ul><li>Toggle and accordion modes</li><li>FAQ comments</li><li>Many styling options and more!</li></ul></div><div class='ufaq-pointer-count'><p>5 of 6</p></div>",
53
+ 'anchor_id' => '#Options_Menu',
54
+ 'edge' => 'top',
55
+ 'align' => 'left',
56
+ 'nextTab' => 'Dashboard',
57
+ 'width' => '320',
58
+ 'where' => array( 'toplevel_page_EWD-UFAQ-Options') // <-- Please note this
59
+ );
60
+
61
+ $pointers['tutorial-six'] = array(
62
+ 'title' => "<h3>" . 'Need More Help?' . "</h3>",
63
+ 'content' => "<div><p><a href='https://wordpress.org/support/view/plugin-reviews/ultimate-faqs?filter=5'>Help us spread the word with a 5 star rating!</a><br><br>We've got a number of videos on how to use the plugin:<br /><iframe width='560' height='315' src='https://www.youtube.com/embed/zf-tYLqHpRs?list=PLEndQUuhlvSrNdfu5FKa1uGHsaKZxgdWt' frameborder='0' allowfullscreen></iframe></p></div><div class='ufaq-pointer-count'><p>6 of 6</p></div>",
64
+ 'anchor_id' => '#wp-admin-bar-site-name',
65
+ 'edge' => 'top',
66
+ 'align' => 'left',
67
+ 'nextTab' => 'Dashboard',
68
+ 'width' => '600',
69
+ 'where' => array( 'toplevel_page_EWD-UFAQ-Options') // <-- Please note this
70
+ );
71
+
72
+ return $pointers;
73
+ }
74
+
75
+ ?>
Functions/EWD_UFAQ_Output_Pages.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* Creates the admin page, and fills it in based on whether the user is looking at
3
+ * the overview page or an individual item is being edited */
4
+ function EWD_UFAQ_Output_Pages() {
5
+ global $UFAQ_Full_Version;
6
+
7
+ if (!isset($_GET['DisplayPage'])) {$_GET['DisplayPage'] = "";}
8
+
9
+ include( plugin_dir_path( __FILE__ ) . '../html/AdminHeader.php');
10
+ if ($_GET['DisplayPage'] == "" or $_GET['DisplayPage'] == "Dashboard") {include( plugin_dir_path( __FILE__ ) . '../html/DashboardPage.php');}
11
+ if ($_GET['DisplayPage'] == "Options") {include( plugin_dir_path( __FILE__ ) . '../html/OptionsPage.php');}
12
+ if ($_GET['DisplayPage'] == "Export") {include( plugin_dir_path( __FILE__ ) . '../html/ExportPage.php');}
13
+ if ($_GET['DisplayPage'] == "ImportPosts") {include( plugin_dir_path( __FILE__ ) . '../html/ImportPage.php');}
14
+ include( plugin_dir_path( __FILE__ ) . '../html/AdminFooter.php');
15
+ }
16
+ ?>
Functions/EWD_UFAQ_Pointers_Manager_Class.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class UFAQPointersManager implements UFAQPointersManagerInterface {
4
+
5
+ private $pointers_input;
6
+ private $version;
7
+ private $prefix;
8
+ private $pointers = array();
9
+
10
+ public function __construct( $pointers_input, $version, $prefix ) {
11
+ $this->pointers_input = $pointers_input;
12
+ $this->version = str_replace( '.', '_', $version );
13
+ $this->prefix = $prefix;
14
+ }
15
+
16
+ public function parse() {
17
+ if ( empty($this->pointers_input) ) return;
18
+ foreach ( $this->pointers_input as $i => $pointer ) {
19
+ $pointer['id'] = "{$this->prefix}_{$i}";
20
+ $this->pointers[$pointer['id']] = (object) $pointer;
21
+ }
22
+ }
23
+
24
+ public function filter( $page ) {
25
+ if ( empty( $this->pointers ) ) return array();
26
+ $uid = get_current_user_id();
27
+ $no = explode( ',', (string) get_user_meta( $uid, 'dismissed_wp_pointers', TRUE ) );
28
+ $active_ids = array_diff( array_keys( $this->pointers ), $no );
29
+ $good = array();
30
+ foreach( $this->pointers as $i => $pointer ) {
31
+ if (
32
+ in_array( $i, $active_ids, TRUE ) // is active
33
+ && isset( $pointer->where ) // has where
34
+ && in_array( $page, (array) $pointer->where, TRUE ) // current page is in where
35
+ ) {
36
+ $good[] = $pointer;
37
+ }
38
+ }
39
+ $count = count( $good );
40
+ if ( $good === 0 ) return array();
41
+ foreach( array_values( $good ) as $i => $pointer ) {
42
+ $good[$i]->next = $i+1 < $count ? $good[$i+1]->id : '';
43
+ }
44
+ return $good;
45
+ }
46
+ }
Functions/EWD_UFAQ_Pointers_Manager_Interface.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ interface UFAQPointersManagerInterface {
3
+
4
+ /**
5
+ * Load pointers from file and setup id with prefix and version.
6
+ * Cast pointers to objects.
7
+ */
8
+ public function parse();
9
+
10
+ /**
11
+ * Remove from parse pointers dismissed ones and pointers
12
+ * that should not be shown on given page
13
+ *
14
+ * @param string $page Current admin page file
15
+ */
16
+ public function filter( $page );
17
+
18
+ }
19
+
20
+ ?>
Functions/EWD_UFAQ_Version_Update.php CHANGED
@@ -53,7 +53,7 @@ function EWD_UFAQ_SetUpdateOption() {
53
 
54
  if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and get_option('EWD_UFAQ_Update_Flag') != "Yes") {add_action("admin_notices", "EWD_UFAQ_Version_Update_Box");}
55
 
56
- function EWD_UFAQ_Version_Update_Box() {
57
  ?>
58
  <div id="side-sortables" class="metabox-holder ">
59
  <div id="EWD_UFAQ_pro" class="postbox " >
@@ -85,7 +85,7 @@ function EWD_UFAQ_Version_Update_Box() {
85
  <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
86
  </form>
87
  </li></ul>
88
- <?php } */ ?>
89
 
90
  </div>
91
  </div>
@@ -93,7 +93,7 @@ function EWD_UFAQ_Version_Update_Box() {
93
 
94
  <?php
95
  update_option("EWD_UFAQ_Update_Flag", "No");
96
- update_option("EWD_UFAQ_Install_Flag", "No");
97
  }
98
 
99
  ?>
53
 
54
  if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and get_option('EWD_UFAQ_Update_Flag') != "Yes") {add_action("admin_notices", "EWD_UFAQ_Version_Update_Box");}
55
 
56
+ function EWD_UFAQ_Version_Update_Box() { /*
57
  ?>
58
  <div id="side-sortables" class="metabox-holder ">
59
  <div id="EWD_UFAQ_pro" class="postbox " >
85
  <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
86
  </form>
87
  </li></ul>
88
+ <?php } ?>
89
 
90
  </div>
91
  </div>
93
 
94
  <?php
95
  update_option("EWD_UFAQ_Update_Flag", "No");
96
+ update_option("EWD_UFAQ_Install_Flag", "No"); */
97
  }
98
 
99
  ?>
Functions/Register_EWD_UFAQ_Posts_Taxonomies.php CHANGED
@@ -23,6 +23,7 @@ function EWD_UFAQ_Create_Posttype() {
23
  'public' => true,
24
  'publicly_queryable' => true,
25
  'show_ui' => true,
 
26
  'query_var' => true,
27
  'has_archive' => true,
28
  'menu_icon' => null,
23
  'public' => true,
24
  'publicly_queryable' => true,
25
  'show_ui' => true,
26
+ 'show_in_menu' => false,
27
  'query_var' => true,
28
  'has_archive' => true,
29
  'menu_icon' => null,
Main.php CHANGED
@@ -7,7 +7,7 @@ Author: Etoile Web Design
7
  Author URI: http://www.EtoileWebDesign.com/wordpress-plugins/
8
  Terms and Conditions: http://www.etoilewebdesign.com/plugin-terms-and-conditions/
9
  Text Domain: EWD_UFAQ
10
- Version: 1.4.2
11
  */
12
 
13
  global $ewd_ufaq_message;
@@ -22,6 +22,7 @@ define( 'EWD_UFAQ_CD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
22
  //define('WP_DEBUG', true);
23
 
24
  register_activation_hook(__FILE__,'Set_EWD_UFAQ_Options');
 
25
  add_filter('upgrader_post_install', 'Set_EWD_UFAQ_Options');
26
 
27
  /* Hooks neccessary admin tasks */
@@ -33,14 +34,62 @@ if ( is_admin() ){
33
  }
34
 
35
  function EWD_UFAQ_Enable_Sub_Menu() {
36
- //add_submenu_page('edit.php?post_type=ufaq', 'FAQ Order', 'FAQ Order', 'edit_posts', basename(__FILE__), 'custom_function');
37
- add_submenu_page('edit.php?post_type=ufaq', 'FAQ Options', 'FAQ Settings', 'edit_posts', 'options', 'EWD_UFAQ_Output_Options_Page');
38
- add_submenu_page('edit.php?post_type=ufaq', 'FAQ Export', 'FAQ Export', 'edit_posts', 'export', 'EWD_UFAQ_Output_Export_Page');
39
- add_submenu_page('edit.php?post_type=ufaq', 'FAQ Import', 'FAQ Import', 'edit_posts', 'import_posts', 'EWD_UFAQ_Output_Import_Page');
40
- //add_submenu_page('edit.php?post_type=ufaq', 'FAQ Statistics', 'FAQ Statistics', 'edit_posts', basename(__FILE__), 'EWD_UFAQ_Output_Statistics_Page');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
42
  add_action('admin_menu' , 'EWD_UFAQ_Enable_Sub_Menu');
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  /* Add localization support */
45
  function EWD_UFAQ_localization_setup() {
46
  load_plugin_textdomain('EWD_UFAQ', false, dirname(plugin_basename(__FILE__)) . '/lang/');
@@ -49,7 +98,7 @@ add_action('after_setup_theme', 'EWD_UFAQ_localization_setup');
49
 
50
  // Add settings link on plugin page
51
  function EWD_UFAQ_plugin_settings_link($links) {
52
- $settings_link = '<a href="edit.php?post_type=ufaq&page=options">Settings</a>';
53
  array_unshift($links, $settings_link);
54
  return $links;
55
  }
@@ -57,7 +106,8 @@ $plugin = plugin_basename(__FILE__);
57
  add_filter("plugin_action_links_$plugin", 'EWD_UFAQ_plugin_settings_link' );
58
 
59
  function Add_EWD_UFAQ_Scripts() {
60
- if (isset($_GET['post_type']) && $_GET['post_type'] == 'ufaq') {
 
61
  $url_one = plugins_url("ultimate-faqs/js/sorttable.js");
62
  $url_two = plugins_url("ultimate-faqs/js/Admin.js");
63
  $url_three = plugins_url("ultimate-faqs/js/spectrum.js");
@@ -200,15 +250,47 @@ function EWD_UFAQ_Output_TinyMCE_Vars() {
200
  echo "</script>";
201
  }
202
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  include "Functions/Error_Notices.php";
204
  include "Functions/EWD_UFAQ_Add_Social_Media_Buttons.php";
205
  include "Functions/EWD_UFAQ_Add_Views_Column.php";
206
  include "Functions/EWD_UFAQ_Export.php";
 
207
  include "Functions/EWD_UFAQ_Import.php";
208
  include "Functions/EWD_UFAQ_Styling.php";
209
- include "Functions/EWD_UFAQ_Output_Options_Page.php";
210
- include "Functions/EWD_UFAQ_Output_Export_Page.php";
211
- include "Functions/EWD_UFAQ_Output_Import_Page.php";
212
  include "Functions/EWD_UFAQ_Rewrite_Rules.php";
213
  include "Functions/EWD_UFAQ_Submit_Question.php";
214
  include "Functions/EWD_UFAQ_Upgrade_Box.php";
7
  Author URI: http://www.EtoileWebDesign.com/wordpress-plugins/
8
  Terms and Conditions: http://www.etoilewebdesign.com/plugin-terms-and-conditions/
9
  Text Domain: EWD_UFAQ
10
+ Version: 1.4.3
11
  */
12
 
13
  global $ewd_ufaq_message;
22
  //define('WP_DEBUG', true);
23
 
24
  register_activation_hook(__FILE__,'Set_EWD_UFAQ_Options');
25
+ register_activation_hook(__FILE__,'Run_UFAQ_Tutorial');
26
  add_filter('upgrader_post_install', 'Set_EWD_UFAQ_Options');
27
 
28
  /* Hooks neccessary admin tasks */
34
  }
35
 
36
  function EWD_UFAQ_Enable_Sub_Menu() {
37
+ global $submenu;
38
+
39
+ $Admin_Approval = get_option("EWD_UFAQ_Admin_Approval");
40
+
41
+ add_menu_page( 'Ultimate FAQs', 'FAQs', 'edit_posts', 'EWD-UFAQ-Options', 'EWD_UFAQ_Output_Pages', null, '49.1' );
42
+ add_submenu_page('EWD-UFAQ-Options', 'FAQ Options', 'FAQ Settings', 'edit_posts', 'EWD-UFAQ-Options&DisplayPage=Options', 'EWD_UFAQ_Output_Pages');
43
+ if ($Admin_Approval == "Yes") {
44
+ $submenu['EWD-UFAQ-Options'][6] = $submenu['EWD-UFAQ-Options'][1];
45
+ $submenu['EWD-UFAQ-Options'][1] = array( 'Approved FAQs', 'edit_posts', "edit.php?post_type=ufaq&post_status=publish", "Approved FAQs" );
46
+ $submenu['EWD-UFAQ-Options'][2] = array( 'Awaiting Approval', 'edit_posts', "edit.php?post_type=ufaq&post_status=draft", "Awaiting Approval" );
47
+ $submenu['EWD-UFAQ-Options'][3] = array( 'Add New', 'edit_posts', "post-new.php?post_type=ufaq", "Add New" );
48
+ $submenu['EWD-UFAQ-Options'][4] = array( 'FAQ Categories', 'manage_categories', "edit-tags.php?taxonomy=ufaq-category&post_type=ufaq", "FAQ Categories" );
49
+ $submenu['EWD-UFAQ-Options'][5] = array( 'FAQ Tags', 'manage_categories', "edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq", "FAQ Tags" );
50
+ }
51
+ else {
52
+ $submenu['EWD-UFAQ-Options'][5] = $submenu['EWD-UFAQ-Options'][1];
53
+ $submenu['EWD-UFAQ-Options'][1] = array( 'FAQs', 'edit_posts', "edit.php?post_type=ufaq", "FAQs" );
54
+ $submenu['EWD-UFAQ-Options'][2] = array( 'Add New', 'edit_posts', "post-new.php?post_type=ufaq", "Add New" );
55
+ $submenu['EWD-UFAQ-Options'][3] = array( 'FAQ Categories', 'manage_categories', "edit-tags.php?taxonomy=ufaq-category&post_type=ufaq", "FAQ Categories" );
56
+ $submenu['EWD-UFAQ-Options'][4] = array( 'FAQ Tags', 'manage_categories', "edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq", "FAQ Tags" );
57
+ }
58
+ add_submenu_page('EWD-UFAQ-Options', 'FAQ Export', 'FAQ Export', 'edit_posts', 'EWD-UFAQ-Options&DisplayPage=Export', 'EWD_UFAQ_Output_Pages');
59
+ add_submenu_page('EWD-UFAQ-Options', 'FAQ Import', 'FAQ Import', 'edit_posts', 'EWD-UFAQ-Options&DisplayPage=ImportPosts', 'EWD_UFAQ_Output_Pages');
60
+
61
+ $submenu['EWD-UFAQ-Options'][0][0] = "Dashboard";
62
+ ksort($submenu['EWD-UFAQ-Options']);
63
  }
64
  add_action('admin_menu' , 'EWD_UFAQ_Enable_Sub_Menu');
65
 
66
+ function EWD_UFAQ_Add_Header_Bar($Called = "No") {
67
+ global $pagenow;
68
+
69
+ if ($Called != "Yes" and (!isset($_GET['post_type']) or $_GET['post_type'] != "ufaq")) {return;}
70
+
71
+ $Admin_Approval = get_option("EWD_UFAQ_Admin_Approval"); ?>
72
+
73
+ <div class="EWD_UFAQ_Menu">
74
+ <h2 class="nav-tab-wrapper">
75
+ <a id="Dashboard_Menu" href='admin.php?page=EWD-UFAQ-Options' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and ($_GET['DisplayPage'] == '' or $_GET['DisplayPage'] == 'Dashboard')) {echo 'nav-tab-active';}?>"><?php _e("Dashboard", "EWD_UFAQ"); ?></a>
76
+ <?php if ($Admin_Approval == "Yes") { ?>
77
+ <a id="Approved_FAQs_Menu" href='edit.php?post_type=ufaq&post_status=publish' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php' and (!isset($_GET['post_status']) or $_GET['post_status'] == 'publish')) {echo 'nav-tab-active';}?>"><?php _e("Approved FAQs", "EWD_UFAQ"); ?></a>
78
+ <a id="FAQs_Awaiting_Approval_Menu" href='edit.php?post_type=ufaq&post_status=draft' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php' and $_GET['post_status'] == 'draft') {echo 'nav-tab-active';}?>"><?php _e("Awaiting Approval", "EWD_UFAQ"); ?></a>
79
+ <?php } else { ?>
80
+ <a id="FAQs_Menu" href='edit.php?post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php') {echo 'nav-tab-active';}?>"><?php _e("FAQs", "EWD_UFAQ"); ?></a>
81
+ <?php } ?>
82
+ <a id="Add_New_Menu" href='post-new.php?post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'post-new.php') {echo 'nav-tab-active';}?>"><?php _e("Add New", "EWD_UFAQ"); ?></a>
83
+ <a id="FAQ_Categories_Menu" href='edit-tags.php?taxonomy=ufaq-category&post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit-tags.php' and $_GET['taxonomy'] == "ufaq-category") {echo 'nav-tab-active';}?>"><?php _e("Categories", "EWD_UFAQ"); ?></a>
84
+ <a id="FAQ_Categories_Menu" href='edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit-tags.php' and $_GET['taxonomy'] == "ufaq-tag") {echo 'nav-tab-active';}?>"><?php _e("Tags", "EWD_UFAQ"); ?></a>
85
+ <a id="Options_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=Options' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and $_GET['DisplayPage'] == 'Options') {echo 'nav-tab-active';}?>"><?php _e("Settings", "EWD_UFAQ"); ?></a>
86
+ <a id="WooCommerce_Import_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=Export' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and $_GET['DisplayPage'] == 'Export') {echo 'nav-tab-active';}?>"><?php _e("Export", "EWD_UFAQ"); ?></a>
87
+ <a id="WooCommerce_Import_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=ImportPosts' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and $_GET['DisplayPage'] == 'ImportPosts') {echo 'nav-tab-active';}?>"><?php _e("Import", "EWD_UFAQ"); ?></a>
88
+ </h2>
89
+ </div>
90
+ <?php }
91
+ add_action('admin_notices', 'EWD_UFAQ_Add_Header_Bar');
92
+
93
  /* Add localization support */
94
  function EWD_UFAQ_localization_setup() {
95
  load_plugin_textdomain('EWD_UFAQ', false, dirname(plugin_basename(__FILE__)) . '/lang/');
98
 
99
  // Add settings link on plugin page
100
  function EWD_UFAQ_plugin_settings_link($links) {
101
+ $settings_link = '<a href="admin.php?page=EWD-UFAQ-Options">Settings</a>';
102
  array_unshift($links, $settings_link);
103
  return $links;
104
  }
106
  add_filter("plugin_action_links_$plugin", 'EWD_UFAQ_plugin_settings_link' );
107
 
108
  function Add_EWD_UFAQ_Scripts() {
109
+ if ((isset($_GET['post_type']) && $_GET['post_type'] == 'ufaq') or
110
+ (isset($_GET['page']) && $_GET['page'] == 'EWD-UFAQ-Options')) {
111
  $url_one = plugins_url("ultimate-faqs/js/sorttable.js");
112
  $url_two = plugins_url("ultimate-faqs/js/Admin.js");
113
  $url_three = plugins_url("ultimate-faqs/js/spectrum.js");
250
  echo "</script>";
251
  }
252
 
253
+ function Run_UFAQ_Tutorial() {
254
+ update_option("UFAQ_Run_Tutorial", "Yes");
255
+ }
256
+
257
+ if (get_option("UFAQ_Run_Tutorial") == "Yes" and $_GET['page'] == 'EWD-UFAQ-Options') {
258
+ add_action( 'admin_enqueue_scripts', 'UFAQ_Set_Pointers', 10, 1);
259
+ }
260
+
261
+ function UFAQ_Set_Pointers($page) {
262
+ $Pointers = UFAQ_Return_Pointers();
263
+
264
+ //Arguments: pointers php file, version (dots will be replaced), prefix
265
+ $manager = new UFAQPointersManager( $Pointers, '1.0', 'ufaq_admin_pointers' );
266
+ $manager->parse();
267
+ $pointers = $manager->filter( $page );
268
+ if ( empty( $pointers ) ) { // nothing to do if no pointers pass the filter
269
+ return;
270
+ }
271
+ wp_enqueue_style( 'wp-pointer' );
272
+ $js_url = plugins_url( 'js/ewd-ufaq-pointers.js', __FILE__ );
273
+ wp_enqueue_script( 'ufaq_admin_pointers', $js_url, array('wp-pointer'), NULL, TRUE );
274
+ //data to pass to javascript
275
+ $data = array(
276
+ 'next_label' => __( 'Next' ),
277
+ 'close_label' => __('Close'),
278
+ 'pointers' => $pointers
279
+ );
280
+ wp_localize_script( 'ufaq_admin_pointers', 'MyAdminPointers', $data );
281
+ //update_option("UFAQ_Run_Tutorial", "No");
282
+ }
283
+
284
  include "Functions/Error_Notices.php";
285
  include "Functions/EWD_UFAQ_Add_Social_Media_Buttons.php";
286
  include "Functions/EWD_UFAQ_Add_Views_Column.php";
287
  include "Functions/EWD_UFAQ_Export.php";
288
+ include "Functions/EWD_UFAQ_Help_Pointers.php";
289
  include "Functions/EWD_UFAQ_Import.php";
290
  include "Functions/EWD_UFAQ_Styling.php";
291
+ include "Functions/EWD_UFAQ_Output_Pages.php";
292
+ include "Functions/EWD_UFAQ_Pointers_Manager_Interface.php";
293
+ include "Functions/EWD_UFAQ_Pointers_Manager_Class.php";
294
  include "Functions/EWD_UFAQ_Rewrite_Rules.php";
295
  include "Functions/EWD_UFAQ_Submit_Question.php";
296
  include "Functions/EWD_UFAQ_Upgrade_Box.php";
css/Admin.css CHANGED
@@ -228,3 +228,222 @@ EXTRA
228
  #ewd-ufaq-custom-fields-table th {
229
  padding: 20px 10px 20px 10px !important;
230
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  #ewd-ufaq-custom-fields-table th {
229
  padding: 20px 10px 20px 10px !important;
230
  }
231
+
232
+
233
+
234
+
235
+
236
+ /********************************
237
+ * Dashboard Styling
238
+ ********************************/
239
+ .ewd-ufaq-dark_overlay {
240
+ display: none;
241
+ position: fixed;
242
+ top: 0;
243
+ left: 0;
244
+ width: 100%;
245
+ height: 100%;
246
+ background-color: black;
247
+ z-index: 1001;
248
+ -moz-opacity: 0.3;
249
+ opacity: .80;
250
+ filter: alpha(opacity=80);
251
+ }
252
+
253
+ .ewd-ufaq-bright_content {
254
+ display: none;
255
+ position: absolute;
256
+ top: 48px;
257
+ left: 25%;
258
+ width: 50%;
259
+ height: 400px;
260
+ padding: 16px;
261
+ background-color: white;
262
+ z-index: 1002;
263
+ overflow: auto;
264
+ }
265
+ #form1 a {
266
+ color:white !important;
267
+ }
268
+ .ewd-ufaq-bright_content a img {
269
+ padding: 1em;
270
+ float: left;
271
+ }
272
+ /*Dashboard styling*/
273
+ .ewd-dashboard-top, .ewd-dashboard-middle, .ewd-dashboard-footer {
274
+ width: 90%;
275
+ margin-top: 1.5em;
276
+ }
277
+
278
+ .ewd-dashboard-middle {
279
+ box-shadow: 2px 2px 5px #666666;
280
+ background-color: white;
281
+ padding: 1em;
282
+ }
283
+
284
+ .ewd-dashboard-middle > table.widefat {
285
+
286
+ border: 0px !important;
287
+ box-shadow: none !important;
288
+ }
289
+
290
+ .ewd-dashboard-footer {
291
+ padding-left: 1.25em;
292
+ }
293
+
294
+ #wpfooter {
295
+ bottom: initial;
296
+ }
297
+ .ewd-ufaq-dashboard-submit {
298
+ height: 40px !important;
299
+ width: 150px;
300
+ background-color: #8dc73f !important;
301
+ border-radius: 0px !important;
302
+ box-shadow: none !important;
303
+ color: white !important;
304
+ }
305
+
306
+ .ewd-ufaq-dashboard-table {
307
+ border: 0px !important;
308
+ box-shadow: none !important;
309
+ }
310
+
311
+ .ewd-ufaq-dashboard-select {
312
+ height: 40px !important;
313
+ }
314
+
315
+ .ewd-ufaq-updates, .ewd-ufaq-blog, .ewd-ufaq-plugins {
316
+ width: 30%;
317
+ display: inline-block;
318
+ position: relative;
319
+ float: left;
320
+ height: 300px;
321
+ margin-right: 1em;
322
+ box-shadow: 2px 2px 5px #666666;
323
+ padding: 0.5em;
324
+ }
325
+
326
+ .ewd-ufaq-dashboard-box {
327
+ color: white;
328
+ width: 20%;
329
+ display: inline-block;
330
+ height: 80px;
331
+ margin-right: 25px;
332
+ padding: 5px 5px 5px 5px;
333
+ box-shadow: 2px 2px 5px #666666;
334
+ }
335
+ .ewd-ufaq-dashboard-box a {
336
+ text-decoration: none;
337
+ }
338
+
339
+ .ewd-ufaq-dashboard-h3 {
340
+ color:grey;
341
+ }
342
+
343
+ .ewd-dashboard-box-icon {
344
+ width: 40%;
345
+ height: 95%;
346
+ display: inline-block;
347
+ margin-left: 0.5em;
348
+ }
349
+
350
+ .ewd-dashboard-box-icon > img {
351
+ height: 100%;
352
+ opacity: 0.75;
353
+ }
354
+
355
+ .ewd-dashboard-box-value-and-field-container {
356
+ float:right;
357
+ padding-top: 0.5em;
358
+ padding-right: 0.5em;
359
+ width: 50%;
360
+ display:inline-block;
361
+ }
362
+ .ewd-dashboard-box-support-value {
363
+ font-size: 22px;
364
+ line-height: 1;
365
+ text-align:right;
366
+ }
367
+ .ewd-dashboard-box-value {
368
+ font-size: 42px;
369
+ line-height: 1;
370
+ text-align: right;
371
+ }
372
+ .ewd-dashboard-box-field {
373
+ text-align: right;
374
+ }
375
+
376
+ #ewd-dashboard-box-orders {
377
+ background-color: #f7941d;
378
+ }
379
+ #ewd-dashboard-box-links {
380
+ background-color: #00bff3;
381
+ }
382
+ #ewd-dashboard-box-views {
383
+ background-color: #662d91;
384
+ }
385
+ #ewd-dashboard-box-support {
386
+ background-color: #ed1c24;
387
+ cursor: pointer;
388
+ }
389
+
390
+ #ewd-ufaq-dashboard-thead tr th {
391
+ border-bottom: none;
392
+ }
393
+ #ewd-ufaq-dashboard-thead tr th a {
394
+ padding: none !important;
395
+ }
396
+ #ewd-ufaq-dashboard-thead tr th a, #ewd-ufaq-dashboard-tbody tr td {
397
+ width: 150px;
398
+
399
+ }
400
+ #ewd-ufaq-dashboard-tbody tr td {
401
+ padding: 8px;
402
+ }
403
+ #ewd-ufaq-dashboard-thead tr th a span {
404
+ text-transform: uppercase;
405
+ color: #595959;
406
+ }
407
+ #ewd-ufaq-dashboard-tbody, #ewd-ufaq-dashboard-thead {
408
+ display: block;
409
+ }
410
+
411
+ #ewd-ufaq-dashboard-tbody {
412
+ height:300px;
413
+ overflow-y: scroll;
414
+ }
415
+ .ewd-ufaq-dashboard-h3 {
416
+ margin: 0 !important;
417
+ padding: 0.5em;
418
+ }
419
+ .ewd-ufaq-dashboard-h3 .fa {
420
+ float: right;
421
+ font-size: larger;
422
+ }
423
+
424
+
425
+ .ewd-dashboard-content {
426
+ padding: 8px 12px;
427
+ margin: 0;
428
+ }
429
+ .ewd-dashboard-content a {
430
+ text-decoration: none;
431
+ }
432
+ .ewd-dashboard-content a:hover {
433
+ text-decoration: underline;
434
+ }
435
+
436
+ .ewd-dashboard-plugin-icons {
437
+ width: 90%;
438
+ margin-right: 5%;
439
+ }
440
+ #ewd-dashboard-plugins div.inside {
441
+ display: inline-flex;
442
+ }
443
+
444
+ #light a {
445
+ text-decoration: none;
446
+ }
447
+ #light a:hover {
448
+ text-decoration: underline;
449
+ }
html/AdminHeader.php CHANGED
@@ -1,4 +1,5 @@
1
  <div class="wrap">
2
  <div class="Header"><h2><?php _e("Ultimate FAQ Settings", 'EWD_UFAQ') ?></h2></div>
3
 
 
4
 
1
  <div class="wrap">
2
  <div class="Header"><h2><?php _e("Ultimate FAQ Settings", 'EWD_UFAQ') ?></h2></div>
3
 
4
+ <?php EWD_UFAQ_Add_Header_Bar("Yes"); ?>
5
 
html/DashboardPage.php ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- Upgrade to pro link box -->
2
+ <!-- TOP BOX-->
3
+
4
+ <?php
5
+ global $wpdb;
6
+ $Slug_Base = get_option("EWD_UFAQ_Slug_Base");
7
+ ?>
8
+
9
+ <div id="fade" class="ewd-ufaq-dark_overlay"></div>
10
+
11
+ <div id="ewd-dashboard-top" class="metabox-holder">
12
+ <?php if ($UFAQ_Full_Version != "Yes") { ?>
13
+ <div id="side-sortables" class="metabox-holder ">
14
+ <div id="upcp_pro" class="postbox " >
15
+ <div class="handlediv" title="Click to toggle"></div><h3 class='hndle'><span><?php _e("Full Version", 'EWD_UFAQ') ?></span></h3>
16
+ <div class="inside">
17
+ <ul><li><a href="http://www.etoilewebdesign.com/plugins/ultimate-faqs/"><?php _e("Upgrade to the full version ", "EWD_UFAQ"); ?></a><?php _e("to take advantage of all the available features of Ultimate FAQs for Wordpress!", 'EWD_UFAQ'); ?></li></ul>
18
+ <h3 class='hndle'><span><?php _e("What you get by upgrading:", 'EWD_UFAQ') ?></span></h3>
19
+ <ul>
20
+ <li>Ability to add a unique FAQ tab to each WooCommerce product page.</li>
21
+ <li>Premium shortcodes to accept questions from users and insert an AJAX FAQ search.</li>
22
+ <li>Additional FAQ style skins, dozens of styling and labeling options and much more!</li>
23
+ <li>Access to e-mail support.</li>
24
+ </ul>
25
+ <div class="full-version-form-div">
26
+ <form action="edit.php?post_type=ufaq" method="post">
27
+ <div class="form-field form-required">
28
+ <label for="Key"><?php _e("Product Key", 'EWD_UFAQ') ?></label>
29
+ <input name="Key" type="text" value="" size="40" />
30
+ </div>
31
+ <input type="submit" name="Upgrade_To_Full" value="<?php _e('Upgrade', 'EWD_UFAQ') ?>">
32
+ </form>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ <?php } ?>
38
+
39
+ <?php
40
+ EWD_UFAQ_Get_EWD_Blog();
41
+ EWD_UFAQ_Get_Changelog();
42
+ /*
43
+ if (get_option("EWD_UFAQ_Update_Flag") == "Yes" or get_option("EWD_UFAQ_Install_Flag") == "Yes") {?>
44
+ <div id="side-sortables" class="metabox-holder ">
45
+ <div id="EWD_UFAQ_pro" class="postbox " >
46
+ <div class="handlediv" title="Click to toggle"></div>
47
+ <h3 class='hndle'><span><?php _e("Thank You!", 'EWD_UFAQ') ?></span></h3>
48
+ <div class="inside">
49
+ <?php if (get_option("EWD_UFAQ_Install_Flag") == "Yes") { ?><ul><li><?php _e("Thanks for installing the Ultimate FAQs plugin.", "EWD_UFAQ"); ?><br> <a href='https://www.youtube.com/channel/UCZPuaoetCJB1vZOmpnMxJNw'><?php _e("Subscribe to our YouTube channel ", "EWD_UFAQ"); ?></a> <?php _e("for tutorial videos on this and our other plugins!", "EWD_UFAQ");?> </li></ul>
50
+ <?php } else { ?><ul><li><?php _e("Thanks for upgrading to version 1.3.1!", "EWD_UFAQ"); ?><br> <a href='https://wordpress.org/support/view/plugin-reviews/ultimate-faqs?filter=5'><?php _e("Please rate our plugin", "EWD_UFAQ"); ?></a> <?php _e("if you find Ultimate FAQs useful!", "EWD_UFAQ");?> </li></ul><?php } ?>
51
+
52
+ <?php /* if (get_option("EWD_UFAQ_Install_Flag") == "Yes") { ?><ul><li><?php _e("Thanks for installing the Ultimate Product Catalogue Plugin.", "EWD_UFAQ"); ?><br> <a href='http://www.facebook.com/EtoileWebDesign'><?php _e("Follow us on Facebook", "EWD_UFAQ"); ?></a> <?php _e("to suggest new features or hear about upcoming ones!", "EWD_UFAQ");?> </li></ul>
53
+ <?php } else { ?><ul><li><?php _e("Thanks for upgrading to version 2.2.9!", "EWD_UFAQ"); ?><br> <a href='http://www.facebook.com/EtoileWebDesign'><?php _e("Follow us on Facebook", "EWD_UFAQ"); ?></a> <?php _e("to suggest new features or hear about upcoming ones!", "EWD_UFAQ");?> </li></ul><?php } */ ?>
54
+
55
+ <?php /* if (get_option("EWD_UFAQ_Install_Flag") == "Yes") { ?><ul><li><?php _e("Thanks for installing the Ultimate Product Catalogue Plugin.", "EWD_UFAQ"); ?><br> <a href='http://www.facebook.com/EtoileWebDesign'><?php _e("Follow us on Facebook", "EWD_UFAQ"); ?></a> <?php _e("to suggest new features or hear about upcoming ones!", "EWD_UFAQ");?> </li></ul>
56
+ <?php } else { ?><ul><li><?php _e("Thanks for upgrading to version 3.0.16!", "EWD_UFAQ"); ?><br> <a href='http://wordpress.org/support/view/plugin-reviews/ultimate-product-catalogue'><?php _e("Please rate our plugin", "EWD_UFAQ"); ?></a> <?php _e("if you find the Ultimate Product Catalogue Plugin useful!", "EWD_UFAQ");?> </li></ul><?php } */ ?>
57
+
58
+ <?php /* if (get_option("EWD_UFAQ_Install_Flag") == "Yes") { ?><ul><li><?php _e("Thanks for installing the Ultimate Product Catalogue Plugin.", "EWD_UFAQ"); ?><br> <a href='http://www.facebook.com/EtoileWebDesign'><?php _e("Follow us on Facebook", "EWD_UFAQ"); ?></a> <?php _e("to suggest new features or hear about upcoming ones!", "EWD_UFAQ");?> </li></ul>
59
+ <?php } else { ?><ul><li><?php _e("Thanks for upgrading to version 3.4.8!", "EWD_UFAQ"); ?><br> <a href='http://wordpress.org/plugins/order-tracking/'><?php _e("Try out order tracking plugin ", "EWD_UFAQ"); ?></a> <?php _e("if you ship orders and find the Ultimate Product Catalogue Plugin useful!", "EWD_UFAQ");?> </li></ul><?php } */ ?>
60
+
61
+ <?php /* if (get_option("EWD_UFAQ_Install_Flag") == "Yes") { ?><ul><li><?php _e("Thanks for installing the Ultimate Product Catalogue Plugin.", "EWD_UFAQ"); ?><br> <a href='http://www.facebook.com/EtoileWebDesign'><?php _e("Follow us on Facebook", "EWD_UFAQ"); ?></a> <?php _e("to suggest new features or hear about upcoming ones!", "EWD_UFAQ");?> </li></ul>
62
+ <?php } else { ?><ul><li><?php _e("Thanks for upgrading to version 2.3.9!", "EWD_UFAQ"); ?><br> <a href='http://wordpress.org/support/topic/error-hunt'><?php _e("Please let us know about any small display/functionality errors. ", "EWD_UFAQ"); ?></a> <?php _e("We've noticed a couple, and would like to eliminate as many as possible.", "EWD_UFAQ");?> </li></ul><?php } */ ?>
63
+
64
+ <?php /* if (get_option("EWD_UFAQ_Install_Flag") == "Yes") { ?><ul><li><?php _e("Thanks for installing the Ultimate Product Catalogue Plugin.", "EWD_UFAQ"); ?><br> <a href='https://www.youtube.com/channel/UCZPuaoetCJB1vZOmpnMxJNw'><?php _e("Check out our YouTube channel ", "EWD_UFAQ"); ?></a> <?php _e("for tutorial videos on this and our other plugins!", "EWD_UFAQ");?> </li></ul>
65
+ <?php } elseif ($Full_Version == "Yes") { ?><ul><li><?php _e("Thanks for upgrading to version 3.5.0!", "EWD_UFAQ"); ?><br> <a href='http://www.facebook.com/EtoileWebDesign'><?php _e("Follow us on Facebook", "EWD_UFAQ"); ?></a> <?php _e("to suggest new features or hear about upcoming ones!", "EWD_UFAQ");?> </li></ul>
66
+ <?php } else { ?><ul><li><?php _e("Thanks for upgrading to version 3.4!", "EWD_UFAQ"); ?><br> <?php _e("Love the plugin but don't need the premium version? Help us speed up product support and development by donating. Thanks for using the plugin!", "EWD_UFAQ");?>
67
+ <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
68
+ <input type="hidden" name="cmd" value="_s-xclick">
69
+ <input type="hidden" name="hosted_button_id" value="AQLMJFJ62GEFJ">
70
+ <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
71
+ <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
72
+ </form>
73
+ </li></ul>
74
+ <?php } ?>
75
+
76
+ </div>
77
+ </div>
78
+ </div>
79
+ <?php
80
+ EWD_UFAQ_Get_EWD_Blog();
81
+ EWD_UFAQ_Get_Changelog();
82
+ update_option('EWD_UFAQ_Update_Flag', "No");
83
+ update_option('EWD_UFAQ_Install_Flag', "No");
84
+ }*/
85
+ ?>
86
+
87
+
88
+ <div id="ewd-dashboard-box-orders" class="ewd-ufaq-dashboard-box" >
89
+ <div class="ewd-dashboard-box-icon"><img src="<?php echo plugins_url(); ?>/ultimate-faqs/images/ewd-dashboard-icon-ufaq-01.png"/>
90
+ </div>
91
+ <div class="ewd-dashboard-box-value-and-field-container">
92
+ <div class="ewd-dashboard-box-value"><span class="displaying-num"><?php echo $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type='ufaq' AND post_status='publish'"); ?></span>
93
+ </div>
94
+ <div class="ewd-dashboard-box-field">FAQs
95
+ </div>
96
+ </div>
97
+ </div>
98
+ <div id="ewd-dashboard-box-views" class="ewd-ufaq-dashboard-box" >
99
+ <div class="ewd-dashboard-box-icon"><img src="<?php echo plugins_url(); ?>/ultimate-faqs/images/ewd-dashboard-icon-ufaq-02.png"/>
100
+ </div>
101
+ <div class="ewd-dashboard-box-value-and-field-container">
102
+ <div class="ewd-dashboard-box-value"><?php echo $wpdb->get_var("SELECT SUM(meta_value) FROM $wpdb->postmeta WHERE meta_key='ufaq_view_count'"); ?>
103
+ </div>
104
+ <div class="ewd-dashboard-box-field">Views
105
+ </div>
106
+ </div>
107
+ </div>
108
+ <div id="ewd-dashboard-box-links" class="ewd-ufaq-dashboard-box" >
109
+ <div class="ewd-dashboard-box-icon"><img src="<?php echo plugins_url(); ?>/ultimate-faqs/images/ewd-dashboard-icon-ufaq-03.png"/>
110
+ </div>
111
+ <div class="ewd-dashboard-box-value-and-field-container">
112
+ <div class="ewd-dashboard-box-value"><?php echo $wpdb->get_var("SELECT meta_value FROM $wpdb->postmeta WHERE meta_key='ufaq_view_count' ORDER BY meta_value DESC"); ?>
113
+ </div>
114
+ <div class="ewd-dashboard-box-field">Most FAQ Views
115
+ </div>
116
+ </div>
117
+ </div>
118
+
119
+ <div id="ewd-dashboard-box-support" class="ewd-ufaq-dashboard-box" >
120
+ <div class="ewd-dashboard-box-icon"><img src="<?php echo plugins_url(); ?>/ultimate-faqs/images/ufaq-buttonsicons-04.png"/>
121
+ </div>
122
+ <div class="ewd-dashboard-box-value-and-field-container">
123
+ <div class="ewd-dashboard-box-support-value">
124
+ <form id="form1" runat="server">
125
+ <a href="javascript:void(0)" onclick="document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">Click here for support</a>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ <div id="light" class="ewd-ufaq-bright_content">
130
+ <asp:Label ID="lbltext" runat="server" Text="Hey there!"></asp:Label>
131
+ <a href="javascript:void(0)" onclick="document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">Close</a>
132
+ </br>
133
+ <h2>Need help?</h2>
134
+ <p>You may find the information you need with our support tools.</p>
135
+ <a href="https://www.youtube.com/playlist?list=PLEndQUuhlvSrNdfu5FKa1uGHsaKZxgdWt"><img src="<?php echo plugins_url(); ?>/ultimate-faqs/images/support_icons_ufaq-01.png" /></a>
136
+ <a href="https://www.youtube.com/playlist?list=PLEndQUuhlvSrNdfu5FKa1uGHsaKZxgdWt"><h4>Youtube Tutorials</h4></a>
137
+ <p>Our tutorials show you the basics of setting up your plugin, to the more specific utilization of our features.</p>
138
+ <div class="ewd-ufaq-clear"></div>
139
+ <a href="https://wordpress.org/support/plugin/ultimate-faqs"><img src="<?php echo plugins_url(); ?>/ultimate-faqs/images/support_icons_ufaq-03.png"/></a>
140
+ <a href="https://wordpress.org/support/plugin/ultimate-faqs"><h4>WordPress Forum</h4></a>
141
+ <p>We make sure to answer your questions within a 24hrs frame during our business days. Search within our threads to find your answers. If it has not been addressed, please create a new thread!</p>
142
+ <div class="ewd-ufaq-clear"></div>
143
+ <a href="http://www.etoilewebdesign.com/plugins/ultimate-faq/documentation-ultimate-faq/"><img src="<?php echo plugins_url(); ?>/ultimate-faqs/images/support_icons_ufaq-02.png"/></a>
144
+ <a href="http://www.etoilewebdesign.com/plugins/ultimate-faq/documentation-ultimate-faq/"><h4>Documentation</h4></a>
145
+ <p>Most information concerning the installation, the shortcodes and the features are found within our documentation page.</p>
146
+ </div>
147
+ </form>
148
+
149
+ <!--END TOP BOX-->
150
+ </div>
151
+
152
+
153
+
154
+ <!--Middle box-->
155
+ <div class="ewd-dashboard-middle">
156
+ <div id="col-full">
157
+ <h3 class="ewd-ufaq-dashboard-h3">Reviews Summary</h3>
158
+ <div>
159
+ <table class='ewd-ufaq-overview-table wp-list-table widefat fixed striped posts'>
160
+ <thead>
161
+ <tr>
162
+ <th><?php _e("Title", 'EWD_ABCO'); ?></th>
163
+ <th><?php _e("Views", 'EWD_ABCO'); ?></th>
164
+ <th><?php _e("Categories", 'EWD_ABCO'); ?></th>
165
+ </tr>
166
+ </thead>
167
+ <tbody>
168
+ <?php
169
+ $args = array(
170
+ 'post_type' => 'ufaq',
171
+ 'orderby' => 'meta_value_num',
172
+ 'meta_key' => 'ufaq_view_count'
173
+ );
174
+
175
+ $Dashboard_FAQs_Query = new WP_Query($args);
176
+ $Dashboard_FAQs = $Dashboard_FAQs_Query->get_posts();
177
+
178
+ if (sizeOf($Dashboard_FAQs) == 0) {echo "<tr><td colspan='3'>" . __("No FAQs to display yet. Create an FAQ and then view it for it to be displayed here.", 'EWD_UFAQ') . "</td></tr>";}
179
+ else {
180
+ foreach ($Dashboard_FAQs as $Dashboard_FAQ) { ?>
181
+ <tr>
182
+ <td><a href='post.php?post=<?php echo $Dashboard_FAQ->ID;?>&action=edit'><?php echo $Dashboard_FAQ->post_title; ?></a></td>
183
+ <td><?php echo get_post_meta($Dashboard_FAQ->ID, 'ufaq_view_count', true); ?></td>
184
+ <td><?php echo EWD_UFAQ_Get_Categories($Dashboard_FAQ->ID); ?></td>
185
+ </tr>
186
+ <?php }
187
+ }
188
+ ?>
189
+ </tbody>
190
+ </table>
191
+ </div>
192
+ <br class="clear" />
193
+ </div>
194
+ </div>
195
+ <!-- END MIDDLE BOX -->
196
+
197
+ <!-- FOOTER BOX -->
198
+ <!-- A list of the products in the catalogue -->
199
+ <div class="ewd-dashboard-footer">
200
+ <div id='ewd-dashboard-updates' class='ewd-ufaq-updates postbox upcp-postbox-collapsible'>
201
+ <h3 class='hndle ewd-ufaq-dashboard-h3' id='ewd-recent-changes'><?php _e("Recent Changes", 'UPCP'); ?> <i class="fa fa-cog" aria-hidden="true"></i></h3>
202
+ <div class='ewd-dashboard-content' ><?php echo get_option('EWD_UFAQ_Changelog_Content'); ?></div>
203
+ </div>
204
+
205
+ <div id='ewd-dashboard-blog' class='ewd-ufaq-blog postbox upcp-postbox-collapsible'>
206
+ <h3 class='hndle ewd-ufaq-dashboard-h3'>News <i class="fa fa-rss" aria-hidden="true"></i></h3>
207
+ <div class='ewd-dashboard-content'><?php echo get_option('EWD_UFAQ_Blog_Content'); ?></div>
208
+ </div>
209
+
210
+ <div id="ewd-dashboard-plugins" class='ewd-ufaq-plugins postbox upcp-postbox-collapsible' >
211
+ <h3 class='hndle ewd-ufaq-dashboard-h3'><span><?php _e("Goes great with:", 'UPCP') ?></span><i class="fa fa-plug" aria-hidden="true"></i></h3>
212
+ <div class="inside">
213
+ <div class="ewd-dashboard-plugin-icons">
214
+ <div style="width:50%">
215
+ <a target='_blank' href='https://wordpress.org/plugins/ultimate-product-catalogue/'><img style="width:100%" src='<?php echo plugins_url(); ?>/ultimate-faqs/images/UPCP_Icons-07-300x300.png'/></a>
216
+ </div>
217
+ <div>
218
+ <h3>Product Catalog</h3> <p>Enables you to display your business's products in a clean and efficient manner.</p>
219
+ </div>
220
+
221
+ </div>
222
+ <div class="ewd-dashboard-plugin-icons">
223
+ <div style="width:50%">
224
+ <a target='_blank' href='https://wordpress.org/plugins/ultimate-slider/'><img style="width:100%" src='<?php echo plugins_url(); ?>/ultimate-faqs/images/US_Related_Sales_Icon.png'/></a>
225
+ </div>
226
+ <div>
227
+ <h3>Ultimate Slider</h3><p>An easy-to-use slider plugin that lets you add a clean, modern, responsive slider to any WordPress page.</p>
228
+ </div>
229
+
230
+ </div>
231
+ </div>
232
+ </div>
233
+ </div>
234
+ </div>
235
+
236
+
237
+ <?php
238
+ function EWD_UFAQ_Get_EWD_Blog() {
239
+ $Blog_URL = EWD_UFAQ_CD_PLUGIN_PATH . 'Blog.html';
240
+ $Blog = file_get_contents($Blog_URL);
241
+
242
+ update_option('EWD_UFAQ_Blog_Content', $Blog);
243
+ }
244
+
245
+ function EWD_UFAQ_Get_Changelog() {
246
+ $Readme_URL = EWD_UFAQ_CD_PLUGIN_PATH . 'readme.txt';
247
+ $Readme = file_get_contents($Readme_URL);
248
+
249
+ $Changes_Start = strpos($Readme, "== Changelog ==") + 15;
250
+ $Changes_Section = substr($Readme, $Changes_Start);
251
+
252
+ $Changes_Text = substr($Changes_Section, 0, strposX($Changes_Section, "=", 5));
253
+
254
+ $Changes_Text = str_replace("= ", "<h3>", $Changes_Text);
255
+ $Changes_Text = str_replace(" =", "</h3>", $Changes_Text);
256
+ $Changes_Text = str_replace("- ", "<br />- ", $Changes_Text);
257
+
258
+ update_option('EWD_UFAQ_Changelog_Content', $Changes_Text);
259
+ }
260
+
261
+ function strposX($haystack, $needle, $number){
262
+ if($number == '1'){
263
+ return strpos($haystack, $needle);
264
+ }elseif($number > '1'){
265
+ return strpos($haystack, $needle, strposX($haystack, $needle, $number - 1) + strlen($needle));
266
+ }else{
267
+ return error_log('Error: Value for parameter $number is out of range');
268
+ }
269
+ }
270
+
271
+ ?>
images/UPCP_Icons-07-300x300.png ADDED
Binary file
images/URP_Icons-03.png ADDED
Binary file
images/US_Related_Sales_Icon.png ADDED
Binary file
images/ewd-dashboard-icon-ufaq-01.png ADDED
Binary file
images/ewd-dashboard-icon-ufaq-02.png ADDED
Binary file
images/ewd-dashboard-icon-ufaq-03.png ADDED
Binary file
images/support_icons_ufaq-01.png ADDED
Binary file
images/support_icons_ufaq-02.png ADDED
Binary file
images/support_icons_ufaq-03.png ADDED
Binary file
images/ufaq-buttonsicons-04.png ADDED
Binary file
js/ewd-ufaq-pointers.js ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function() {
2
+ var Closed = false;
3
+ jQuery('.ewd-ufaq-pointer-exit').on('click', function() {
4
+ Closed = true;
5
+ })
6
+ });
7
+
8
+ ( function($, MAP) {
9
+
10
+ $(document).on( 'MyAdminPointers.setup_done', function( e, data ) {
11
+ e.stopImmediatePropagation();
12
+ MAP.setPlugin( data ); // open first popup
13
+ } );
14
+
15
+ $(document).on( 'MyAdminPointers.current_ready', function( e ) {
16
+ e.stopImmediatePropagation();
17
+ MAP.openPointer(); // open a popup
18
+ } );
19
+
20
+ MAP.js_pointers = {}; // contain js-parsed pointer objects
21
+ MAP.first_pointer = false; // contain first pointer anchor jQuery object
22
+ MAP.current_pointer = false; // contain current pointer jQuery object
23
+ MAP.last_pointer = false; // contain last pointer jQuery object
24
+ MAP.visible_pointers = []; // contain ids of pointers whose anchors are visible
25
+
26
+ MAP.hasNext = function( data ) { // check if a given pointer has valid next property
27
+ return typeof data.next === 'string'
28
+ && data.next !== ''
29
+ && typeof MAP.js_pointers[data.next].data !== 'undefined'
30
+ && typeof MAP.js_pointers[data.next].data.id === 'string';
31
+ };
32
+
33
+ MAP.isVisible = function( data ) { // check if anchor for given pointer is visible
34
+ return $.inArray( data.id, MAP.visible_pointers ) !== -1;
35
+ };
36
+
37
+ // given a pointer object, return its the anchor jQuery object if available
38
+ // otherwise return first available, lookin at next property of subsequent pointers
39
+ MAP.getPointerData = function( data ) {
40
+ var $target = $( data.anchor_id );
41
+ if ( $.inArray(data.id, MAP.visible_pointers) !== -1 ) {
42
+ return { target: $target, data: data };
43
+ }
44
+ $target = false;
45
+ while( MAP.hasNext( data ) && ! MAP.isVisible( data ) ) {
46
+ data = MAP.js_pointers[data.next].data;
47
+ if ( MAP.isVisible( data ) ) {
48
+ $target = $(data.anchor_id);
49
+ }
50
+ }
51
+ return MAP.isVisible( data )
52
+ ? { target: $target, data: data }
53
+ : { target: false, data: false };
54
+ };
55
+
56
+ // take pointer data and setup pointer plugin for anchor element
57
+ MAP.setPlugin = function( data ) {
58
+ if ( typeof MAP.last_pointer === 'object') {
59
+ MAP.last_pointer.pointer('destroy');
60
+ MAP.last_pointer = false;
61
+ }
62
+ MAP.current_pointer = false;
63
+ var pointer_data = MAP.getPointerData( data );
64
+ if ( ! pointer_data.target || ! pointer_data.data ) {
65
+ return;
66
+ }
67
+ $target = pointer_data.target;
68
+ data = pointer_data.data;
69
+ $pointer = $target.pointer({
70
+ pointerWidth: data.width,
71
+ content: data.title + data.content,
72
+ position: { edge: data.edge, align: data.align },
73
+ close: function(event) {
74
+ // open next pointer if it exists
75
+ ShowTab(data.nextTab);
76
+ if ( MAP.hasNext( data ) ) {
77
+ MAP.setPlugin( MAP.js_pointers[data.next].data );
78
+ }
79
+ $.post( ajaxurl, { pointer: data.id, action: 'dismiss-wp-pointer' } );
80
+ }
81
+ });
82
+ MAP.current_pointer = { pointer: $pointer, data: data };
83
+ $(document).trigger( 'MyAdminPointers.current_ready' );
84
+ };
85
+
86
+ // scroll the page to current pointer then open it
87
+ MAP.openPointer = function() {
88
+ var $pointer = MAP.current_pointer.pointer;
89
+ if ( ! typeof $pointer === 'object' ) {
90
+ return;
91
+ }
92
+ $('html, body').animate({ // scroll page to pointer
93
+ scrollTop: $pointer.offset().top - 30
94
+ }, 300, function() { // when scroll complete
95
+ MAP.last_pointer = $pointer;
96
+ var $widget = $pointer.pointer('widget');
97
+ MAP.setNext( $widget, MAP.current_pointer.data );
98
+ $pointer.pointer( 'open' ); // open
99
+ });
100
+ };
101
+
102
+ // if there is a next pointer set button label to "Next", to "Close" otherwise
103
+ MAP.setNext = function( $widget, data ) {
104
+ if ( typeof $widget === 'object' ) {
105
+ var $buttons = $widget.find('.wp-pointer-buttons').eq(0);
106
+ var $close = $buttons.find('a.close').eq(0);
107
+ $button = $close.clone(true, true).removeClass('close');
108
+ $buttons.find('a.close').remove();
109
+ $button.addClass('button').addClass('button-primary');
110
+ has_next = false;
111
+ if ( MAP.hasNext( data ) ) {
112
+ has_next_data = MAP.getPointerData(MAP.js_pointers[data.next].data);
113
+ has_next = has_next_data.target && has_next_data.data;
114
+ }
115
+ var label = has_next ? MAP.next_label : MAP.close_label;
116
+ $button.html(label).appendTo($buttons);
117
+ }
118
+ };
119
+
120
+ $(MAP.pointers).each(function(index, pointer) { // loop pointers data
121
+ if( ! $().pointer ) return; // do nothing if pointer plugin isn't available
122
+ MAP.js_pointers[pointer.id] = { data: pointer };
123
+ var $target = $(pointer.anchor_id);
124
+ //if ( $target.length && $target.is(':visible') ) { // anchor exists and is visible?
125
+ if ( $target.length ) { // anchor exists and is visible?
126
+ MAP.visible_pointers.push(pointer.id);
127
+ if ( ! MAP.first_pointer ) {
128
+ MAP.first_pointer = pointer;
129
+ }
130
+ }
131
+ if ( index === ( MAP.pointers.length - 1 ) && MAP.first_pointer ) {
132
+ $(document).trigger( 'MyAdminPointers.setup_done', MAP.first_pointer );
133
+ }
134
+ });
135
+
136
+ } )(jQuery, MyAdminPointers); // MyAdminPointers is passed by `wp_localize_script`
readme.txt CHANGED
@@ -1,367 +1,378 @@
1
- === FAQ ===
2
- Contributors: Rustaurius, EtoileWebDesign
3
- Tags: FAQ, FAQs, easy FAQ, simple FAQ, FAQ categories, FAQ answer, faq page, FAQ Plugin, WooCommerce FAQ, frequently asked questions, questions, FAQ questions, wordpress faq, FAQ list, FAQ custom post type, faq list, faq accordion, jquery faq, jquery-ui, faq shortcode, faq widget, AJAX FAQ, responsive faq, submit questions,
4
- Requires at least: 3.9.0
5
- Tested up to: 4.5
6
- License: GPLv3
7
- License URI:http://www.gnu.org/licenses/gpl-3.0.html
8
-
9
- FAQ plugin that lets you easily create, order and publicize FAQs, insert 3 styles of FAQs on a page or WooCommerce product, and use AJAX FAQ search using FAQ shortcodes
10
-
11
- == Description ==
12
-
13
- <a href='http://www.etoilewebdesign.com/ultimate-faq-demo/'>FAQ Demo</a>
14
-
15
- [youtube https://www.youtube.com/watch?v=xeGVZnVrZ6I]
16
-
17
- FAQ plugin that lets you create FAQ, organize FAQ and publicize your FAQ in no time through your Wordpress admin panel. Select from multiple FAQ styles and FAQ layouts. You can use either the accordion FAQ style, to display one FAQ answer on click, or the list FAQ style, to have FAQ answers displayed by default. FAQ features include FAQ statistics that show how many times FAQs have been viewed, FAQ styling options, FAQ categories and FAQ tags, FAQ display and FAQ ordering options, among many other FAQ options. Includes an FAQ shortcode helper, that lets you create FAQ shortcodes with FAQ attributes without having to manually enter FAQs. Ultimate FAQ also works great for any content that works similarly to FAQ and that needs to be hidden until it is clicked, like job postings, recipes, etc.!
18
-
19
- Want to decide exactly what order your FAQs are displayed in? Use our simple FAQ drag-and-drop reordering feature! Create SEO-friendly FAQ links to individual FAQ posts to simply direct customers to exactly the right FAQ answer, right away. You can even let your customers add to your custom FAQ list with the [submit-question] smart FAQ shortcode, which lets visitors submit an FAQ question and even propose an FAQ answer for it! Easily add links to your FAQ to popular social media, such as Facebook, Twitter and Pinterest so that your customers can help you spread the word about your FAQ!
20
-
21
- = Add FAQ to WooCommerce! =
22
-
23
- Using WooCommerce to sell your products? Easily add an FAQ tab to each product page, so your customers can see answers to common FAQ questions about the products they're browsing. It's the most comprehensive FAQ solution for WooCommerce!
24
-
25
- This FAQ plugin is great for combining with our <a href='https://wordpress.org/plugins/front-end-only-users/'>user management plugin </a> to create a member's only FAQ area.
26
-
27
- Ultimate FAQ uses the WordPress custom post type functionality to create an FAQ post type, allowing for smart and easy FAQ integration.
28
-
29
- = Key FAQ Features =
30
- * Unlimited FAQ, unlimited FAQ tag and unlimited FAQ category support
31
- * Create FAQ categories
32
- * Create FAQ posts and assign categories to them
33
- * An AJAX FAQ search form
34
- * Export all FAQs to a PDF to create a user manual
35
- * Insert custom CSS to style your FAQ posts
36
- * Select FAQ animation options for displaying FAQ posts
37
- * Toggle FAQ accordion (close open FAQ when a new one is opened) behaviour on/off
38
- * Share FAQ on social media
39
- * Responsive FAQ design
40
-
41
- = Premium FAQ features include =
42
- * WooCommerce FAQ tab with specific FAQs for each product on product page (<a href='https://www.youtube.com/watch?v=cH3p0fW4c5o'>YouTube Video</a>)
43
- * Different FAQ display styles for your frequently asked questions
44
- * User-submitted FAQs
45
- * AJAX easy FAQ search with autocomplete for FAQ titles
46
- * Import/Export of FAQs from spreadsheet
47
- * Export FAQs to PDF
48
- * SEO-Friendly FAQ, FAQ category and FAQ tag permalinks
49
- * Advanced FAQ styling options
50
- * Re-ordering of FAQs
51
-
52
- = FAQ Shortcodes =
53
-
54
- * [ultimate-faqs]: display all FAQs, or only specific FAQ categories using include_category and exclude_category attributes (both take a comma-separated list of category slugs)
55
- * [popular-faqs]: displays a number of the most viewed FAQs (5 unless specified).
56
- * [recent-faqs]: displays a number of the most recently added FAQs (5 unless specified).
57
- * [select-faq]: display specific FAQ posts, using the attributes faq_name, faq_slug and faq_id which take comma-separated lists of FAQ post names, FAQ slugs and FAQ ids respectively.
58
- * [ultimate-faq-search]: display an FAQ search form that allows users to find FAQs with a specific string in the FAQ title or body of the FAQ post (premium).
59
- * [submit-question]: display a form that allows users to submit FAQs of their own and, if enabled, enter an FAQ answer to their submitted FAQ question as well (premium).
60
-
61
- Check out our Frequently Asked Questions here:
62
- <https://wordpress.org/plugins/ultimate-faqs/faq/>
63
-
64
- Please head to the "Support" forum to report issues or make suggestions:
65
- <https://wordpress.org/support/plugin/ultimate-faqs>
66
-
67
- -----------------------------------------------------------------------------------
68
-
69
- == Installation ==
70
-
71
- 1. Upload the 'ultimate-faqs' folder to the '/wp-content/plugins/' directory
72
- 2. Activate the plugin through the 'Plugins' menu in WordPress
73
-
74
- or
75
-
76
- 1. Go to the 'Plugins' menu in WordPress and click 'Add New'
77
- 2. Search for 'Ultimate FAQ' and select 'Install Now'
78
- 3. Activate the plugin when prompted
79
-
80
- = Getting Started =
81
-
82
- 1. To create an FAQ:
83
- * Click on 'FAQs' in the WordPress admin sidebar menu
84
- * Click on 'Add New'
85
- * Enter the FAQ question in the title area and the FAQ answer in the main post content area
86
- * Set the author name using the 'Author Display Name' field under the main post content area
87
- * Select and/or create FAQ categories and FAQ tags in the right-side menu
88
- * Click the 'Publish' button
89
-
90
- 2. To display FAQs on your site:
91
- * Place the [ultimate-faqs] shortcode in the content area of any page you've created and it will display your FAQs
92
- * You can display specific FAQs by making use of the [select-faq] shortcode
93
- * Display a select number of your most popular FAQs using the [popular-faqs] shortcode
94
- * Display a select number of your most recent FAQs using the [recent-faqs] shortcode
95
-
96
- 3. To include a submit question form:
97
- * Placing the [submit-question] shortcode on a page will generate a form that allows your visitors to submit FAQ questions and, if enabled, even suggest FAQ answers for their questions (premium)
98
-
99
- 4. To include an FAQ search form:
100
- * Use the [ultimate-faq-search] shortcode to display an FAQ search form on a page. You can even set it so that all FAQs display on the search page and so that typing in the search box filters the results. (premium)
101
-
102
- 5. Customize your FAQ experience by making use of the many available settings and options, including toggle and accordion modes, FAQ comments, FAQ category grouping (premium) and many styling options (premium).
103
-
104
- For a list of specific features, see the FAQ description page here: https://wordpress.org/plugins/ultimate-faqs/.
105
-
106
- For help and support, please see:
107
- * Our FAQ page, here: https://wordpress.org/plugins/ultimate-faqs/faq/
108
- * Our documentation, here: http://www.etoilewebdesign.com/plugins/ultimate-faq/documentation-ultimate-faq/
109
- * Our tutorial videos, here: https://www.youtube.com/playlist?list=PLEndQUuhlvSrNdfu5FKa1uGHsaKZxgdWt
110
- * The Ultimate FAQ support forum, here: https://wordpress.org/support/plugin/ultimate-faqs
111
-
112
-
113
- --------------------------------------------------------------
114
-
115
-
116
- == Frequently Asked Questions ==
117
-
118
- = How do I get my FAQs to show up on my page? =
119
-
120
- Try adding the shortcode [ultimate-faqs] to whatever page you'd like to display the FAQ on.
121
-
122
- = What are the current FAQ shortcodes? =
123
-
124
- * [ultimate-faqs]: display all FAQs, or only specific FAQ categories using include_category and exclude_category attributes (both take a comma-separated list of category slugs)
125
- * [popular-faqs]: displays a number of the most viewed FAQs (5 unless specified).
126
- * [recent-faqs]: displays a number of the most recently added FAQs (5 unless specified).
127
- * [select-faq]: display specific FAQ posts, using the attributes faq_name, faq_slug and faq_id which take comma-separated lists of FAQ post names, FAQ slugs and FAQ ids respectively.
128
- * [ultimate-faq-search]: display an FAQ search form that allows users to find FAQs with a specific string in the FAQ title or body of the FAQ post (premium).
129
- * [submit-question]: display a form that allows users to submit FAQs of their own and, if enabled, enter an FAQ answer to their submitted FAQ question as well (premium).
130
-
131
- = What attributes does the [ultimate-faqs] shortcode accept? =
132
-
133
- The FAQ shortcode accepts two attributes, "include_category" and "exclude_category". Both take a comma-separated list of FAQ category slugs. For example, to include only FAQs about the Category "Cars" (which has a slug "cars"), you would use:
134
-
135
- [ultimate-faqs include_category='cars']
136
-
137
- = Can I hide my FAQ categories? =
138
-
139
- Yes, you can choose to display or hide FAQ categories on the FAQ settings page.
140
-
141
- = Is it possible to re-order my FAQs? =
142
-
143
- Currently you can choose between ascending or descending ordering for your FAQ by either Title, Date Created, or Date Modified.
144
-
145
- With the premium version, you can use the FAQ drag and drop ordering table to set exactly the order you want for your FAQs.
146
-
147
- = How can I make my FAQs sharable over social media? =
148
-
149
- On the FAQ settings page you can choose to link to twitter, facebook and more!
150
-
151
- = How do I make my FAQs searchable? =
152
-
153
- You can use the shortcode, [ultimate-faq-search], which displays an AJAX FAQ search form. You can use the "Auto-Complete Titles" option to have a list of all matching FAQ questions pop up when a user has typed 3 or more characters.
154
-
155
- = Can I display all FAQs on pageload using the [ultimate-faq-search] shortcode? =
156
-
157
- You can add the attribute "show_on_load" to the shortcode, and set it to "Yes" to display all FAQs when the page first loads.
158
-
159
- = How do I customize my FAQs, for example, to change the font? =
160
-
161
- You can customize the plugin by adding code to the Custom CSS box on the FAQ settings page, go to the "Custom CSS" box. For example to change the font you might want to add something like:
162
-
163
- .ufaq-faq-title h4, .ufaq-faq-category-title h4 {font-family:"Palatino Linotype", "Book Antiqua", Palatino, serif;}
164
-
165
- You can also use the "Styling" area of the "Options" tab if you're using the premium version, which has a bulit-in color picker for FAQ color fields and more!
166
-
167
- For more questions and support you can post in the support forum:
168
- <https://wordpress.org/support/plugin/ultimate-faqs>
169
-
170
- = Videos =
171
-
172
- Video 1 - Shortcodes and Attributes
173
- [youtube https://www.youtube.com/watch?v=zf-tYLqHpRs]
174
-
175
- Video 2 - Categories and Tags
176
- [youtube https://www.youtube.com/watch?v=ZV4PM0M1l7M]
177
-
178
- Video 3 - FAQs Ordering
179
- [youtube https://www.youtube.com/watch?v=3gVBuCo7bHU]
180
-
181
-
182
- == Screenshots ==
183
-
184
- 1. Car FAQ demo page - Default display style
185
- 2. Example of the "Color Block" FAQ display style
186
- 3. Example of the "Block" FAQ display style
187
- 4. The AJAX FAQ search shortcode in use
188
- 5. Simple user submitted FAQs form
189
- 6. Admin area showing all FAQs with their number of views as well as their categories
190
- 7. Admin simple drag-and-drop FAQ ordering area
191
- 8. Responsive, simple styling options with precise color controls
192
- 9. All answers displayed in the 'list' FAQ mode
193
-
194
- == Changelog ==
195
- = 1.4.2 =
196
- - Added a premium styling option for the toggle indicator to adjust the height
197
-
198
- = 1.4.1 =
199
- - Minor update to take out a debugging message
200
-
201
- = 1.4.0 =
202
- - Added two new FAQ display styles, minimalist and border block
203
- - Added in support for comments directly in the FAQs if enabled
204
- - Added two new premium features, FAQ ratings and FAQ custom fields
205
- - Added a premium styling option to let users select which heading the FAQ and comment titls have (h1, h2, etc.)
206
-
207
- = 1.3.6 =
208
- - Minor CSS update
209
-
210
- = 1.3.5 =
211
- - Fixed a font-family error
212
-
213
- = 1.3.4 =
214
- - Fixed an error where if WooCommerce FAQs were set to "Yes", and not category had been created, all FAQs would show
215
-
216
- = 1.3.3 =
217
- - Fixed an error where scroll to top would take a visitor to the first instance of an FAQ if it was on the page twice
218
-
219
- = 1.3.2 =
220
- - Fixed an error where view count wasn't being counted when FAQs were clicked to expand
221
-
222
- = 1.3.1 =
223
- - Fixed a JS error that was preventing the new shortcode helper from working with other plugins that modify the visual editor
224
-
225
- = 1.3.0 =
226
- - Added a feature that has been requested by a number of users, an FAQ shortcode helper, which lets you build shortcodes without having to remember and manually input the attributes. This feature can be turned off via the settings page, if you'd like to keep your tinyMCE button bar free of extra buttons
227
- - Fixed an error where category titles were no longer displaying
228
-
229
- = 1.2.11 =
230
- - Global post variable is now reset after the FAQs query loop
231
-
232
- = 1.2.10 =
233
- - Should make the plugin compatible with a couple of page builder plugins
234
-
235
- = 1.2.9 =
236
- - If there are no tags or categories for a particular FAQ, they should now be hidden
237
-
238
- = 1.2.8 =
239
- - Added an attribute, show_on_load, which will show all FAQs when the page first loads and then refresh the results when a visitor adds a search term
240
-
241
- = 1.2.7 =
242
- - Fixed an error where same page permalinks weren't opening the posts
243
-
244
- = 1.2.6 =
245
- - Added an option to just use the page ID for WooCommerce instead of the product's ID
246
-
247
- = 1.2.5 =
248
- - Fixed a broken link
249
- - Added extra information about the premium version
250
-
251
- = 1.2.4 =
252
- - Fixed an error where FAQs on the same page as the search shortcode couldn't be clicked at times
253
-
254
- = 1.2.3 =
255
- - Added in WPML support for the main shortcodes
256
- - Fixed an error with a missing ID tag
257
-
258
- = 1.2.2 =
259
- - Added the ability to have multiple widgets or shortcodes on a page
260
- - Fixed a small error with the popular FAQs shortcode
261
-
262
- = 1.2.1 =
263
- - Fixed a missing file error
264
-
265
- = 1.2.0 =
266
- - Added in a new premium feature: WooCommerce FAQs tab, which lets you add a different list of FAQs on the product page for each WooCommerce product
267
- - Added the ability to filter FAQs by category
268
-
269
- = 1.1.19 =
270
- - Added another set of labeling options
271
-
272
- = 1.1.18 =
273
- - Minor CSS update
274
-
275
- = 1.1.17 =
276
- - Added anumber of extra labeling options
277
-
278
- = 1.1.16 =
279
- - Minor CSS update
280
-
281
- = 1.1.15 =
282
- - CSV files can now be used for FAQ imports
283
-
284
- = 1.1.14 =
285
- - Fixed a parent-child issue, where if a parent category was added in the include_category attribute, it was possible to end up with unexpected categories when an FAQ was in multiple categories
286
-
287
- = 1.1.13 =
288
- - Fixed a number of PHP notices
289
-
290
- = 1.1.12 =
291
- - Minor CSS update
292
-
293
- = 1.1.11 =
294
- - Fixed a missing div error that could come up with certain options selected
295
-
296
- = 1.1.10 =
297
- - Minor CSS update
298
-
299
- = 1.1.9 =
300
- - Added a "Category Toggle" options for users who group their FAQs by category
301
- - Cleaned up some of the code dealing with options
302
-
303
- = 1.1.8 =
304
- - Fixed a scrolling error with non-FAQ links
305
-
306
- = 1.1.7 =
307
- - Should fix small problems with the "select-faq" shortcode and the "FAQ ID List" widget
308
-
309
- = 1.1.6 =
310
- - Removed blank categories from FAQ search results
311
- - Added in a "Permalink Type" option, which lets you decide between linking to the post in the main page and the individual post page
312
-
313
- = 1.1.5 =
314
- - Fixed a problem with FAQ permalinks not opening in the list
315
-
316
- = 1.1.4 =
317
- - Fixed a conflict with WooCommerce, where a UFAQ script was keeping product information tabs open
318
-
319
- = 1.1.3 =
320
- - Fixed a problem where links inside of a toggable FAQ weren't clickable
321
-
322
- = 1.1.2 =
323
- - Added a color picker to the color fields on the styling options area
324
-
325
- = 1.1.1 =
326
- - Added 'display_all_answers' as a shortcode attribute, so some pages can have all answers displayed and others can have the started list style
327
- - Fixed an option mistake
328
-
329
- = 1.1.0 =
330
- - Added new premium display styles
331
- - Added an autocomplete titles option for the AJAX search shortcode
332
- - Added more styling options to customize new display styles
333
- - Added an option to add a 'Back to Top' link to each FAQ post
334
- - Fixed a reveal error with non-accordion display and no effect selected
335
-
336
- = 1.0.9 =
337
- - Added some CSS classes in preparation for an upcoming large CSS/styling update
338
-
339
- = 1.0.8 =
340
- - Added a unique identifier to each FAQ so that if it is repeated on the same page, the correct post should open
341
-
342
- = 1.0.7 =
343
- - Minor CSS update
344
-
345
- = 1.0.6 =
346
- - Fixed an issue where new users weren't able to update ordering even after upgrading to premium
347
-
348
- = 1.0.5 =
349
- - Minor CSS update
350
-
351
- = 1.0.4 =
352
- - Fixed a status error message
353
-
354
- = 1.0.3 =
355
- - Added in widgets to display a number of popular or recently created faqs
356
-
357
- = 1.0.2 =
358
- - CSS update for the ordering table in the admin area
359
-
360
- = 1.0.1 =
361
- - Fix for the FAQ ordering bug
362
-
363
- = 1.0.0 =
364
- - Premium version release, check out our website for all of the details <http://www.etoilewebdesign.com/ultimate-faq/>
365
-
366
-
367
-
 
 
 
 
 
 
 
 
 
 
 
1
+ === FAQ ===
2
+ Contributors: Rustaurius, EtoileWebDesign
3
+ Tags: FAQ, FAQs, easy FAQ, simple FAQ, FAQ categories, FAQ answer, faq page, FAQ Plugin, WooCommerce FAQ, frequently asked questions, questions, FAQ questions, wordpress faq, FAQ list, FAQ custom post type, faq list, faq accordion, jquery faq, jquery-ui, faq shortcode, faq widget, AJAX FAQ, responsive faq, submit questions,
4
+ Requires at least: 3.9.0
5
+ Tested up to: 4.5
6
+ License: GPLv3
7
+ License URI:http://www.gnu.org/licenses/gpl-3.0.html
8
+
9
+ FAQ plugin that lets you easily create, order and publicize FAQs, insert 3 styles of FAQs on a page or WooCommerce product, and use AJAX FAQ search using FAQ shortcodes
10
+
11
+ == Description ==
12
+
13
+ <a href='http://www.etoilewebdesign.com/ultimate-faq-demo/'>FAQ Demo</a>
14
+
15
+ [youtube https://www.youtube.com/watch?v=xeGVZnVrZ6I]
16
+
17
+ FAQ plugin that lets you create FAQ, organize FAQ and publicize your FAQ in no time through your Wordpress admin panel. Select from multiple FAQ styles and FAQ layouts. You can use either the accordion FAQ style, to display one FAQ answer on click, or the list FAQ style, to have FAQ answers displayed by default. FAQ features include FAQ statistics that show how many times FAQs have been viewed, FAQ styling options, FAQ categories and FAQ tags, FAQ display and FAQ ordering options, among many other FAQ options. Includes an FAQ shortcode helper, that lets you create FAQ shortcodes with FAQ attributes without having to manually enter FAQs. Ultimate FAQ also works great for any content that works similarly to FAQ and that needs to be hidden until it is clicked, like job postings, recipes, etc.!
18
+
19
+ `
20
+ [ultimate-faqs]
21
+ `
22
+
23
+ Simply insert the shortcode above into any page to display your FAQs.
24
+
25
+ Want to decide exactly what order your FAQs are displayed in? Use our simple FAQ drag-and-drop reordering feature! Create SEO-friendly FAQ links to individual FAQ posts to simply direct customers to exactly the right FAQ answer, right away. You can even let your customers add to your custom FAQ list with the [submit-question] smart FAQ shortcode, which lets visitors submit an FAQ question and even propose an FAQ answer for it! Easily add links to your FAQ to popular social media, such as Facebook, Twitter and Pinterest so that your customers can help you spread the word about your FAQ!
26
+
27
+ = Add FAQ to WooCommerce! =
28
+
29
+ Using WooCommerce to sell your products? Easily add an FAQ tab to each product page, so your customers can see answers to common FAQ questions about the products they're browsing. It's the most comprehensive FAQ solution for WooCommerce!
30
+
31
+ This FAQ plugin is great for combining with our <a href='https://wordpress.org/plugins/front-end-only-users/'>user management plugin </a> to create a member's only FAQ area.
32
+
33
+ Ultimate FAQ uses the WordPress custom post type functionality to create an FAQ post type, allowing for smart and easy FAQ integration.
34
+
35
+ = Key FAQ Features =
36
+ * Unlimited FAQ, unlimited FAQ tag and unlimited FAQ category support
37
+ * Create FAQ categories
38
+ * Create FAQ posts and assign categories to them
39
+ * An AJAX FAQ search form
40
+ * Export all FAQs to a PDF to create a user manual
41
+ * Insert custom CSS to style your FAQ posts
42
+ * Select FAQ animation options for displaying FAQ posts
43
+ * Toggle FAQ accordion (close open FAQ when a new one is opened) behaviour on/off
44
+ * Share FAQ on social media
45
+ * Responsive FAQ design
46
+
47
+ = Premium FAQ features include =
48
+ * WooCommerce FAQ tab with specific FAQs for each product on product page (<a href='https://www.youtube.com/watch?v=cH3p0fW4c5o'>YouTube Video</a>)
49
+ * Different FAQ display styles for your frequently asked questions
50
+ * User-submitted FAQs
51
+ * AJAX easy FAQ search with autocomplete for FAQ titles
52
+ * Import/Export of FAQs from spreadsheet
53
+ * Export FAQs to PDF
54
+ * SEO-Friendly FAQ, FAQ category and FAQ tag permalinks
55
+ * Advanced FAQ styling options
56
+ * Re-ordering of FAQs
57
+
58
+ = FAQ Shortcodes =
59
+
60
+ * [ultimate-faqs]: display all FAQs, or only specific FAQ categories using include_category and exclude_category attributes (both take a comma-separated list of category slugs)
61
+ * [popular-faqs]: displays a number of the most viewed FAQs (5 unless specified).
62
+ * [recent-faqs]: displays a number of the most recently added FAQs (5 unless specified).
63
+ * [select-faq]: display specific FAQ posts, using the attributes faq_name, faq_slug and faq_id which take comma-separated lists of FAQ post names, FAQ slugs and FAQ ids respectively.
64
+ * [ultimate-faq-search]: display an FAQ search form that allows users to find FAQs with a specific string in the FAQ title or body of the FAQ post (premium).
65
+ * [submit-question]: display a form that allows users to submit FAQs of their own and, if enabled, enter an FAQ answer to their submitted FAQ question as well (premium).
66
+
67
+ Check out our Frequently Asked Questions here:
68
+ <https://wordpress.org/plugins/ultimate-faqs/faq/>
69
+
70
+ Please head to the "Support" forum to report issues or make suggestions:
71
+ <https://wordpress.org/support/plugin/ultimate-faqs>
72
+
73
+ -----------------------------------------------------------------------------------
74
+
75
+ == Installation ==
76
+
77
+ 1. Upload the 'ultimate-faqs' folder to the '/wp-content/plugins/' directory
78
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
79
+
80
+ or
81
+
82
+ 1. Go to the 'Plugins' menu in WordPress and click 'Add New'
83
+ 2. Search for 'Ultimate FAQ' and select 'Install Now'
84
+ 3. Activate the plugin when prompted
85
+
86
+ = Getting Started =
87
+
88
+ 1. To create an FAQ:
89
+ * Click on 'FAQs' in the WordPress admin sidebar menu
90
+ * Click on 'Add New'
91
+ * Enter the FAQ question in the title area and the FAQ answer in the main post content area
92
+ * Set the author name using the 'Author Display Name' field under the main post content area
93
+ * Select and/or create FAQ categories and FAQ tags in the right-side menu
94
+ * Click the 'Publish' button
95
+
96
+ 2. To display FAQs on your site:
97
+ * Place the [ultimate-faqs] shortcode in the content area of any page you've created and it will display your FAQs
98
+ * You can display specific FAQs by making use of the [select-faq] shortcode
99
+ * Display a select number of your most popular FAQs using the [popular-faqs] shortcode
100
+ * Display a select number of your most recent FAQs using the [recent-faqs] shortcode
101
+
102
+ 3. To include a submit question form:
103
+ * Placing the [submit-question] shortcode on a page will generate a form that allows your visitors to submit FAQ questions and, if enabled, even suggest FAQ answers for their questions (premium)
104
+
105
+ 4. To include an FAQ search form:
106
+ * Use the [ultimate-faq-search] shortcode to display an FAQ search form on a page. You can even set it so that all FAQs display on the search page and so that typing in the search box filters the results. (premium)
107
+
108
+ 5. Customize your FAQ experience by making use of the many available settings and options, including toggle and accordion modes, FAQ comments, FAQ category grouping (premium) and many styling options (premium).
109
+
110
+ For a list of specific features, see the FAQ description page here: https://wordpress.org/plugins/ultimate-faqs/.
111
+
112
+ For help and support, please see:
113
+
114
+ * Our FAQ page, here: https://wordpress.org/plugins/ultimate-faqs/faq/
115
+ * Our documentation, here: http://www.etoilewebdesign.com/plugins/ultimate-faq/documentation-ultimate-faq/
116
+ * Our tutorial videos, here: https://www.youtube.com/playlist?list=PLEndQUuhlvSrNdfu5FKa1uGHsaKZxgdWt
117
+ * The Ultimate FAQ support forum, here: https://wordpress.org/support/plugin/ultimate-faqs
118
+
119
+
120
+ --------------------------------------------------------------
121
+
122
+
123
+ == Frequently Asked Questions ==
124
+
125
+ = How do I get my FAQs to show up on my page? =
126
+
127
+ Try adding the shortcode [ultimate-faqs] to whatever page you'd like to display the FAQ on.
128
+
129
+ = What are the current FAQ shortcodes? =
130
+
131
+ * [ultimate-faqs]: display all FAQs, or only specific FAQ categories using include_category and exclude_category attributes (both take a comma-separated list of category slugs)
132
+ * [popular-faqs]: displays a number of the most viewed FAQs (5 unless specified).
133
+ * [recent-faqs]: displays a number of the most recently added FAQs (5 unless specified).
134
+ * [select-faq]: display specific FAQ posts, using the attributes faq_name, faq_slug and faq_id which take comma-separated lists of FAQ post names, FAQ slugs and FAQ ids respectively.
135
+ * [ultimate-faq-search]: display an FAQ search form that allows users to find FAQs with a specific string in the FAQ title or body of the FAQ post (premium).
136
+ * [submit-question]: display a form that allows users to submit FAQs of their own and, if enabled, enter an FAQ answer to their submitted FAQ question as well (premium).
137
+
138
+ = What attributes does the [ultimate-faqs] shortcode accept? =
139
+
140
+ The FAQ shortcode accepts two attributes, "include_category" and "exclude_category". Both take a comma-separated list of FAQ category slugs. For example, to include only FAQs about the Category "Cars" (which has a slug "cars"), you would use:
141
+
142
+ [ultimate-faqs include_category='cars']
143
+
144
+ = Can I hide my FAQ categories? =
145
+
146
+ Yes, you can choose to display or hide FAQ categories on the FAQ settings page.
147
+
148
+ = Is it possible to re-order my FAQs? =
149
+
150
+ Currently you can choose between ascending or descending ordering for your FAQ by either Title, Date Created, or Date Modified.
151
+
152
+ With the premium version, you can use the FAQ drag and drop ordering table to set exactly the order you want for your FAQs.
153
+
154
+ = How can I make my FAQs sharable over social media? =
155
+
156
+ On the FAQ settings page you can choose to link to twitter, facebook and more!
157
+
158
+ = How do I make my FAQs searchable? =
159
+
160
+ You can use the shortcode, [ultimate-faq-search], which displays an AJAX FAQ search form. You can use the "Auto-Complete Titles" option to have a list of all matching FAQ questions pop up when a user has typed 3 or more characters.
161
+
162
+ = Can I display all FAQs on pageload using the [ultimate-faq-search] shortcode? =
163
+
164
+ You can add the attribute "show_on_load" to the shortcode, and set it to "Yes" to display all FAQs when the page first loads.
165
+
166
+ = How do I customize my FAQs, for example, to change the font? =
167
+
168
+ You can customize the plugin by adding code to the Custom CSS box on the FAQ settings page, go to the "Custom CSS" box. For example to change the font you might want to add something like:
169
+
170
+ .ufaq-faq-title h4, .ufaq-faq-category-title h4 {font-family:"Palatino Linotype", "Book Antiqua", Palatino, serif;}
171
+
172
+ You can also use the "Styling" area of the "Options" tab if you're using the premium version, which has a bulit-in color picker for FAQ color fields and more!
173
+
174
+ For more questions and support you can post in the support forum:
175
+ <https://wordpress.org/support/plugin/ultimate-faqs>
176
+
177
+ = Videos =
178
+
179
+ Video 1 - Shortcodes and Attributes
180
+ [youtube https://www.youtube.com/watch?v=zf-tYLqHpRs]
181
+
182
+ Video 2 - Categories and Tags
183
+ [youtube https://www.youtube.com/watch?v=ZV4PM0M1l7M]
184
+
185
+ Video 3 - FAQs Ordering
186
+ [youtube https://www.youtube.com/watch?v=3gVBuCo7bHU]
187
+
188
+
189
+ == Screenshots ==
190
+
191
+ 1. Car FAQ demo page - Default display style
192
+ 2. Example of the "Color Block" FAQ display style
193
+ 3. Example of the "Block" FAQ display style
194
+ 4. The AJAX FAQ search shortcode in use
195
+ 5. Simple user submitted FAQs form
196
+ 6. Admin area showing all FAQs with their number of views as well as their categories
197
+ 7. Admin simple drag-and-drop FAQ ordering area
198
+ 8. Responsive, simple styling options with precise color controls
199
+ 9. All answers displayed in the 'list' FAQ mode
200
+
201
+ == Changelog ==
202
+ = 1.4.3 =
203
+ - Added in a new set of tutorials for new users
204
+ - Centralized the plugin dashboard and menu
205
+
206
+ = 1.4.2 =
207
+ - Added a premium styling option for the toggle indicator to adjust the height
208
+
209
+ = 1.4.1 =
210
+ - Minor update to take out a debugging message
211
+
212
+ = 1.4.0 =
213
+ - Added two new FAQ display styles, minimalist and border block
214
+ - Added in support for comments directly in the FAQs if enabled
215
+ - Added two new premium features, FAQ ratings and FAQ custom fields
216
+ - Added a premium styling option to let users select which heading the FAQ and comment titls have (h1, h2, etc.)
217
+
218
+ = 1.3.6 =
219
+ - Minor CSS update
220
+
221
+ = 1.3.5 =
222
+ - Fixed a font-family error
223
+
224
+ = 1.3.4 =
225
+ - Fixed an error where if WooCommerce FAQs were set to "Yes", and not category had been created, all FAQs would show
226
+
227
+ = 1.3.3 =
228
+ - Fixed an error where scroll to top would take a visitor to the first instance of an FAQ if it was on the page twice
229
+
230
+ = 1.3.2 =
231
+ - Fixed an error where view count wasn't being counted when FAQs were clicked to expand
232
+
233
+ = 1.3.1 =
234
+ - Fixed a JS error that was preventing the new shortcode helper from working with other plugins that modify the visual editor
235
+
236
+ = 1.3.0 =
237
+ - Added a feature that has been requested by a number of users, an FAQ shortcode helper, which lets you build shortcodes without having to remember and manually input the attributes. This feature can be turned off via the settings page, if you'd like to keep your tinyMCE button bar free of extra buttons
238
+ - Fixed an error where category titles were no longer displaying
239
+
240
+ = 1.2.11 =
241
+ - Global post variable is now reset after the FAQs query loop
242
+
243
+ = 1.2.10 =
244
+ - Should make the plugin compatible with a couple of page builder plugins
245
+
246
+ = 1.2.9 =
247
+ - If there are no tags or categories for a particular FAQ, they should now be hidden
248
+
249
+ = 1.2.8 =
250
+ - Added an attribute, show_on_load, which will show all FAQs when the page first loads and then refresh the results when a visitor adds a search term
251
+
252
+ = 1.2.7 =
253
+ - Fixed an error where same page permalinks weren't opening the posts
254
+
255
+ = 1.2.6 =
256
+ - Added an option to just use the page ID for WooCommerce instead of the product's ID
257
+
258
+ = 1.2.5 =
259
+ - Fixed a broken link
260
+ - Added extra information about the premium version
261
+
262
+ = 1.2.4 =
263
+ - Fixed an error where FAQs on the same page as the search shortcode couldn't be clicked at times
264
+
265
+ = 1.2.3 =
266
+ - Added in WPML support for the main shortcodes
267
+ - Fixed an error with a missing ID tag
268
+
269
+ = 1.2.2 =
270
+ - Added the ability to have multiple widgets or shortcodes on a page
271
+ - Fixed a small error with the popular FAQs shortcode
272
+
273
+ = 1.2.1 =
274
+ - Fixed a missing file error
275
+
276
+ = 1.2.0 =
277
+ - Added in a new premium feature: WooCommerce FAQs tab, which lets you add a different list of FAQs on the product page for each WooCommerce product
278
+ - Added the ability to filter FAQs by category
279
+
280
+ = 1.1.19 =
281
+ - Added another set of labeling options
282
+
283
+ = 1.1.18 =
284
+ - Minor CSS update
285
+
286
+ = 1.1.17 =
287
+ - Added anumber of extra labeling options
288
+
289
+ = 1.1.16 =
290
+ - Minor CSS update
291
+
292
+ = 1.1.15 =
293
+ - CSV files can now be used for FAQ imports
294
+
295
+ = 1.1.14 =
296
+ - Fixed a parent-child issue, where if a parent category was added in the include_category attribute, it was possible to end up with unexpected categories when an FAQ was in multiple categories
297
+
298
+ = 1.1.13 =
299
+ - Fixed a number of PHP notices
300
+
301
+ = 1.1.12 =
302
+ - Minor CSS update
303
+
304
+ = 1.1.11 =
305
+ - Fixed a missing div error that could come up with certain options selected
306
+
307
+ = 1.1.10 =
308
+ - Minor CSS update
309
+
310
+ = 1.1.9 =
311
+ - Added a "Category Toggle" options for users who group their FAQs by category
312
+ - Cleaned up some of the code dealing with options
313
+
314
+ = 1.1.8 =
315
+ - Fixed a scrolling error with non-FAQ links
316
+
317
+ = 1.1.7 =
318
+ - Should fix small problems with the "select-faq" shortcode and the "FAQ ID List" widget
319
+
320
+ = 1.1.6 =
321
+ - Removed blank categories from FAQ search results
322
+ - Added in a "Permalink Type" option, which lets you decide between linking to the post in the main page and the individual post page
323
+
324
+ = 1.1.5 =
325
+ - Fixed a problem with FAQ permalinks not opening in the list
326
+
327
+ = 1.1.4 =
328
+ - Fixed a conflict with WooCommerce, where a UFAQ script was keeping product information tabs open
329
+
330
+ = 1.1.3 =
331
+ - Fixed a problem where links inside of a toggable FAQ weren't clickable
332
+
333
+ = 1.1.2 =
334
+ - Added a color picker to the color fields on the styling options area
335
+
336
+ = 1.1.1 =
337
+ - Added 'display_all_answers' as a shortcode attribute, so some pages can have all answers displayed and others can have the started list style
338
+ - Fixed an option mistake
339
+
340
+ = 1.1.0 =
341
+ - Added new premium display styles
342
+ - Added an autocomplete titles option for the AJAX search shortcode
343
+ - Added more styling options to customize new display styles
344
+ - Added an option to add a 'Back to Top' link to each FAQ post
345
+ - Fixed a reveal error with non-accordion display and no effect selected
346
+
347
+ = 1.0.9 =
348
+ - Added some CSS classes in preparation for an upcoming large CSS/styling update
349
+
350
+ = 1.0.8 =
351
+ - Added a unique identifier to each FAQ so that if it is repeated on the same page, the correct post should open
352
+
353
+ = 1.0.7 =
354
+ - Minor CSS update
355
+
356
+ = 1.0.6 =
357
+ - Fixed an issue where new users weren't able to update ordering even after upgrading to premium
358
+
359
+ = 1.0.5 =
360
+ - Minor CSS update
361
+
362
+ = 1.0.4 =
363
+ - Fixed a status error message
364
+
365
+ = 1.0.3 =
366
+ - Added in widgets to display a number of popular or recently created faqs
367
+
368
+ = 1.0.2 =
369
+ - CSS update for the ordering table in the admin area
370
+
371
+ = 1.0.1 =
372
+ - Fix for the FAQ ordering bug
373
+
374
+ = 1.0.0 =
375
+ - Premium version release, check out our website for all of the details <http://www.etoilewebdesign.com/ultimate-faq/>
376
+
377
+
378
+