PluginProbe
Survey Maker by AYS / 5.2.2.3
Survey Maker by AYS v5.2.2.3
5.2.4.1 5.2.4.0 5.2.3.9 5.2.3.8 5.2.3.7 5.2.3.6 5.2.3.5 5.2.3.4 5.2.3.3 5.2.3.2 5.2.3.1 5.2.3.0 5.2.2.9 5.2.2.8 5.2.2.7 5.2.2.6 5.2.2.5 5.2.2.4 5.2.2.3 5.2.2.2 5.2.2.1 5.2.2.0 5.2.1.9 5.2.1.8 5.2.0.8 All 154 releases
survey-maker / public / partials / class-survey-maker-submissions-summary-shortcode.php

class-survey-maker-submissions-summary-shortcode.php in Survey Maker by AYS 5.2.2.3, at public/partials/class-survey-maker-submissions-summary-shortcode.php

549 lines 36.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Provide a public-facing view for the plugin
5 *
6 * This file is used to markup the public-facing aspects of the plugin.
7 *
8 * @link https://ays-pro.com/
9 * @since 1.0.0
10 *
11 * @package Survey_Maker
12 * @subpackage Survey_Maker/public/partials
13 */
14
15 class Survey_Maker_Submissions_Summary
16 {
17
18 /**
19 * The ID of this plugin.
20 *
21 * @since 1.0.0
22 * @access private
23 * @var string $plugin_name The ID of this plugin.
24 */
25 protected $plugin_name;
26
27 /**
28 * The version of this plugin.
29 *
30 * @since 1.0.0
31 * @access private
32 * @var string $version The current version of this plugin.
33 */
34 private $version;
35
36 private $html_class_prefix = 'ays-survey-';
37 private $html_name_prefix = 'ays-survey-';
38 private $name_prefix = 'survey_';
39 private $unique_id;
40 private $unique_id_in_class;
41 private $options;
42 protected $default_texts;
43
44 /**
45 * Initialize the class and set its properties.
46 *
47 * @since 1.0.0
48 * @param string $plugin_name The name of the plugin.
49 * @param string $version The version of this plugin.
50 */
51 public function __construct($plugin_name, $version){
52
53 $this->plugin_name = $plugin_name;
54 $this->version = $version;
55
56
57 add_shortcode('ays_survey_submissions_summary', array($this, 'ays_generate_submissions_summary_method'));
58 }
59
60 public function ays_survey_get_data_by_survey_id( $attr ){
61 global $wpdb;
62
63 $surveys_table = esc_sql( $wpdb->prefix . SURVEY_MAKER_DB_PREFIX . "surveys" );
64
65 $survey_id = (isset($attr['id']) && sanitize_text_field( $attr['id'] ) != '') ? absint( sanitize_text_field( $attr['id'] ) ) : null;
66
67 if ( is_null( $survey_id ) ) {
68 return null;
69 }
70
71 $results = array();
72
73 $sql = "SELECT * FROM " . $surveys_table . " WHERE id =" . absint( $survey_id );
74 $survey_name = $wpdb->get_row( $sql, 'ARRAY_A' );
75
76 if ( empty( $survey_name ) || is_null( $survey_name ) ) {
77 return null;
78 }
79
80 // // For charts in summary
81 $survey_question_results = Survey_Maker_Data::ays_survey_question_results_for_summary( $survey_id );
82 $question_results = $survey_question_results['questions'];
83
84 $last_submission = Survey_Maker_Data::ays_survey_get_last_submission_id_for_summary( $survey_id );
85
86 $ays_survey_individual_questions = Survey_Maker_Data::ays_survey_individual_results_for_one_submission_for_summary( $last_submission, $survey_name );
87
88 if( empty( $ays_survey_individual_questions['sections'] ) ){
89 $question_results = array();
90 }
91
92 $submission_count_and_ids = Survey_Maker_Data::get_submission_count_and_ids_for_summary( $survey_id );
93 wp_localize_script( $this->plugin_name . 'public-charts', 'aysSurveyPublicChartLangObj', array(
94 'answers' => __( 'Answers' , "survey-maker" ),
95 'percent' => __( 'Percent' , "survey-maker" ),
96 'count' => __( 'Count' , "survey-maker" ),
97 ) );
98
99 $options = array(
100 'perAnswerData' => $question_results,
101 'surveyColor' => $this->options[ $this->name_prefix . 'color' ],
102 'sectionDescHtml' => $this->options[ $this->name_prefix . 'allow_html_in_section_description' ],
103 );
104
105
106 $script = '<script type="text/javascript">';
107 $script .= "
108 if(typeof aysSurveyPublicChartData === 'undefined'){
109 var aysSurveyPublicChartData = [];
110 }
111 aysSurveyPublicChartData['" . $this->unique_id . "'] = '" . base64_encode( json_encode( $options ) ) . "';";
112 $script .= '</script>';
113
114 $results = array(
115 'ays_survey_individual_questions' => $ays_survey_individual_questions,
116 'submission_count_and_ids' => $submission_count_and_ids,
117 'question_results' => $question_results,
118 'script' => $script,
119 'options' => $options,
120 );
121
122 return $results;
123 }
124
125 /**
126 * Register the stylesheets for the public-facing side of the site.
127 *
128 * @since 1.0.0
129 */
130 public function enqueue_styles() {
131
132 /**
133 * This function is provided for demonstration purposes only.
134 *
135 * An instance of this class should be passed to the run() function
136 * defined in Survey_Maker_Loader as all of the hooks are defined
137 * in that particular class.
138 *
139 * The Survey_Maker_Loader will then create the relationship
140 * between the defined hooks and the functions defined in this
141 * class.
142 */
143
144 wp_enqueue_style( $this->plugin_name . "-public-submissions", SURVEY_MAKER_PUBLIC_URL . '/css/partials/survey-maker-public-submissions.css', array(), $this->version, 'all' );
145
146 }
147
148 /**
149 * Register the JavaScript for the public-facing side of the site.
150 *
151 * @since 1.0.0
152 */
153 public function enqueue_scripts(){
154
155 /**
156 * This function is provided for demonstration purposes only.
157 *
158 * An instance of this class should be passed to the run() function
159 * defined in Survey_Maker_Loader as all of the hooks are defined
160 * in that particular class.
161 *
162 * The Survey_Maker_Loader will then create the relationship
163 * between the defined hooks and the functions defined in this
164 * class.
165 */
166
167 wp_enqueue_script( $this->plugin_name . 'public-charts-google', SURVEY_MAKER_ADMIN_URL . '/js/google-chart.js', array('jquery'), $this->version, true);
168 wp_enqueue_script( $this->plugin_name . 'public-charts', SURVEY_MAKER_PUBLIC_URL . '/js/partials/survey-maker-public-submissions-charts.js', array('jquery'), $this->version, true);
169 }
170
171 public function ays_submissions_summary_html( $attr ){
172
173 $content = array();
174
175 $results = $this->ays_survey_get_data_by_survey_id( $attr );
176
177 if( $results === null ){
178 $content = "<p style='text-align: center;font-style:italic;'>" . __( "There are no questions atteched yet.", "survey-maker" ) . "</p>";
179 return $content;
180 }
181
182 $ays_survey_individual_questions = $results['ays_survey_individual_questions'];
183 $submission_count_and_ids = $results['submission_count_and_ids'];
184 $question_results = $results['question_results'];
185 $script = $results['script'];
186
187 // Allow HTML in description
188 $survey_allow_html_in_section_description = (isset($results['options'][ 'sectionDescHtml' ]) && $results['options'][ 'sectionDescHtml' ] == 'on') ? true : false;
189
190 $text_types = array(
191 'text',
192 'short_text',
193 'number',
194 'phone',
195 'name',
196 'email',
197 'date',
198 'time',
199 );
200
201 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-container" id="' . $this->html_class_prefix . 'submission-summary-container-' . $this->unique_id_in_class . '" data-id="' . $this->unique_id . '">';
202
203 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-question-container" style="padding: 20px;">';
204 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-question-container-header">';
205 $content[] = sprintf( __( 'In total %s submission', "survey-maker" ), intval( $submission_count_and_ids['submission_count'] ) );
206 $content[] = '</div>';
207 $content[] = '</div>';
208
209 if( is_array( $ays_survey_individual_questions['sections'] ) ):
210 foreach ($ays_survey_individual_questions['sections'] as $section_key => $section):
211 $content[] = '<div class="' . $this->html_class_prefix . 'submission-section ' . $this->html_class_prefix . 'submission-summary-section">';
212
213 $content[] = '<div class="ays_survey_name ' . $this->html_class_prefix . 'submission-summary-section-header">';
214 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-section-header-title">' . $section['title'] . '</div>';
215 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-section-header-description">' . ($survey_allow_html_in_section_description) ? strip_tags(htmlspecialchars_decode($section['description'] )) : nl2br( $section['description'] ) . '</div>';
216 $content[] = '</div>';
217
218 foreach ( $section['questions'] as $q_key => $question ):
219 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-question-container">';
220
221 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-question-header">';
222 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-question-header-content">';
223 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-question-header-content-title">' . nl2br( $question_results[ $question['id'] ]['question'] ) . '</div>';
224 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-question-header-content-submission">' . $question_results[ $question['id'] ]['sum_of_answers_count'] . ' ' . __( 'submissions', "survey-maker" ) . '</div>';
225 $content[] = '</div>';
226 $content[] = '</div>';
227
228 $content[] = '<div class="' . $this->html_class_prefix . 'submission-summary-question-content">';
229 if( in_array( $question_results[ $question['id'] ]['question_type'], $text_types ) && $question_results[ $question['id'] ]['question_type'] != 'date' && $question_results[ $question['id'] ]['question_type'] != 'time' ):
230 $content[] = '<div class="' . $this->html_class_prefix . 'submission-text-answers-div">';
231 if( isset( $question_results[ $question['id'] ]['answers'] ) && !empty( $question_results[ $question['id'] ]['answers'] ) ):
232 if( isset( $question_results[ $question['id'] ]['answers'][ $question['id'] ] ) && !empty( $question_results[ $question['id'] ]['answers'][ $question['id'] ] ) ):
233 $filtered_text_answers = array_values(array_unique($question_results[ $question['id'] ]['answers'][ $question['id'] ]));
234 foreach( $filtered_text_answers as $aid => $answer ):
235 $text_answer_count = isset($question_results[ $question['id'] ]['sum_of_same_answers'][$answer]) && $question_results[ $question['id'] ]['sum_of_same_answers'][$answer] != "" ? $question_results[ $question['id'] ]['sum_of_same_answers'][$answer] : "";
236 $content[] = '<div class="' . $this->html_class_prefix . 'submission-text-answer">
237 <div>'. nl2br( htmlentities($answer) ) .'</div>
238 <div>'. nl2br( $text_answer_count ) .'</div>
239 </div>';
240
241 endforeach;
242 endif;
243 endif;
244 $content[] = '</div>';
245 elseif( $question_results[ $question['id'] ]['question_type'] == 'date' ):
246 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-wrapper">';
247 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-wrap">';
248 if( isset( $question_results[ $question['id'] ]['answers'] ) && !empty( $question_results[ $question['id'] ]['answers'] ) ){
249 if( isset( $question_results[ $question['id'] ]['answers'][ $question['id'] ] ) && !empty( $question_results[ $question['id'] ]['answers'][ $question['id'] ] ) ){
250 $dates_array = array();
251 foreach( $question_results[ $question['id'] ]['answers'][ $question['id'] ] as $aid => $answer ){
252 $year_month = explode( '-', $answer );
253 $day = $year_month[2];
254 if( isset( $dates_array[ $year_month[0] ] ) ){
255 if( isset( $dates_array[ $year_month[0] ][ $year_month[1] ] ) ){
256 if( isset( $dates_array[ $year_month[0] ][ $year_month[1] ][ $year_month[2] ] ) ){
257 $dates_array[ $year_month[0] ][ $year_month[1] ][ $year_month[2] ] += 1;
258 }else{
259 $dates_array[ $year_month[0] ][ $year_month[1] ][ $year_month[2] ] = 1;
260 }
261 }else{
262 $dates_array[ $year_month[0] ][ $year_month[1] ][ $year_month[2] ] = 1;
263 }
264 }else{
265 $dates_array[ $year_month[0] ][ $year_month[1] ][ $year_month[2] ] = 1;
266 }
267 }
268
269 ksort( $dates_array, SORT_NATURAL );
270 foreach( $dates_array as $year => $months ){
271 ksort( $months, SORT_NATURAL );
272 foreach( $months as $month => $days ){
273 ksort( $days, SORT_NATURAL );
274 }
275 }
276
277 foreach( $dates_array as $year => $months ){
278 foreach( $months as $month => $days ){
279 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-row">';
280 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-year-month">' . date_i18n( 'F Y', strtotime( $year ."-". $month ) ) . '</div>';
281 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-days">';
282 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-days-row">';
283 foreach( $days as $day => $count ){
284 if( $count == 1 ){
285 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-days-row-day">';
286 $content[] = '<span>' . esc_html( $day ). '</span>';
287 $content[] = '</div>';
288 }else{
289 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-days-row-day ' . $this->html_class_prefix . 'question-date-summary-days-row-day-with-count">';
290 $content[] = '<span>' . esc_html( $day ) . '</span>';
291 $content[] = '<div class="' . $this->html_class_prefix . 'question-date-summary-days-row-day-count">' . esc_html( $count ) . '</div>';
292 $content[] = '</div>';
293 }
294 }
295 $content[] = '</div>';
296 $content[] = '</div>';
297 $content[] = '</div>';
298 }
299 }
300 }
301 }
302 $content[] = '</div>';
303 $content[] = '</div>';
304 elseif( $question_results[ $question['id'] ]['question_type'] == 'time' ):
305 $content[] = '<div class="ays-survey-question-time-summary-wrapper">';
306 $content[] = '<div class="ays-survey-question-time-summary-wrap">';
307 if( isset( $question_results[ $question['id'] ]['answers'] ) && !empty( $question_results[ $question['id'] ]['answers'] ) ){
308 if( isset( $question_results[ $question['id'] ]['answers'][ $question['id'] ] ) && !empty( $question_results[ $question['id'] ]['answers'][ $question['id'] ] ) ){
309 $hours_array = array();
310 foreach( $question_results[ $question['id'] ]['answers'][ $question['id'] ] as $aid => $answer ){
311 $answer_hour_minutes = explode( ':', $answer );
312 $answer_hour = isset($answer_hour_minutes[0]) && $answer_hour_minutes[0] != "" ? esc_attr($answer_hour_minutes[0]) : "00";
313 $answer_minute = isset($answer_hour_minutes[1]) && $answer_hour_minutes[1] != "" ? esc_attr($answer_hour_minutes[1]) : "00";
314 if( isset( $hours_array[ $answer_hour ] ) ){
315 if( isset( $hours_array[ $answer_hour ][ $answer_minute ] ) ){
316 $hours_array[ $answer_hour ][ $answer_minute ] += 1;
317 }else{
318 $hours_array[ $answer_hour ][ $answer_minute ] = 1;
319 }
320 }else{
321 $hours_array[ $answer_hour ][ $answer_minute ] = 1;
322 }
323 }
324 ksort($hours_array);
325 foreach( $hours_array as $k_hours => $v_hours ){
326
327 $content[] = '<div class="ays-survey-question-time-summary-row">';
328 $content[] = '<div class="ays-survey-question-time-summary-hour"><span class="ays-survey-question-time-summary-hour-all">'.$k_hours.' :</span></div>';
329 $content[] = '<div class="ays-survey-question-time-summary-hours">';
330 $content[] = '<div class="ays-survey-question-time-summary-hours-row">';
331 foreach( $v_hours as $k_hour => $count ){
332 if( $count == 1 ){
333 $content[] = '<div class="ays-survey-question-time-summary-hours-row-hour">
334 <span>'. esc_html( $k_hour ) .'</span>
335 </div>';
336 }else{
337 $content[] = '<div class="ays-survey-question-time-summary-hours-row-hour ays-survey-question-time-summary-hours-row-hour-with-count">
338 <span>'. esc_html( $k_hour ) .'</span>
339 <div class="ays-survey-question-time-summary-hours-row-hour-count">'. esc_html( $count ) .'</div>';
340 $content[] = '</div>';
341 }
342 }
343 $content[] = '</div>';
344 $content[] = '</div>';
345 $content[] = '</div>';
346 }
347 }
348 }
349 $content[] = '</div>';
350 $content[] = '</div>';
351 elseif( $question_results[ $question['id'] ]['question_type'] == 'date_time' ):
352
353 $content[] = '<div class="ays-survey-question-date-time-summary-wrapper">';
354 $content[] = '<div class="ays-survey-question-date-time-summary-wrap">';
355
356 if( isset( $question_results[ $question['id'] ]['answers'] ) && !empty( $question_results[ $question['id'] ]['answers'] ) ){
357 if( isset( $question_results[ $question['id'] ]['answers'][ $question['id'] ] ) && !empty( $question_results[ $question['id'] ]['answers'][ $question['id'] ] ) ){
358 $dates_array = array();
359 $time_array = array();
360 foreach( $question_results[ $question['id'] ]['answers'][ $question['id'] ] as $aid => $answer ){
361 $each_answer = explode(" " , trim($answer));
362 $date_answer = isset($each_answer[0]) && $each_answer[0] != '' ? $each_answer[0] : '';
363 $time_answer = isset($each_answer[1]) && $each_answer[1] != '' ? $each_answer[1] : '';
364 if($time_answer != '-' || $date_answer != '-'){
365 $year_month_day = $date_answer != '-' ? explode( '-', $date_answer ) : '-';
366
367 $dates_collected = '';
368 if($year_month_day != '-'){
369 $dates_collected = date_i18n( 'F Y d', strtotime( $year_month_day[0] ."-". $year_month_day[1] . "-". $year_month_day[2] ) );
370 }
371
372 $dates_array[] = $dates_collected;
373 $time_array[$dates_collected][] = $time_answer;
374 $dates_new_array = array_count_values($dates_array);
375 }
376 }
377 if(!empty($dates_array)){
378 foreach($dates_new_array as $new_date => $new_date_value){
379
380 $content[] = '<div class="ays-survey-question-date-time-summary-row">';
381
382 $content[] = '<div class="ays-survey-question-date-time-summary-year-month-day">';
383 $content[] = '<div class="ays-survey-question-date-time-summary-year-month-day-row">';
384
385 if( $new_date_value == 1 ){
386 $style_for_one_submission = (!$new_date) ? 'style="background-color: white;"' : '';
387 $content[] = '<div class="ays-survey-question-time-summary-hours-row-hour" '.$style_for_one_submission.' >';
388 $content[] = '<span>'.esc_html( $new_date ).'</span>';
389 $content[] = '</div>';
390
391 }elseif($new_date != ''){
392
393 $content[] = '<div class="ays-survey-question-time-summary-hours-row-hour ays-survey-question-time-summary-hours-row-hour-with-count">';
394 $content[] = '<span><?php echo esc_html( $new_date ); ?></span>';
395 $content[] = '<div class="ays-survey-question-time-summary-hours-row-hour-count">'.esc_html( $new_date_value ).'</div>';
396 $content[] = '</div>';
397
398 }
399
400 $content[] = '</div>';
401
402 $content[] = '</div>';
403 $content[] = '<div class="ays-survey-question-date-summary-days">';
404
405
406 foreach($time_array[$new_date] as $f => $r){
407 if($r != '' && $r != '-'){
408
409 $content[] = '<span class="ays-survey-question-date-time-summary-hour-all">'.$r.'</span>';
410
411 }
412 }
413
414 $content[] = '</div>';
415 $content[] = '</div>';
416
417 }
418 }
419
420 }
421 }
422
423 $content[] = '</div>';
424 $content[] = '</div>';
425 else:
426 $content[] = '<div id="survey_answer_chart_' . $question_results[ $question['id'] ]['question_id'] . '" style="width: 100%;" class="chart_div"></div>';
427 if( !empty( $question_results[ $question['id'] ]['otherAnswers'] ) ):
428 $content[] = '<div class="' . $this->html_class_prefix . 'other-answer-row">' . __( '"Other" answers', "survey-maker" ) . '</div>';
429 $content[] = '<div class="' . $this->html_class_prefix . 'submission-text-answers-div">';
430 if( isset( $question_results[ $question['id'] ]['otherAnswers'] ) && !empty( $question_results[ $question['id'] ]['otherAnswers'] ) ):
431 $filtered_other_answers = array_values(array_unique($question_results[ $question['id'] ]['otherAnswers']));
432 foreach( $filtered_other_answers as $aid => $answer ):
433 $other_answer_count = isset($question_results[ $question['id'] ]['same_other_count'][$answer]) && $question_results[ $question['id'] ]['same_other_count'][$answer] != "" ? $question_results[ $question['id'] ]['same_other_count'][$answer] : "";
434 $content[] = '<div class="' . $this->html_class_prefix . 'submission-text-answer">
435 <div>' . stripslashes(htmlentities($answer)) . '</div>
436 <div>' . stripslashes($other_answer_count) . '</div>
437 </div>';
438 endforeach;
439 endif;
440 $content[] = '</div>';
441 endif;
442 endif;
443 $content[] = '</div>';
444
445 $content[] = '</div>';
446 endforeach;
447
448 $content[] = '</div>';
449
450 endforeach;
451 endif;
452
453 $content[] = $this->get_styles();
454 $content[] = $script;
455 $content[] = '</div>';
456
457 $content = implode( '', $content );
458
459 return $content;
460 }
461
462 public function get_styles(){
463
464 $content = array();
465 $content[] = '<style type="text/css">';
466
467 $mobile_max_width = $this->options[ $this->name_prefix . 'mobile_max_width' ];
468
469 if( absint( $mobile_max_width ) > 0 ){
470 $mobile_max_width .= '%';
471 }else{
472 $mobile_max_width = '90%';
473 }
474
475 $content[] = '
476 #' . $this->html_class_prefix . 'submission-summary-container-' . $this->unique_id_in_class . ' .' . $this->html_class_prefix . 'submission-summary-section-header {
477 border-top-color: ' . $this->options[ $this->name_prefix . 'color' ] . ';
478 }
479
480 #' . $this->html_class_prefix . 'submission-summary-container-' . $this->unique_id_in_class . ' .' . $this->html_class_prefix . 'submission-summary-question-container {
481 border-left-color: ' . $this->options[ $this->name_prefix . 'color' ] . ';
482 }
483
484 @media screen and (max-width: 640px){
485 #' . $this->html_class_prefix . 'submission-summary-container-' . $this->unique_id_in_class . ' {
486 max-width: '. $mobile_max_width .';
487 }
488 }
489
490 ';
491
492 $content[] = '</style>';
493
494 $content = implode( '', $content );
495
496 return $content;
497 }
498
499 public function ays_generate_submissions_summary_method( $attr ) {
500
501 global $post;
502
503 $allow = false;
504
505 // Check post author's capability
506 if ( isset( $post->post_author ) ) {
507 $author_id = (int) $post->post_author;
508 $author = get_user_by( 'id', $author_id );
509
510 if ( $author && user_can( $author, 'manage_options' ) ) {
511 $allow = true;
512 }
513 }
514
515 // Check current logged-in user's capability
516 if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
517 $allow = true;
518 }
519
520 // If neither author nor current user can manage options — stop rendering
521 if ( ! $allow ) {
522 return str_replace(array("\r\n", "\n", "\r"), '', '');
523 }
524
525 $id = (isset($attr['id']) && $attr['id'] != '') ? absint(intval($attr['id'])) : null;
526 $this->default_texts = Survey_Maker_Data::ays_set_default_texts( $this->plugin_name, array() );
527
528 if (is_null($id)) {
529 $content = "<p class='wrong_shortcode_text' style='color:red;'>" . $this->default_texts['wrongShortcode'] . "</p>";
530 return str_replace(array("\r\n", "\n", "\r"), '', $content);
531 }
532
533 $this->enqueue_styles();
534 $this->enqueue_scripts();
535
536 $unique_id = uniqid();
537 $this->unique_id = $unique_id;
538 $this->unique_id_in_class = $id . "-" . $unique_id;
539
540 $survey = Survey_Maker_Data::get_survey_by_id( $id );
541
542 $this->options = Survey_Maker_Data::get_survey_validated_data_from_array( $survey, $attr );
543
544 $content = $this->ays_submissions_summary_html( $attr );
545
546 return str_replace(array("\r\n", "\n", "\r"), "\n", $content);
547 }
548 }
549