Quiz And Survey Master (Formerly Quiz Master Next) - Version 4.6.4

Version Description

(December 15, 2015) = * Fixes undefined results notice displayed on admin results for some users * Fixes bug that was causing the disable radio buttons option to not work in all browsers * Minor design changes

Download this release

Release Info

Developer fpcorso
Plugin Icon 128x128 Quiz And Survey Master (Formerly Quiz Master Next)
Version 4.6.4
Comparing to
See all releases

Code changes from version 4.6.3 to 4.6.4

CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  = 4.5.5 (October 1, 2015) =
2
  * Adds 4 new style templates to choose from
3
  * Fixes Dutch translation ([Github Issue #285](https://github.com/fpcorso/quiz_master_next/issues/285))
1
+ = 4.6.1 (October 20, 2015) =
2
+ * Bug fix for rare bug preventing IE usage on a small number of sites
3
+
4
+ = 4.6.0 (October 20, 2015) =
5
+ * Adds new dynamic form submission ([Github Issue #206](https://github.com/fpcorso/quiz_master_next/issues/206))
6
+ * Adds new From email address option ([Github Issue #312](https://github.com/fpcorso/quiz_master_next/issues/312))
7
+ * Adds new Reply-To admin email option
8
+ * Fixed timer issue that started timer but prevent access to next page ([Github Issue #302](https://github.com/fpcorso/quiz_master_next/issues/302))
9
+ * Fixes redirect bug that prevented submissions from saving ([Github Issue #201](https://github.com/fpcorso/quiz_master_next/issues/201))
10
+ * Fixes required question bug that prevented multiple quizzes/surveys on one page ([Github Issue #304](https://github.com/fpcorso/quiz_master_next/issues/304))
11
+ * Re-wrote front-end JavaScript to fix a variety of smaller bugs
12
+ * Renamed several file names and functions to align more with WordPress coding standards
13
+
14
  = 4.5.5 (October 1, 2015) =
15
  * Adds 4 new style templates to choose from
16
  * Fixes Dutch translation ([Github Issue #285](https://github.com/fpcorso/quiz_master_next/issues/285))
README.md CHANGED
@@ -9,4 +9,4 @@ Feel free to browse the code and make suggestions/requests. Thanks!
9
  If you find an issue, let us know [here](https://github.com/fpcorso/quiz_master_next/issues?q=is%3Aopen)!
10
 
11
  ## Support ##
12
- This is a developer's portal for Easy Digital Downloads and should _not_ be used for support. Please create a support ticket [here](http://quizandsurveymaster.com/contact-us/).
9
  If you find an issue, let us know [here](https://github.com/fpcorso/quiz_master_next/issues?q=is%3Aopen)!
10
 
11
  ## Support ##
12
+ This is a developer's portal for Quiz And Survey Master and should _not_ be used for support. Please create a support ticket [here](http://quizandsurveymaster.com/contact-us/).
js/qmn_quiz.js CHANGED
@@ -123,8 +123,8 @@ function qmnDisplayResults( results, quiz_form_id, container ) {
123
 
124
  function qmnInit() {
125
  for ( var key in qmn_quiz_data ) {
126
- if ( qmn_quiz_data[key].ajax_show_correct === '0' ) {
127
- jQuery( '#quizForm ' + qmn_quiz_data[key].quiz_id + ' .qmn_quiz_radio').change(function() {
128
  var chosen_answer = jQuery(this).val();
129
  var question_id = jQuery(this).attr('name').replace(/question/i,'');
130
  var chosen_id = jQuery(this).attr('id');
@@ -145,8 +145,8 @@ function qmnInit() {
145
  });
146
  }
147
 
148
- if ( qmn_quiz_data[key].disable_answer === '0' ) {
149
- jQuery( '#quizForm ' + qmn_quiz_data[key].quiz_id + ' .qmn_quiz_radio').change(function() {
150
  var radio_group = jQuery(this).attr('name');
151
  jQuery('input[type=radio][name='+radio_group+']').prop('disabled',true);
152
  });
123
 
124
  function qmnInit() {
125
  for ( var key in qmn_quiz_data ) {
126
+ if ( qmn_quiz_data[key].ajax_show_correct === '1' ) {
127
+ jQuery( '#quizForm' + qmn_quiz_data[key].quiz_id + ' .qmn_quiz_radio').change(function() {
128
  var chosen_answer = jQuery(this).val();
129
  var question_id = jQuery(this).attr('name').replace(/question/i,'');
130
  var chosen_id = jQuery(this).attr('id');
145
  });
146
  }
147
 
148
+ if ( qmn_quiz_data[key].disable_answer === '1' ) {
149
+ jQuery( '#quizForm' + qmn_quiz_data[key].quiz_id + ' .qmn_quiz_radio').change(function() {
150
  var radio_group = jQuery(this).attr('name');
151
  jQuery('input[type=radio][name='+radio_group+']').prop('disabled',true);
152
  });
mlw_quizmaster2.php CHANGED
@@ -2,15 +2,15 @@
2
  /**
3
  * Plugin Name: Quiz And Survey Master
4
  * Description: Easily and quickly add quizzes and surveys to your website.
5
- * Version: 4.6.3
6
  * Author: Frank Corso
7
- * Author URI: http://www.mylocalwebstop.com/
8
  * Plugin URI: http://www.quizandsurveymaster.com/
9
  * Text Domain: quiz-master-next
10
  * Domain Path: /languages
11
  *
12
  * @author Frank Corso
13
- * @version 4.6.3
14
  */
15
  if ( ! defined( 'ABSPATH' ) ) exit;
16
  /**
@@ -28,7 +28,7 @@ class MLWQuizMasterNext
28
  * @var string
29
  * @since 4.0.0
30
  */
31
- public $version = '4.6.3';
32
 
33
  /**
34
  * QMN Alert Manager Object
2
  /**
3
  * Plugin Name: Quiz And Survey Master
4
  * Description: Easily and quickly add quizzes and surveys to your website.
5
+ * Version: 4.6.4
6
  * Author: Frank Corso
7
+ * Author URI: http://www.quizandsurveymaster.com/
8
  * Plugin URI: http://www.quizandsurveymaster.com/
9
  * Text Domain: quiz-master-next
10
  * Domain Path: /languages
11
  *
12
  * @author Frank Corso
13
+ * @version 4.6.4
14
  */
15
  if ( ! defined( 'ABSPATH' ) ) exit;
16
  /**
28
  * @var string
29
  * @since 4.0.0
30
  */
31
+ public $version = '4.6.4';
32
 
33
  /**
34
  * QMN Alert Manager Object
php/about-page.php CHANGED
@@ -60,16 +60,16 @@ function mlw_generate_about_page()
60
  </div>
61
  <div id="mlw_quiz_changelog" class="qmn_tab" style="display: none;">
62
  <h2>Changelog</h2>
63
- <h3><?php echo $mlw_quiz_version; ?> (November 4, 2015)</h3>
64
  <ul class="changelog">
65
  <!--
66
  Examples:
67
  <li class="add"><div class="two">Add</div>Some feature was added</li>
68
  <li class="fixed"><div class="two">Fixed</div>Fixed some bug</li>
69
  -->
70
- <li class="fixed"><div class="two">Fixed</div>* Fixes certificate bug that was preventing quiz/survey submissions</li>
71
- <li class="fixed"><div class="two">Fixed</div>* Fixes undefined quiz id bug that was affecting some addons</li>
72
- <li class="fixed"><div class="two">Fixed</div>* Fixes tooltip bug that was affecting required question validation on a few sites</li>
73
  </ul>
74
  </div>
75
  <div id="qmn_contributors" class="qmn_tab" style="display:none;">
60
  </div>
61
  <div id="mlw_quiz_changelog" class="qmn_tab" style="display: none;">
62
  <h2>Changelog</h2>
63
+ <h3><?php echo $mlw_quiz_version; ?> (December 15, 2015)</h3>
64
  <ul class="changelog">
65
  <!--
66
  Examples:
67
  <li class="add"><div class="two">Add</div>Some feature was added</li>
68
  <li class="fixed"><div class="two">Fixed</div>Fixed some bug</li>
69
  -->
70
+ <li class="fixed"><div class="two">Fixed</div>* Fixes undefined results notice displayed on admin results for some users</li>
71
+ <li class="fixed"><div class="two">Fixed</div>* Fixes bug that was causing the disable radio buttons option to not work in all browsers</li>
72
+ <li class="fixed"><div class="two">Fixed</div>* Minor design changes</li>
73
  </ul>
74
  </div>
75
  <div id="qmn_contributors" class="qmn_tab" style="display:none;">
php/addons-page.php CHANGED
@@ -58,49 +58,51 @@ function qmn_generate_featured_addons()
58
  wp_enqueue_style( 'qmn_addons_style', plugins_url( '../css/qmn_addons_page.css' , __FILE__ ) );
59
  ?>
60
  <p><?php _e('These addons extend the functionality of Quiz And Survey Master', 'quiz-master-next'); ?></p>
 
 
 
 
 
 
 
61
  <div class="qmn_addons">
62
- <h3 class="qmn_addons_title">Results Analysis</h3>
63
- <p class="qmn_addons_desc">Analyze your quiz's or survey's results to see the percentage of users who chose each answer displayed on useful charts, number of submissions, average points earned, and average score earned.</p>
64
- <a href="http://quizandsurveymaster.com/downloads/results-analysis/" target="_blank" class="button">Get This Addon</a>
65
  </div>
66
  <div class="qmn_addons">
67
  <h3 class="qmn_addons_title">Export Results</h3>
68
  <p class="qmn_addons_desc">This add-on gives you the ability to export your quiz results as a CSV file.</p>
69
- <a href="http://quizandsurveymaster.com/downloads/export-results/" target="_blank" class="button">Get This Addon</a>
70
  </div>
71
  <div class="qmn_addons">
72
  <h3 class="qmn_addons_title">Advertisement Be Gone</h3>
73
- <p class="qmn_addons_desc">This add-on will remove all services/add-on advertisements in all of our Master Suite plugins.</p>
74
- <a href="http://quizandsurveymaster.com/downloads/advertisement-gone/" target="_blank" class="button">Get This Addon</a>
75
- </div>
76
- <div class="qmn_addons">
77
- <h3 class="qmn_addons_title">MailPoet Integration</h3>
78
- <p class="qmn_addons_desc">Grow your list of subscribers in MailPoet by using this add-on to add users who take your quizzes!</p>
79
- <a href="http://quizandsurveymaster.com/downloads/mailpoet-integration/" target="_blank" class="button">Get This Addon</a>
80
  </div>
81
  <div class="qmn_addons">
82
- <h3 class="qmn_addons_title">Slack Integration</h3>
83
- <p class="qmn_addons_desc">This addon will allow you to post a message to your slack when a user takes a quiz or test.</p>
84
- <a href="http://quizandsurveymaster.com/downloads/slack-integration/" target="_blank" class="button">Get This Addon</a>
85
  </div>
86
  <div class="qmn_addons">
87
- <h3 class="qmn_addons_title">Gradebook</h3>
88
- <p class="qmn_addons_desc">Need a gradebook that will show your users average scores and their quizzes? Then this addon is for you!</p>
89
- <a href="http://quizandsurveymaster.com/downloads/gradebook/" target="_blank" class="button">Get This Addon</a>
90
  </div>
91
  <div class="qmn_addons">
92
- <h3 class="qmn_addons_title">Daily Limit</h3>
93
- <p class="qmn_addons_desc">This Quiz And Survey Master add-on allows you to restrict users to only a set amount of entries per day.</p>
94
- <a href="http://quizandsurveymaster.com/downloads/daily-limit/" target="_blank" class="button">Get This Addon</a>
95
  </div>
96
  <div class="qmn_addons">
97
  <h3 class="qmn_addons_title">Extra Template Variables</h3>
98
  <p class="qmn_addons_desc">This addon gives you several more template variables to use in your emails and results pages.</p>
99
- <a href="http://quizandsurveymaster.com/downloads/extra-template-variables/" target="_blank" class="button">Get This Addon</a>
100
  </div>
101
  <div style="clear:both;">
102
  <br />
103
- <a href="http://quizandsurveymaster.com/addons/" target="_blank" class="button-primary"><?php _e('Browse All Addons', 'quiz-master-next'); ?></a>
104
  <?php
105
  }
106
 
58
  wp_enqueue_style( 'qmn_addons_style', plugins_url( '../css/qmn_addons_page.css' , __FILE__ ) );
59
  ?>
60
  <p><?php _e('These addons extend the functionality of Quiz And Survey Master', 'quiz-master-next'); ?></p>
61
+ <a href="http://quizandsurveymaster.com/addons/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=all-addons-top&utm_campaign=qsm_plugin" target="_blank" class="button-primary"><?php _e('Browse All Addons', 'quiz-master-next'); ?></a>
62
+ <br />
63
+ <div class="qmn_addons">
64
+ <h3 class="qmn_addons_title">Landing Page</h3>
65
+ <p class="qmn_addons_desc">Display your quizzes and surveys in their own standalone page without distracting menus, themes, or other content from your site.</p>
66
+ <a href="http://quizandsurveymaster.com/downloads/landing-page/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=landing-page&utm_campaign=qsm_plugin" target="_blank" class="button">Get This Addon</a>
67
+ </div>
68
  <div class="qmn_addons">
69
+ <h3 class="qmn_addons_title">Reporting and Analysis</h3>
70
+ <p class="qmn_addons_desc">Analyze your quiz's or survey's results to see the percentage of users who chose each answer displayed on useful charts. You can then filter that data or export it.</p>
71
+ <a href="http://quizandsurveymaster.com/downloads/results-analysis/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=reporting-and-analysis&utm_campaign=qsm_plugin" target="_blank" class="button">Get This Addon</a>
72
  </div>
73
  <div class="qmn_addons">
74
  <h3 class="qmn_addons_title">Export Results</h3>
75
  <p class="qmn_addons_desc">This add-on gives you the ability to export your quiz results as a CSV file.</p>
76
+ <a href="http://quizandsurveymaster.com/downloads/export-results/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=export-results&utm_campaign=qsm_plugin" target="_blank" class="button">Get This Addon</a>
77
  </div>
78
  <div class="qmn_addons">
79
  <h3 class="qmn_addons_title">Advertisement Be Gone</h3>
80
+ <p class="qmn_addons_desc">This add-on will remove all services/add-on advertisements throughout the plugin.</p>
81
+ <a href="http://quizandsurveymaster.com/downloads/advertisement-gone/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=advertisement-be-gone&utm_campaign=qsm_plugin" target="_blank" class="button">Get This Addon</a>
 
 
 
 
 
82
  </div>
83
  <div class="qmn_addons">
84
+ <h3 class="qmn_addons_title">MailChimp Integration</h3>
85
+ <p class="qmn_addons_desc">Grow your list of subscribers in MailChimp by using this add-on to add users who take your quizzes and surveys!</p>
86
+ <a href="http://quizandsurveymaster.com/downloads/mailchimp-integration/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=mailchimp-integration&utm_campaign=qsm_plugin" target="_blank" class="button">Get This Addon</a>
87
  </div>
88
  <div class="qmn_addons">
89
+ <h3 class="qmn_addons_title">User Dashboard</h3>
90
+ <p class="qmn_addons_desc">This add-on gives you the ability to set up a page where users can review their results from all the quizzes they have taken.</p>
91
+ <a href="http://quizandsurveymaster.com/downloads/user-dashboard/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=user-dashboard&utm_campaign=qsm_plugin" target="_blank" class="button">Get This Addon</a>
92
  </div>
93
  <div class="qmn_addons">
94
+ <h3 class="qmn_addons_title">AWeber Integration</h3>
95
+ <p class="qmn_addons_desc">Grow your list of subscribers in AWeber by using this add-on to add users who take your quizzes!</p>
96
+ <a href="http://quizandsurveymaster.com/downloads/aweber-integration/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=aweber-integration&utm_campaign=qsm_plugin" target="_blank" class="button">Get This Addon</a>
97
  </div>
98
  <div class="qmn_addons">
99
  <h3 class="qmn_addons_title">Extra Template Variables</h3>
100
  <p class="qmn_addons_desc">This addon gives you several more template variables to use in your emails and results pages.</p>
101
+ <a href="http://quizandsurveymaster.com/downloads/extra-template-variables/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=extra-template-variables&utm_campaign=qsm_plugin" target="_blank" class="button">Get This Addon</a>
102
  </div>
103
  <div style="clear:both;">
104
  <br />
105
+ <a href="http://quizandsurveymaster.com/addons/?utm_source=qsm-addons-page&utm_medium=plugin&utm_content=all-addons-bottom&utm_campaign=qsm_plugin" target="_blank" class="button-primary"><?php _e('Browse All Addons', 'quiz-master-next'); ?></a>
106
  <?php
107
  }
108
 
php/admin-results-details-page.php CHANGED
@@ -6,10 +6,8 @@ if ( ! defined( 'ABSPATH' ) ) exit;
6
  * @return type void
7
  * @since 4.4.0
8
  */
9
- function mlw_generate_result_details()
10
- {
11
- if ( !current_user_can('moderate_comments') )
12
- {
13
  return;
14
  }
15
  global $mlwQuizMasterNext;
@@ -20,24 +18,20 @@ function mlw_generate_result_details()
20
  <h2><?php _e('Quiz Results', 'quiz-master-next'); ?></h2>
21
  <h2 class="nav-tab-wrapper">
22
  <?php
23
- foreach($tab_array as $tab)
24
- {
25
  $active_class = '';
26
- if ($active_tab == $tab['slug'])
27
- {
28
  $active_class = 'nav-tab-active';
29
  }
30
- echo "<a href=\"?page=mlw_quiz_result_details&&result_id=".intval($_GET["result_id"])."&&tab=".$tab['slug']."\" class=\"nav-tab $active_class\">".$tab['title']."</a>";
31
  }
32
  ?>
33
  </h2>
34
  <div>
35
  <?php
36
- foreach($tab_array as $tab)
37
- {
38
- if ($active_tab == $tab['slug'])
39
- {
40
- call_user_func($tab['function']);
41
  }
42
  }
43
  ?>
@@ -54,30 +48,24 @@ function mlw_generate_result_details()
54
  * @return void
55
  * @since 4.4.0
56
  */
57
- function qmn_generate_results_details_tab()
58
- {
59
  echo "<br><br>";
60
- $mlw_result_id = intval($_GET["result_id"]);
61
  global $wpdb;
62
  $mlw_results_data = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "mlw_results WHERE result_id=%d", $mlw_result_id ) );
63
 
64
- $previous_results = $wpdb->get_var("SELECT result_id FROM " . $wpdb->prefix . "mlw_results WHERE result_id = (SELECT MAX(result_id) FROM " . $wpdb->prefix . "mlw_results WHERE deleted=0 AND result_id < ".$mlw_result_id.")");
65
- $next_results = $wpdb->get_var("SELECT result_id FROM " . $wpdb->prefix . "mlw_results WHERE result_id = (SELECT MIN(result_id) FROM " . $wpdb->prefix . "mlw_results WHERE deleted=0 AND result_id > ".$mlw_result_id.")");
66
- if (!is_null($previous_results) && $previous_results)
67
- {
68
- echo "<a class='button' href=\"?page=mlw_quiz_result_details&&result_id=".intval($previous_results)."\" >View Previous Results</a> ";
69
  }
70
- if (!is_null($next_results) && $next_results)
71
- {
72
- echo " <a class='button' href=\"?page=mlw_quiz_result_details&&result_id=".intval($next_results)."\" >View Next Results</a>";
73
  }
74
  $settings = (array) get_option( 'qmn-settings' );
75
- if (isset($settings['results_details_template']))
76
- {
77
- $template = htmlspecialchars_decode($settings['results_details_template'], ENT_QUOTES);
78
- }
79
- else
80
- {
81
  $template = "<h2>Quiz Results for %QUIZ_NAME%</h2>
82
  <p>Name Provided: %USER_NAME%</p>
83
  <p>Business Provided: %USER_BUSINESS%</p>
@@ -90,15 +78,17 @@ function qmn_generate_results_details_tab()
90
  <p>The answers were as follows:</p>
91
  %QUESTIONS_ANSWERS%";
92
  }
93
- if (is_serialized($mlw_results_data->quiz_results) && is_array(@unserialize($mlw_results_data->quiz_results)))
94
- {
95
  $results = unserialize($mlw_results_data->quiz_results);
96
- }
97
- else
98
- {
99
  $template = str_replace( "%QUESTIONS_ANSWERS%" , $mlw_results_data->quiz_results, $template);
100
  $template = str_replace( "%TIMER%" , '', $template);
101
  $template = str_replace( "%COMMENT_SECTION%" , '', $template);
 
 
 
 
 
102
  }
103
  $qmn_array_for_variables = array(
104
  'quiz_id' => $mlw_results_data->quiz_id,
@@ -117,8 +107,8 @@ function qmn_generate_results_details_tab()
117
  'comments' => $results[2],
118
  'question_answers_array' => $results[1]
119
  );
120
- $template = apply_filters( 'mlw_qmn_template_variable_results_page', $template, $qmn_array_for_variables);
121
- $template = str_replace( "\n" , "<br>", $template);
122
  echo $template;
123
  }
124
 
@@ -129,12 +119,11 @@ function qmn_generate_results_details_tab()
129
  * @return void
130
  * @since 4.4.0
131
  */
132
- function qmn_results_details_tab()
133
- {
134
  global $mlwQuizMasterNext;
135
- $mlwQuizMasterNext->pluginHelper->register_results_settings_tab(__("Results", 'quiz-master-next'), "qmn_generate_results_details_tab");
136
  }
137
- add_action("plugins_loaded", 'qmn_results_details_tab');
138
 
139
 
140
  /**
@@ -144,33 +133,25 @@ add_action("plugins_loaded", 'qmn_results_details_tab');
144
  * @return type description
145
  * @since 4.4.0
146
  */
147
- function qmn_generate_results_certificate_tab()
148
- {
149
  //Check if user wants to create certificate
150
- if (isset($_POST["create_certificate"]) && $_POST["create_certificate"] == "confirmation")
151
- {
152
  global $wpdb;
153
- $mlw_certificate_id = intval($_GET["result_id"]);
154
  $mlw_quiz_results = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix."mlw_results WHERE result_id=%d", $mlw_certificate_id ) );
155
 
156
  $mlw_certificate_results = $wpdb->get_var( $wpdb->prepare( "SELECT certificate_template FROM ".$wpdb->prefix."mlw_quizzes WHERE quiz_id=%d", $mlw_quiz_results->quiz_id ) );
157
 
158
  //Prepare Certificate
159
- if (is_serialized($mlw_certificate_results) && is_array(@unserialize($mlw_certificate_results)))
160
- {
161
- $mlw_certificate_options = unserialize($mlw_certificate_results);
 
162
  }
163
- else
164
- {
165
- $mlw_certificate_options = array('Enter title here', 'Enter text here', '', '');
166
- }
167
- if (is_serialized($mlw_quiz_results->quiz_results) && is_array(@unserialize($mlw_quiz_results->quiz_results)))
168
- {
169
  $results = unserialize($mlw_quiz_results->quiz_results);
170
- }
171
- else
172
- {
173
- $results = array( 0, '', '');
174
  }
175
  $qmn_array_for_variables = array(
176
  'quiz_id' => $mlw_quiz_results->quiz_id,
@@ -189,8 +170,8 @@ function qmn_generate_results_certificate_tab()
189
  'comments' => $results[2],
190
  'question_answers_array' => $results[1]
191
  );
192
- $template = apply_filters( 'mlw_qmn_template_variable_results_page', $mlw_certificate_options[1], $qmn_array_for_variables);
193
- $template = str_replace( "\n" , "<br>", $template);
194
  $plugindirpath=plugin_dir_path( __FILE__ );
195
  $mlw_qmn_certificate_file=<<<EOC
196
  <?php
@@ -221,9 +202,8 @@ EOC;
221
  <input type="submit" value="<?php _e('Create Certificate','quiz-master-next'); ?>" class="button"/>
222
  </form>
223
  <?php
224
- if (isset($_POST["create_certificate"]) && $_POST["create_certificate"] == "confirmation")
225
- {
226
- echo "<a href='".$mlw_qmn_certificate_filename."' style='color: blue;'>".__('Download Certificate Here','quiz-master-next')."</a><br />";
227
  }
228
  }
229
 
@@ -234,10 +214,9 @@ EOC;
234
  * @return void
235
  * @since 4.4.0
236
  */
237
- function qmn_results_certificate_tab()
238
- {
239
  global $mlwQuizMasterNext;
240
- $mlwQuizMasterNext->pluginHelper->register_results_settings_tab(__("Certificate", 'quiz-master-next'), "qmn_generate_results_certificate_tab");
241
  }
242
- add_action("plugins_loaded", 'qmn_results_certificate_tab');
243
  ?>
6
  * @return type void
7
  * @since 4.4.0
8
  */
9
+ function mlw_generate_result_details() {
10
+ if ( ! current_user_can( 'moderate_comments' ) ) {
 
 
11
  return;
12
  }
13
  global $mlwQuizMasterNext;
18
  <h2><?php _e('Quiz Results', 'quiz-master-next'); ?></h2>
19
  <h2 class="nav-tab-wrapper">
20
  <?php
21
+ foreach( $tab_array as $tab ) {
 
22
  $active_class = '';
23
+ if ( $active_tab == $tab['slug'] ) {
 
24
  $active_class = 'nav-tab-active';
25
  }
26
+ echo "<a href=\"?page=mlw_quiz_result_details&&result_id=" . intval( $_GET["result_id"] ) . "&&tab=" . $tab['slug'] . "\" class=\"nav-tab $active_class\">" . $tab['title'] . "</a>";
27
  }
28
  ?>
29
  </h2>
30
  <div>
31
  <?php
32
+ foreach( $tab_array as $tab ) {
33
+ if ( $active_tab == $tab['slug'] ) {
34
+ call_user_func( $tab['function'] );
 
 
35
  }
36
  }
37
  ?>
48
  * @return void
49
  * @since 4.4.0
50
  */
51
+ function qmn_generate_results_details_tab() {
 
52
  echo "<br><br>";
53
+ $mlw_result_id = intval( $_GET["result_id"] );
54
  global $wpdb;
55
  $mlw_results_data = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "mlw_results WHERE result_id=%d", $mlw_result_id ) );
56
 
57
+ $previous_results = $wpdb->get_var( "SELECT result_id FROM " . $wpdb->prefix . "mlw_results WHERE result_id = (SELECT MAX(result_id) FROM " . $wpdb->prefix . "mlw_results WHERE deleted=0 AND result_id < ".$mlw_result_id.")" );
58
+ $next_results = $wpdb->get_var( "SELECT result_id FROM " . $wpdb->prefix . "mlw_results WHERE result_id = (SELECT MIN(result_id) FROM " . $wpdb->prefix . "mlw_results WHERE deleted=0 AND result_id > ".$mlw_result_id.")" );
59
+ if ( ! is_null( $previous_results ) && $previous_results ) {
60
+ echo "<a class='button' href=\"?page=mlw_quiz_result_details&&result_id=" . intval( $previous_results ) . "\" >View Previous Results</a> ";
 
61
  }
62
+ if ( ! is_null( $next_results ) && $next_results ) {
63
+ echo " <a class='button' href=\"?page=mlw_quiz_result_details&&result_id=" . intval( $next_results ) . "\" >View Next Results</a>";
 
64
  }
65
  $settings = (array) get_option( 'qmn-settings' );
66
+ if ( isset( $settings['results_details_template'] ) ) {
67
+ $template = htmlspecialchars_decode( $settings['results_details_template'], ENT_QUOTES );
68
+ } else {
 
 
 
69
  $template = "<h2>Quiz Results for %QUIZ_NAME%</h2>
70
  <p>Name Provided: %USER_NAME%</p>
71
  <p>Business Provided: %USER_BUSINESS%</p>
78
  <p>The answers were as follows:</p>
79
  %QUESTIONS_ANSWERS%";
80
  }
81
+ if ( is_serialized( $mlw_results_data->quiz_results ) && is_array( @unserialize( $mlw_results_data->quiz_results ) ) ) {
 
82
  $results = unserialize($mlw_results_data->quiz_results);
83
+ } else {
 
 
84
  $template = str_replace( "%QUESTIONS_ANSWERS%" , $mlw_results_data->quiz_results, $template);
85
  $template = str_replace( "%TIMER%" , '', $template);
86
  $template = str_replace( "%COMMENT_SECTION%" , '', $template);
87
+ $results = array(
88
+ 0,
89
+ array(),
90
+ ''
91
+ );
92
  }
93
  $qmn_array_for_variables = array(
94
  'quiz_id' => $mlw_results_data->quiz_id,
107
  'comments' => $results[2],
108
  'question_answers_array' => $results[1]
109
  );
110
+ $template = apply_filters( 'mlw_qmn_template_variable_results_page', $template, $qmn_array_for_variables );
111
+ $template = str_replace( "\n" , "<br>", $template );
112
  echo $template;
113
  }
114
 
119
  * @return void
120
  * @since 4.4.0
121
  */
122
+ function qmn_results_details_tab() {
 
123
  global $mlwQuizMasterNext;
124
+ $mlwQuizMasterNext->pluginHelper->register_results_settings_tab( __( "Results", 'quiz-master-next' ), "qmn_generate_results_details_tab" );
125
  }
126
+ add_action( "plugins_loaded", 'qmn_results_details_tab' );
127
 
128
 
129
  /**
133
  * @return type description
134
  * @since 4.4.0
135
  */
136
+ function qmn_generate_results_certificate_tab() {
 
137
  //Check if user wants to create certificate
138
+ if ( isset( $_POST["create_certificate"] ) && "confirmation" == $_POST["create_certificate"] ) {
 
139
  global $wpdb;
140
+ $mlw_certificate_id = intval( $_GET["result_id"] );
141
  $mlw_quiz_results = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix."mlw_results WHERE result_id=%d", $mlw_certificate_id ) );
142
 
143
  $mlw_certificate_results = $wpdb->get_var( $wpdb->prepare( "SELECT certificate_template FROM ".$wpdb->prefix."mlw_quizzes WHERE quiz_id=%d", $mlw_quiz_results->quiz_id ) );
144
 
145
  //Prepare Certificate
146
+ if ( is_serialized( $mlw_certificate_results ) && is_array( @unserialize( $mlw_certificate_results ) ) ) {
147
+ $mlw_certificate_options = unserialize( $mlw_certificate_results );
148
+ } else {
149
+ $mlw_certificate_options = array( 'Enter title here', 'Enter text here', '', '' );
150
  }
151
+ if ( is_serialized( $mlw_quiz_results->quiz_results ) && is_array( @unserialize( $mlw_quiz_results->quiz_results ) ) ) {
 
 
 
 
 
152
  $results = unserialize($mlw_quiz_results->quiz_results);
153
+ } else {
154
+ $results = array( 0, '', '' );
 
 
155
  }
156
  $qmn_array_for_variables = array(
157
  'quiz_id' => $mlw_quiz_results->quiz_id,
170
  'comments' => $results[2],
171
  'question_answers_array' => $results[1]
172
  );
173
+ $template = apply_filters( 'mlw_qmn_template_variable_results_page', $mlw_certificate_options[1], $qmn_array_for_variables );
174
+ $template = str_replace( "\n" , "<br>", $template );
175
  $plugindirpath=plugin_dir_path( __FILE__ );
176
  $mlw_qmn_certificate_file=<<<EOC
177
  <?php
202
  <input type="submit" value="<?php _e('Create Certificate','quiz-master-next'); ?>" class="button"/>
203
  </form>
204
  <?php
205
+ if ( isset( $_POST["create_certificate"] ) && "confirmation" == $_POST["create_certificate"] ) {
206
+ echo "<a href='$mlw_qmn_certificate_filename' style='color: blue;'>" . __( 'Download Certificate Here','quiz-master-next' ) . "</a><br />";
 
207
  }
208
  }
209
 
214
  * @return void
215
  * @since 4.4.0
216
  */
217
+ function qmn_results_certificate_tab() {
 
218
  global $mlwQuizMasterNext;
219
+ $mlwQuizMasterNext->pluginHelper->register_results_settings_tab( __( "Certificate", 'quiz-master-next' ), "qmn_generate_results_certificate_tab" );
220
  }
221
+ add_action( "plugins_loaded", 'qmn_results_certificate_tab' );
222
  ?>
php/adverts-generate.php CHANGED
@@ -18,19 +18,24 @@ function mlw_qmn_show_adverts()
18
  $mlw_random_int = rand(0, 4);
19
  switch ($mlw_random_int) {
20
  case 0:
21
- $mlw_advert_text = "Need support or features? Check out our Premium Support options! Visit our <a href=\"http://quizandsurveymaster.com/support-levels/\">Quiz And Survey Master Support</a> for details!";
 
22
  break;
23
  case 1:
24
- $mlw_advert_text = "Want 25% off your next addon purchase? Keep updated on our news, updated, and more by <a href=\"http://quizandsurveymaster.com/subscribe-to-our-newsletter/\">subscribing to our mailing list</a> and receive a 25% discount on your next purchase!";
 
25
  break;
26
  case 2:
27
- $mlw_advert_text = "Would you like to support this plugin but do not need or want premium support? Please consider our inexpensive 'Advertisements Be Gone' add-on which will get rid of these ads. Visit our <a href=\"http://quizandsurveymaster.com/addons/\">Addon Store</a> for details!";
 
28
  break;
29
  case 3:
30
- $mlw_advert_text = "Need help keeping your plugins, themes, and WordPress up to date? Want around the clock security monitoring and off-site back-ups? How about WordPress training videos, a monthly status report, and support/consultation? Check out our <a href=\"http://mylocalwebstop.com/maintenance/\">WordPress Maintenance Services</a> for more details!";
 
31
  break;
32
  default:
33
- $mlw_advert_text = "Need support or features? Check out our Premium Support options! Visit our <a href=\"http://quizandsurveymaster.com/support-levels/\">Quiz And Survey Master Support</a> for details!";
 
34
  }
35
  $mlw_advert .= "
36
  <style>
18
  $mlw_random_int = rand(0, 4);
19
  switch ($mlw_random_int) {
20
  case 0:
21
+ // Support Advert 1
22
+ $mlw_advert_text = "Need support or features? Check out our Premium Support options! Visit our <a href=\"http://quizandsurveymaster.com/support-levels/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=support-advert-1&utm_campaign=qsm_plugin\">Quiz And Survey Master Support</a> for details!";
23
  break;
24
  case 1:
25
+ // Subscribe Newsletter 1
26
+ $mlw_advert_text = "Want 25% off your next addon purchase? Keep updated on our news, updated, and more by <a href=\"http://quizandsurveymaster.com/subscribe-to-our-newsletter/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=subscribe-newsletter-1&utm_campaign=qsm_plugin\">subscribing to our mailing list</a> and receive a 25% discount on your next purchase!";
27
  break;
28
  case 2:
29
+ // Continued development 1
30
+ $mlw_advert_text = "Are you finding this plugin very beneficial? Please consider checking out our premium addons which help support continued development of this plugin. Visit our <a href=\"http://quizandsurveymaster.com/addons/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=continued-development-1&utm_campaign=qsm_plugin\">Addon Store</a> for details!";
31
  break;
32
  case 3:
33
+ // Reporting and anaylsis 1
34
+ $mlw_advert_text = "Are you receiving a lot of responses to your quizzes and surveys? Consider our Reporting and Anaylsis addon which analyzes the data for you and allows you to filter the data as well as export it! <a href=\"http://quizandsurveymaster.com/downloads/results-analysis/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=reporting-analysis-1&utm_campaign=qsm_plugin\">Click here for more details!</a>";
35
  break;
36
  default:
37
+ // Support Advert 2
38
+ $mlw_advert_text = "Need support or features? Check out our Premium Support options! Visit our <a href=\"http://quizandsurveymaster.com/support-levels/?utm_source=qsm-plugin-ads&utm_medium=plugin&utm_content=support-advert-2&utm_campaign=qsm_plugin\">Quiz And Survey Master Support</a> for details!";
39
  }
40
  $mlw_advert .= "
41
  <style>
php/help-page.php CHANGED
@@ -15,7 +15,7 @@ function mlw_generate_help_page()
15
  }
16
 
17
  wp_enqueue_style( 'qmn_admin_style', plugins_url( '../css/qmn_admin.css' , __FILE__ ) );
18
-
19
  ///Creates the widgets
20
  add_meta_box("wpss_mrts", __('Need Help?', 'quiz-master-next'), "qmn_documentation_meta_box_content", "meta_box_help");
21
  add_meta_box("wpss_mrts", __('Support', 'quiz-master-next'), "qmn_support_meta_box_content", "meta_box_support");
@@ -55,9 +55,9 @@ function qmn_documentation_meta_box_content()
55
  <p><?php _e('Need help with the plugin? Try any of the following:', 'quiz-master-next'); ?></p>
56
  <ul>
57
  <li>To report a bug, issue, or make a feature request, please create an issue in our <a href="https://github.com/fpcorso/quiz_master_next/issues">Github Issue Tracker</a></li>
58
- <li>For assistance in using the plugin, visit our <a href="http://quizandsurveymaster.com/documentation/">documentation</a> for using this plugin</li>
59
  <li>For support, fill out the form in the Support widget to send us an email</li>
60
- <li>For support, fill out the form on our <a href="http://quizandsurveymaster.com/contact-us/">Contact Us Page</a></li>
61
  <li>For support, create a topic in the <a href="https://wordpress.org/support/plugin/quiz-master-next">WordPress Support Forums</a></li>
62
  </ul>
63
  <?php
@@ -190,7 +190,7 @@ function qmn_get_system_info()
190
  {
191
  global $wpdb;
192
  global $mlwQuizMasterNext;
193
-
194
  $qmn_sys_info = "";
195
 
196
  $theme_data = wp_get_theme();
@@ -252,7 +252,7 @@ function qmn_get_system_info()
252
  $qmn_sys_info .= "Total Active Questions : ".$mlw_stat_total_active_questions."<br />";
253
  $qmn_sys_info .= "Total Results : ".$qmn_total_results."<br />";
254
  $qmn_sys_info .= "Total Active Results : ".$qmn_total_active_results."<br />";
255
-
256
  $qmn_sys_info .= "<h3>QMN Recent Logs</h3><br />";
257
  $recent_errors = $mlwQuizMasterNext->log_manager->get_logs();
258
  if ( $recent_errors ) {
15
  }
16
 
17
  wp_enqueue_style( 'qmn_admin_style', plugins_url( '../css/qmn_admin.css' , __FILE__ ) );
18
+
19
  ///Creates the widgets
20
  add_meta_box("wpss_mrts", __('Need Help?', 'quiz-master-next'), "qmn_documentation_meta_box_content", "meta_box_help");
21
  add_meta_box("wpss_mrts", __('Support', 'quiz-master-next'), "qmn_support_meta_box_content", "meta_box_support");
55
  <p><?php _e('Need help with the plugin? Try any of the following:', 'quiz-master-next'); ?></p>
56
  <ul>
57
  <li>To report a bug, issue, or make a feature request, please create an issue in our <a href="https://github.com/fpcorso/quiz_master_next/issues">Github Issue Tracker</a></li>
58
+ <li>For assistance in using the plugin, visit our <a href="http://quizandsurveymaster.com/documentation/?utm_source=qsm-help-page&utm_medium=plugin&utm_campaign=qsm_plugin">documentation</a> for using this plugin</li>
59
  <li>For support, fill out the form in the Support widget to send us an email</li>
60
+ <li>For support, fill out the form on our <a href="http://quizandsurveymaster.com/contact-us/?utm_source=qsm-help-page&utm_medium=plugin&utm_campaign=qsm_plugin">Contact Us Page</a></li>
61
  <li>For support, create a topic in the <a href="https://wordpress.org/support/plugin/quiz-master-next">WordPress Support Forums</a></li>
62
  </ul>
63
  <?php
190
  {
191
  global $wpdb;
192
  global $mlwQuizMasterNext;
193
+
194
  $qmn_sys_info = "";
195
 
196
  $theme_data = wp_get_theme();
252
  $qmn_sys_info .= "Total Active Questions : ".$mlw_stat_total_active_questions."<br />";
253
  $qmn_sys_info .= "Total Results : ".$qmn_total_results."<br />";
254
  $qmn_sys_info .= "Total Active Results : ".$qmn_total_active_results."<br />";
255
+
256
  $qmn_sys_info .= "<h3>QMN Recent Logs</h3><br />";
257
  $recent_errors = $mlwQuizMasterNext->log_manager->get_logs();
258
  if ( $recent_errors ) {
php/options-page-preview-tab.php CHANGED
@@ -24,7 +24,7 @@ function mlw_options_preview_tab_content()
24
  {
25
  ?>
26
  <div id="tabs-preview" class="mlw_tab_content">
27
- <p>If your quiz looks different on the front end compared to this preview, then there is a conflict with your theme. Check out our <a href="http://quizandsurveymaster.com/common-theme-conflict-fixes/">Common Theme Conflict Fixes</a>.</a></p>
28
  <?php
29
  echo do_shortcode( '[mlw_quizmaster quiz='.intval($_GET["quiz_id"]).']' );
30
  ?>
24
  {
25
  ?>
26
  <div id="tabs-preview" class="mlw_tab_content">
27
+ <p>If your quiz looks different on the front end compared to this preview, then there is a conflict with your theme. Check out our <a href="http://quizandsurveymaster.com/common-theme-conflict-fixes/?utm_source=qsm-preview-tab&utm_medium=plugin&utm_campaign=qsm_plugin">Common Theme Conflict Fixes</a>.</a></p>
28
  <?php
29
  echo do_shortcode( '[mlw_quizmaster quiz='.intval($_GET["quiz_id"]).']' );
30
  ?>
php/quiz-options-page.php CHANGED
@@ -73,7 +73,7 @@ function mlw_generate_quiz_options()
73
  }
74
  ?>
75
  </h2>
76
- <div>
77
  <?php
78
  foreach($tab_array as $tab)
79
  {
73
  }
74
  ?>
75
  </h2>
76
+ <div class="mlw_tab_content">
77
  <?php
78
  foreach($tab_array as $tab)
79
  {
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Quiz And Survey Master (Formerly Quiz Master Next) ===
2
  Contributors: mylocalwebstop, fpcorso, elrath
3
  Donate link: http://mylocalwebstop.com/downloads/donation-service-payment/
4
- Tags: quiz, survey, quizzes, surveys, test, score, exam, questionnaire, email, answer, question, certificate, points, results, math
5
- Requires at least: 3.8.1
6
- Tested up to: 4.3
7
- Stable tag: 4.6.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -13,8 +13,8 @@ Easily and quickly add unlimited quizzes and surveys to your website.
13
  == Description ==
14
 
15
  = Demoes! =
16
- You can check out the sample quiz with various questions types here: [Sample Quiz](http://quizandsurveymaster.com/quiz/sample-quiz/)!
17
- You can check out the sample survey with pagination here: [Sample Survey](http://quizandsurveymaster.com/quiz/sample-survey/)!
18
 
19
  = Customize Your Text =
20
  All the text your users see can be **customized**. Everything from the text blocks throughout the quiz or survey to the submit button.
@@ -71,11 +71,11 @@ Quiz And Survey Master is now on [GitHub](https://github.com/fpcorso/quiz_master
71
  = Premium Quiz And Survey Master Add-ons =
72
  While Quiz And Survey Master is fully functional and is packed full of features that will meet the needs of most, we do offer various extra features including:
73
 
74
- * [Export Results](http://quizandsurveymaster.com/downloads/export-results/)
75
- * [Reporting & Analysis](http://quizandsurveymaster.com/downloads/results-analysis/)
76
- * [Aweber Integration](http://quizandsurveymaster.com/downloads/aweber-integration/)
77
- * [Daily Limits](http://quizandsurveymaster.com/downloads/daily-limit/)
78
- * And **many** more available in our [Quiz And Survey Master Addon Store](http://quizandsurveymaster.com/addons/)
79
 
80
  == Installation ==
81
 
@@ -87,7 +87,7 @@ While Quiz And Survey Master is fully functional and is packed full of features
87
  == Frequently Asked Questions ==
88
 
89
  = How do you use that feature? =
90
- We have begun creating documentation for the plugin. You can view the documentation here: [Documentation](http://quizandsurveymaster.com/documentation/) If you still have any trouble, feel free to use the widget on the quiz dashboard within the plugin to contact me and I will help you.
91
 
92
  = I want to edit the output for %QUESTIONS_ANSWERS%. Can I do that? =
93
 
@@ -99,7 +99,7 @@ To make these changes, you will edit the %QUESTIONS_ANSWERS% variable. To do tha
99
 
100
  = My preview looks different than my quiz. What can I do? =
101
 
102
- This is usually a theme conflict. You can [checkout out our common conflict solutions](http://quizandsurveymaster.com/common-theme-conflict-fixes/) or feel free to contact us.
103
 
104
  == Screenshots ==
105
 
@@ -113,6 +113,11 @@ This is usually a theme conflict. You can [checkout out our common conflict solu
113
 
114
  == Changelog ==
115
 
 
 
 
 
 
116
  = 4.6.3 (November 4, 2015) =
117
  * Fixes certificate bug that was preventing quiz/survey submissions
118
  * Fixes undefined quiz id bug that was affecting some addons
@@ -121,22 +126,9 @@ This is usually a theme conflict. You can [checkout out our common conflict solu
121
  = 4.6.2 (October 21, 2015) =
122
  * Bug fix for browsers with JavaScript turned off
123
 
124
- = 4.6.1 (October 20, 2015) =
125
- * Bug fix for rare bug preventing IE usage on a small number of sites
126
-
127
- = 4.6.0 (October 20, 2015) =
128
- * Adds new dynamic form submission ([Github Issue #206](https://github.com/fpcorso/quiz_master_next/issues/206))
129
- * Adds new From email address option ([Github Issue #312](https://github.com/fpcorso/quiz_master_next/issues/312))
130
- * Adds new Reply-To admin email option
131
- * Fixed timer issue that started timer but prevent access to next page ([Github Issue #302](https://github.com/fpcorso/quiz_master_next/issues/302))
132
- * Fixes redirect bug that prevented submissions from saving ([Github Issue #201](https://github.com/fpcorso/quiz_master_next/issues/201))
133
- * Fixes required question bug that prevented multiple quizzes/surveys on one page ([Github Issue #304](https://github.com/fpcorso/quiz_master_next/issues/304))
134
- * Re-wrote front-end JavaScript to fix a variety of smaller bugs
135
- * Renamed several file names and functions to align more with WordPress coding standards
136
-
137
  ([Read Full Changelog](https://github.com/fpcorso/quiz_master_next/blob/master/CHANGELOG.md))
138
 
139
  == Upgrade Notice ==
140
 
141
- = 4.6.1 =
142
- Upgrade to fix rare bug preventing IE usage on a small number of sites.
1
  === Quiz And Survey Master (Formerly Quiz Master Next) ===
2
  Contributors: mylocalwebstop, fpcorso, elrath
3
  Donate link: http://mylocalwebstop.com/downloads/donation-service-payment/
4
+ Tags: quiz, survey, quizzes, surveys, test, score, exam, questionnaire, email, answer, question, certificate, points, results, math, mailchimp, newsletter, optin
5
+ Requires at least: 4.0.1
6
+ Tested up to: 4.4
7
+ Stable tag: 4.6.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
13
  == Description ==
14
 
15
  = Demoes! =
16
+ You can check out the sample quiz with various questions types here: [Sample Quiz](http://quizandsurveymaster.com/quiz/sample-quiz/?utm_source=readme&utm_medium=plugin&utm_content=sample-quiz&utm_campaign=qsm_plugin)!
17
+ You can check out the sample survey with pagination here: [Sample Survey](http://quizandsurveymaster.com/quiz/sample-survey/?utm_source=readme&utm_medium=plugin&utm_content=sample-survey&utm_campaign=qsm_plugin)!
18
 
19
  = Customize Your Text =
20
  All the text your users see can be **customized**. Everything from the text blocks throughout the quiz or survey to the submit button.
71
  = Premium Quiz And Survey Master Add-ons =
72
  While Quiz And Survey Master is fully functional and is packed full of features that will meet the needs of most, we do offer various extra features including:
73
 
74
+ * [Landing Page](http://quizandsurveymaster.com/downloads/landing-page/?utm_source=readme&utm_medium=plugin&utm_content=landing-page&utm_campaign=qsm_plugin)
75
+ * [Export Results](http://quizandsurveymaster.com/downloads/export-results/?utm_source=readme&utm_medium=plugin&utm_content=export-results&utm_campaign=qsm_plugin)
76
+ * [Reporting & Analysis](http://quizandsurveymaster.com/downloads/results-analysis/?utm_source=readme&utm_medium=plugin&utm_content=reporting-analysis&utm_campaign=qsm_plugin)
77
+ * [MailChimp Integration](http://quizandsurveymaster.com/downloads/mailchimp-integration/?utm_source=readme&utm_medium=plugin&utm_content=mailchimp-integration&utm_campaign=qsm_plugin)
78
+ * And **many** more available in our [Quiz And Survey Master Addon Store](http://quizandsurveymaster.com/addons/?utm_source=readme&utm_medium=plugin&utm_content=all-addons&utm_campaign=qsm_plugin)
79
 
80
  == Installation ==
81
 
87
  == Frequently Asked Questions ==
88
 
89
  = How do you use that feature? =
90
+ We have begun creating documentation for the plugin. You can view the documentation here: [Documentation](http://quizandsurveymaster.com/documentation/?utm_source=readme&utm_medium=plugin&utm_content=faq-documentation&utm_campaign=qsm_plugin) If you still have any trouble, feel free to use the widget on the quiz dashboard within the plugin to contact me and I will help you.
91
 
92
  = I want to edit the output for %QUESTIONS_ANSWERS%. Can I do that? =
93
 
99
 
100
  = My preview looks different than my quiz. What can I do? =
101
 
102
+ This is usually a theme conflict. You can [checkout out our common conflict solutions](http://quizandsurveymaster.com/common-theme-conflict-fixes/?utm_source=readme&utm_medium=plugin&utm_content=faq-common-theme-conflicts&utm_campaign=qsm_plugin) or feel free to contact us.
103
 
104
  == Screenshots ==
105
 
113
 
114
  == Changelog ==
115
 
116
+ = 4.6.4 (December 15, 2015) =
117
+ * Fixes undefined results notice displayed on admin results for some users
118
+ * Fixes bug that was causing the disable radio buttons option to not work in all browsers
119
+ * Minor design changes
120
+
121
  = 4.6.3 (November 4, 2015) =
122
  * Fixes certificate bug that was preventing quiz/survey submissions
123
  * Fixes undefined quiz id bug that was affecting some addons
126
  = 4.6.2 (October 21, 2015) =
127
  * Bug fix for browsers with JavaScript turned off
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  ([Read Full Changelog](https://github.com/fpcorso/quiz_master_next/blob/master/CHANGELOG.md))
130
 
131
  == Upgrade Notice ==
132
 
133
+ = 4.6.4 =
134
+ Upgrade to fix minor bugs