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 | Ultimate FAQ |
Version | 1.4.3 |
Comparing to | |
See all releases |
Code changes from version 1.4.2 to 1.4.3
- Blog.html +2 -0
- Functions/EWD_UFAQ_Help_Pointers.php +75 -0
- Functions/EWD_UFAQ_Output_Pages.php +16 -0
- Functions/EWD_UFAQ_Pointers_Manager_Class.php +46 -0
- Functions/EWD_UFAQ_Pointers_Manager_Interface.php +20 -0
- Functions/EWD_UFAQ_Version_Update.php +3 -3
- Functions/Register_EWD_UFAQ_Posts_Taxonomies.php +1 -0
- Main.php +93 -11
- css/Admin.css +219 -0
- html/AdminHeader.php +1 -0
- html/DashboardPage.php +271 -0
- images/UPCP_Icons-07-300x300.png +0 -0
- images/URP_Icons-03.png +0 -0
- images/US_Related_Sales_Icon.png +0 -0
- images/ewd-dashboard-icon-ufaq-01.png +0 -0
- images/ewd-dashboard-icon-ufaq-02.png +0 -0
- images/ewd-dashboard-icon-ufaq-03.png +0 -0
- images/support_icons_ufaq-01.png +0 -0
- images/support_icons_ufaq-02.png +0 -0
- images/support_icons_ufaq-03.png +0 -0
- images/ufaq-buttonsicons-04.png +0 -0
- js/ewd-ufaq-pointers.js +136 -0
- readme.txt +378 -367
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.
|
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 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
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="
|
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/
|
210 |
-
include "Functions/
|
211 |
-
include "Functions/
|
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 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
*
|
37 |
-
*
|
38 |
-
*
|
39 |
-
*
|
40 |
-
|
41 |
-
|
42 |
-
*
|
43 |
-
*
|
44 |
-
*
|
45 |
-
*
|
46 |
-
|
47 |
-
|
48 |
-
*
|
49 |
-
*
|
50 |
-
*
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
*
|
55 |
-
*
|
56 |
-
*
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
1.
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
*
|
92 |
-
*
|
93 |
-
*
|
94 |
-
*
|
95 |
-
|
96 |
-
|
97 |
-
*
|
98 |
-
|
99 |
-
|
100 |
-
*
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
[ultimate-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
- Added in
|
204 |
-
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
-
|
257 |
-
|
258 |
-
= 1.2.
|
259 |
-
-
|
260 |
-
-
|
261 |
-
|
262 |
-
= 1.2.
|
263 |
-
- Fixed
|
264 |
-
|
265 |
-
= 1.2.
|
266 |
-
- Added in
|
267 |
-
-
|
268 |
-
|
269 |
-
= 1.
|
270 |
-
- Added
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
- Added
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
-
|
332 |
-
|
333 |
-
|
334 |
-
-
|
335 |
-
|
336 |
-
= 1.
|
337 |
-
- Added some
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
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 |
+
|