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

Version Description

(September 10, 2016) = * Closed Bug: From Email Bug Causing 500 Error On WP 4.6 - Issue #473 * Closed Enhancement: Table Styles Don't Match Default WordPress Styles. - Issue #471 * Closed Bug: Tracking manager causes admin server error when request error occurs. - Issue #470

Download this release

Release Info

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

Code changes from version 4.7.6 to 4.7.7

mlw_quizmaster2.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Quiz And Survey Master
4
  * Description: Easily and quickly add quizzes and surveys to your website.
5
- * Version: 4.7.6
6
  * Author: Frank Corso
7
  * Author URI: http://www.quizandsurveymaster.com/
8
  * Plugin URI: http://www.quizandsurveymaster.com/
@@ -10,7 +10,7 @@
10
  * Domain Path: /languages
11
  *
12
  * @author Frank Corso
13
- * @version 4.7.6
14
  */
15
  if ( ! defined( 'ABSPATH' ) ) exit;
16
 
@@ -30,7 +30,7 @@ class MLWQuizMasterNext
30
  * @var string
31
  * @since 4.0.0
32
  */
33
- public $version = '4.7.6';
34
 
35
  /**
36
  * 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.7.7
6
  * Author: Frank Corso
7
  * Author URI: http://www.quizandsurveymaster.com/
8
  * Plugin URI: http://www.quizandsurveymaster.com/
10
  * Domain Path: /languages
11
  *
12
  * @author Frank Corso
13
+ * @version 4.7.7
14
  */
15
  if ( ! defined( 'ABSPATH' ) ) exit;
16
 
30
  * @var string
31
  * @since 4.0.0
32
  */
33
+ public $version = '4.7.7';
34
 
35
  /**
36
  * QMN Alert Manager Object
php/about-page.php CHANGED
@@ -48,7 +48,7 @@ function mlw_generate_about_page()
48
  </div>
49
  <div id="mlw_quiz_changelog" class="qmn_tab" style="display: none;">
50
  <h2>Changelog</h2>
51
- <?php QSM_Changelog_Generator::get_changelog_list( 'fpcorso/quiz_master_next', 27 ); ?>
52
  </div>
53
  <div id="qmn_contributors" class="qmn_tab" style="display:none;">
54
  <h2>GitHub Contributors</h2>
48
  </div>
49
  <div id="mlw_quiz_changelog" class="qmn_tab" style="display: none;">
50
  <h2>Changelog</h2>
51
+ <?php QSM_Changelog_Generator::get_changelog_list( 'fpcorso/quiz_master_next', 28 ); ?>
52
  </div>
53
  <div id="qmn_contributors" class="qmn_tab" style="display:none;">
54
  <h2>GitHub Contributors</h2>
php/admin-results-page.php CHANGED
@@ -232,7 +232,7 @@ function mlw_generate_quiz_results()
232
  }
233
  ?>
234
  <input type="hidden" name="page" value="mlw_quiz_results">
235
- <p class="search-box">
236
  <label for="qmn_search_phrase">Search Results:</label>
237
  <input type="search" id="qmn_search_phrase" name="qmn_search_phrase" value="">
238
  <label for="qmn_order_by">Order By:</label>
@@ -252,7 +252,7 @@ function mlw_generate_quiz_results()
252
  <table class=widefat>
253
  <thead>
254
  <tr>
255
- <th><input type="checkbox" id="qmn_check_all" /></th>
256
  <th><?php _e('Actions','quiz-master-next'); ?></th>
257
  <th><?php _e('Quiz Name','quiz-master-next'); ?></th>
258
  <th><?php _e('Score','quiz-master-next'); ?></th>
@@ -291,26 +291,26 @@ function mlw_generate_quiz_results()
291
 
292
  $quotes_list .= "<tr{$alternate}>";
293
  $quotes_list .= "<td><input type='checkbox' class='qmn_delete_checkbox' name='delete_results[]' value='".$mlw_quiz_info->result_id. "' /></td>";
294
- $quotes_list .= "<td><span style='color:green;font-size:16px;'><a href='admin.php?page=mlw_quiz_result_details&&result_id=".$mlw_quiz_info->result_id."'>View</a>|<a onclick=\"deleteResults('".$mlw_quiz_info->result_id."','".esc_js($mlw_quiz_info->quiz_name)."')\" href='#'>Delete</a></span></td>";
295
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->quiz_name . "</span></td>";
296
  if ($mlw_quiz_info->quiz_system == 0)
297
  {
298
- $quotes_list .= "<td class='post-title column-title'><span style='font-size:16px;'>" . $mlw_quiz_info->correct ." out of ".$mlw_quiz_info->total." or ".$mlw_quiz_info->correct_score."%</span></td>";
299
  }
300
  if ($mlw_quiz_info->quiz_system == 1)
301
  {
302
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->point_score . " Points</span></td>";
303
  }
304
  if ($mlw_quiz_info->quiz_system == 2)
305
  {
306
- $quotes_list .= "<td><span style='font-size:16px;'>".__('Not Graded','quiz-master-next')."</span></td>";
307
  }
308
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_complete_time ."</span></td>";
309
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->name ."</span></td>";
310
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->business ."</span></td>";
311
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->email ."</span></td>";
312
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->phone ."</span></td>";
313
- $quotes_list .= "<td><span style='font-size:16px;'>" . $mlw_quiz_info->time_taken ."</span></td>";
314
  $quotes_list .= "</tr>";
315
  }
316
  $display .= "<tbody id=\"the-list\">{$quotes_list}</tbody>";
232
  }
233
  ?>
234
  <input type="hidden" name="page" value="mlw_quiz_results">
235
+ <p class="search-box" style="margin-bottom: 10px;">
236
  <label for="qmn_search_phrase">Search Results:</label>
237
  <input type="search" id="qmn_search_phrase" name="qmn_search_phrase" value="">
238
  <label for="qmn_order_by">Order By:</label>
252
  <table class=widefat>
253
  <thead>
254
  <tr>
255
+ <th><input type="checkbox" id="qmn_check_all" style="margin-left: 0;"/></th>
256
  <th><?php _e('Actions','quiz-master-next'); ?></th>
257
  <th><?php _e('Quiz Name','quiz-master-next'); ?></th>
258
  <th><?php _e('Score','quiz-master-next'); ?></th>
291
 
292
  $quotes_list .= "<tr{$alternate}>";
293
  $quotes_list .= "<td><input type='checkbox' class='qmn_delete_checkbox' name='delete_results[]' value='".$mlw_quiz_info->result_id. "' /></td>";
294
+ $quotes_list .= "<td><span><a href='admin.php?page=mlw_quiz_result_details&&result_id=".$mlw_quiz_info->result_id."'>View</a>|<a style='color:red;' onclick=\"deleteResults('".$mlw_quiz_info->result_id."','".esc_js($mlw_quiz_info->quiz_name)."')\" href='#'>Delete</a></span></td>";
295
+ $quotes_list .= "<td><span>" . $mlw_quiz_info->quiz_name . "</span></td>";
296
  if ($mlw_quiz_info->quiz_system == 0)
297
  {
298
+ $quotes_list .= "<td class='post-title column-title'><span>" . $mlw_quiz_info->correct ." out of ".$mlw_quiz_info->total." or ".$mlw_quiz_info->correct_score."%</span></td>";
299
  }
300
  if ($mlw_quiz_info->quiz_system == 1)
301
  {
302
+ $quotes_list .= "<td><span>" . $mlw_quiz_info->point_score . " Points</span></td>";
303
  }
304
  if ($mlw_quiz_info->quiz_system == 2)
305
  {
306
+ $quotes_list .= "<td><span>".__('Not Graded','quiz-master-next')."</span></td>";
307
  }
308
+ $quotes_list .= "<td><span>" . $mlw_complete_time ."</span></td>";
309
+ $quotes_list .= "<td><span>" . $mlw_quiz_info->name ."</span></td>";
310
+ $quotes_list .= "<td><span>" . $mlw_quiz_info->business ."</span></td>";
311
+ $quotes_list .= "<td><span>" . $mlw_quiz_info->email ."</span></td>";
312
+ $quotes_list .= "<td><span>" . $mlw_quiz_info->phone ."</span></td>";
313
+ $quotes_list .= "<td><span>" . $mlw_quiz_info->time_taken ."</span></td>";
314
  $quotes_list .= "</tr>";
315
  }
316
  $display .= "<tbody id=\"the-list\">{$quotes_list}</tbody>";
php/class-qmn-quiz-manager.php CHANGED
@@ -1008,6 +1008,14 @@ EOC;
1008
  );
1009
  }
1010
 
 
 
 
 
 
 
 
 
1011
  //Prepare email attachments
1012
  $attachments = array();
1013
  $attachments = apply_filters( 'qsm_user_email_attachments', $attachments, $qmn_array_for_variables );
@@ -1093,10 +1101,8 @@ EOC;
1093
  add_filter( 'wp_mail_content_type', 'mlw_qmn_set_html_content_type' );
1094
 
1095
  $mlw_message = "";
1096
- if ($qmn_quiz_options->send_admin_email == "0")
1097
- {
1098
- if ($qmn_quiz_options->admin_email != "")
1099
- {
1100
  $from_email_array = maybe_unserialize( $qmn_quiz_options->email_from_text );
1101
  if ( ! isset( $from_email_array["from_email"] ) ) {
1102
  $from_email_array = array(
@@ -1105,6 +1111,15 @@ EOC;
1105
  'reply_to' => 1
1106
  );
1107
  }
 
 
 
 
 
 
 
 
 
1108
  $mlw_message = "";
1109
  $mlw_subject = "";
1110
  if (is_serialized($qmn_quiz_options->admin_email_template) && is_array(@unserialize($qmn_quiz_options->admin_email_template)))
@@ -1178,9 +1193,11 @@ EOC;
1178
  if ( $from_email_array["reply_to"] == 0 ) {
1179
  $headers[] = 'Reply-To: '.$qmn_array_for_variables["user_name"]." <".$qmn_array_for_variables["user_email"].">";
1180
  }
1181
- $mlw_qmn_admin_emails = explode( ",", $qmn_quiz_options->admin_email );
1182
- foreach( $mlw_qmn_admin_emails as $admin_email ) {
1183
- wp_mail( $admin_email, $mlw_subject, $mlw_message, $headers );
 
 
1184
  }
1185
  }
1186
 
1008
  );
1009
  }
1010
 
1011
+ if ( ! is_email( $from_email_array["from_email"] ) ) {
1012
+ if ( is_email( $qmn_quiz_options->admin_email ) ) {
1013
+ $from_email_array["from_email"] = $qmn_quiz_options->admin_email;
1014
+ } else {
1015
+ $from_email_array["from_email"] = get_option( 'admin_email ', 'test@example.com' );
1016
+ }
1017
+ }
1018
+
1019
  //Prepare email attachments
1020
  $attachments = array();
1021
  $attachments = apply_filters( 'qsm_user_email_attachments', $attachments, $qmn_array_for_variables );
1101
  add_filter( 'wp_mail_content_type', 'mlw_qmn_set_html_content_type' );
1102
 
1103
  $mlw_message = "";
1104
+ if ( $qmn_quiz_options->send_admin_email == "0" ) {
1105
+ if ( $qmn_quiz_options->admin_email != "" ) {
 
 
1106
  $from_email_array = maybe_unserialize( $qmn_quiz_options->email_from_text );
1107
  if ( ! isset( $from_email_array["from_email"] ) ) {
1108
  $from_email_array = array(
1111
  'reply_to' => 1
1112
  );
1113
  }
1114
+
1115
+ if ( ! is_email( $from_email_array["from_email"] ) ) {
1116
+ if ( is_email( $qmn_quiz_options->admin_email ) ) {
1117
+ $from_email_array["from_email"] = $qmn_quiz_options->admin_email;
1118
+ } else {
1119
+ $from_email_array["from_email"] = get_option( 'admin_email ', 'test@example.com' );
1120
+ }
1121
+ }
1122
+
1123
  $mlw_message = "";
1124
  $mlw_subject = "";
1125
  if (is_serialized($qmn_quiz_options->admin_email_template) && is_array(@unserialize($qmn_quiz_options->admin_email_template)))
1193
  if ( $from_email_array["reply_to"] == 0 ) {
1194
  $headers[] = 'Reply-To: '.$qmn_array_for_variables["user_name"]." <".$qmn_array_for_variables["user_email"].">";
1195
  }
1196
+ $admin_emails = explode( ",", $qmn_quiz_options->admin_email );
1197
+ foreach( $admin_emails as $admin_email ) {
1198
+ if ( is_email( $admin_email ) ) {
1199
+ wp_mail( $admin_email, $mlw_subject, $mlw_message, $headers );
1200
+ }
1201
  }
1202
  }
1203
 
php/class-qmn-tracking.php CHANGED
@@ -97,8 +97,9 @@ class QMNTracking {
97
  'user-agent' => 'QSM Usage Tracker'
98
  ) );
99
  if ( is_wp_error( $response ) ) {
100
- $error_message = $response->get_error_message();
101
- $mlwQuizMasterNext->log_manager->add( "Error 0024", "Usage tracker failed due to following reason: $error_message", 0, 'error' );
 
102
  }
103
  }
104
 
97
  'user-agent' => 'QSM Usage Tracker'
98
  ) );
99
  if ( is_wp_error( $response ) ) {
100
+ global $mlwQuizMasterNext;
101
+ $error_message = $response->get_error_message();
102
+ $mlwQuizMasterNext->log_manager->add( "Error 0024", "Usage tracker failed due to following reason: $error_message", 0, 'error' );
103
  }
104
  }
105
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: mylocalwebstop, fpcorso, elrath, dukeran
3
  Donate link: http://mylocalwebstop.com/downloads/donation-service-payment/
4
  Tags: quiz, survey, test, score, exam, questionnaire, email, answer, question, certificate, points, results
5
  Requires at least: 4.1
6
- Tested up to: 4.5.3
7
- Stable tag: 4.7.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -109,6 +109,11 @@ This is usually a theme conflict. You can [checkout out our common conflict solu
109
 
110
  == Changelog ==
111
 
 
 
 
 
 
112
  = 4.7.6 (July 11, 2016) =
113
  * Closed: Add language and error logs to usage tracking - Issue #457
114
 
@@ -120,5 +125,5 @@ This is usually a theme conflict. You can [checkout out our common conflict solu
120
 
121
  == Upgrade Notice ==
122
 
123
- = 4.7.6 =
124
- Upgrade for minor design changes
3
  Donate link: http://mylocalwebstop.com/downloads/donation-service-payment/
4
  Tags: quiz, survey, test, score, exam, questionnaire, email, answer, question, certificate, points, results
5
  Requires at least: 4.1
6
+ Tested up to: 4.6.1
7
+ Stable tag: 4.7.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
109
 
110
  == Changelog ==
111
 
112
+ = 4.7.7 (September 10, 2016) =
113
+ * Closed Bug: From Email Bug Causing 500 Error On WP 4.6 - Issue #473
114
+ * Closed Enhancement: Table Styles Don't Match Default WordPress Styles. - Issue #471
115
+ * Closed Bug: Tracking manager causes admin server error when request error occurs. - Issue #470
116
+
117
  = 4.7.6 (July 11, 2016) =
118
  * Closed: Add language and error logs to usage tracking - Issue #457
119
 
125
 
126
  == Upgrade Notice ==
127
 
128
+ = 4.7.7 =
129
+ Upgrade to fix bug affecting some users using WordPress 4.6 causing results page not to load