PluginProbe
Chartify – WordPress Chart Plugin / 3.8.1
Chartify – WordPress Chart Plugin v3.8.1
3.8.1 3.8.0 3.7.9 3.7.8 3.7.7 3.7.6 3.7.5 trunk 1.0.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 All 84 releases
← All changes | admin/class-chart-builder-admin.php +3840 -552 3.0.1 → 3.8.1 View file →
@@ -88,9 +88,9 @@
88 88 //
89 89 wp_enqueue_style( $this->plugin_name . '-normalize', plugin_dir_url( __FILE__ ) . 'css/normalize.css', array(), $this->version . time(), 'all' );
90 90 wp_enqueue_style( $this->plugin_name . '-admin-general', plugin_dir_url( __FILE__ ) . 'css/admin-general.css', array(), $this->version, 'all' );
91 91 wp_enqueue_style( $this->plugin_name . '-banner', plugin_dir_url( __FILE__ ) . 'css/banner.css', array(), $this->version, 'all' );
92 - wp_enqueue_style( $this->plugin_name . '-chart-builder-banner.css', plugin_dir_url(__FILE__) . 'css/chart-builder-banner.css', array(), $this->version, 'all');
92 + // wp_enqueue_style( $this->plugin_name . '-chart-builder-banner.css', plugin_dir_url(__FILE__) . 'css/chart-builder-banner.css', array(), $this->version, 'all');
93 93 wp_enqueue_style( $this->plugin_name . '-animate', plugin_dir_url(__FILE__) . 'css/animate.css', array(), $this->version, 'all');
94 94 wp_enqueue_style( $this->plugin_name . '-font-awesome', plugin_dir_url(__FILE__) . 'css/ays-font-awesome.min.css', array(), $this->version, 'all');
95 95 wp_enqueue_style( $this->plugin_name . '-font-awesome-icons', plugin_dir_url(__FILE__) . 'css/ays-font-awesome-icons.css', array(), $this->version, 'all');
96 96 wp_enqueue_style( $this->plugin_name . '-select2', plugin_dir_url(__FILE__) . 'css/ays-select2.min.css', array(), $this->version, 'all');
@@ -173,9 +173,9 @@
173 173 wp_enqueue_script( $this->plugin_name . '-chart-js', plugin_dir_url(__FILE__) . 'js/chart-js.js', array('jquery'), $this->version, true);
174 174
175 175 wp_enqueue_script( $this->plugin_name . '-functions', plugin_dir_url( __FILE__ ) . 'js/functions.js', array( 'jquery' ), $this->version, true );
176 176
177 - wp_register_script( $this->plugin_name . '-localized', '' );
177 + wp_register_script( $this->plugin_name . '-localized', '' , array('jquery'), $this->version, true);
178 178
179 179 wp_localize_script( $this->plugin_name . '-localized', 'aysChartBuilderAdmin', array(
180 180 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
181 181 'selectUser' => __( 'Select author', "chart-builder" ),
@@ -203,10 +203,13 @@
203 203 'minColNotice' => __( 'Sorry, minimum count of columns should be 1', "chart-builder"),
204 204 'activated' => __( "Activated", "chart-builder" ),
205 205 'errorMsg' => __( "Error", "chart-builder" ),
206 206 'loadResource' => __( "Can't load resource.", "chart-builder" ),
207 - 'somethingWentWrong' => __( "Maybe something went wrong.", "chart-builder" ),
208 - ) );
207 + 'somethingWentWrong' => __( "Maybe something went wrong.", "chart-builder" ),
208 + 'successCopyCoupon' => esc_html__( "Coupon code copied!", 'chart-builder' ),
209 + 'failedCopyCoupon' => esc_html__( "Failed to copy coupon code", 'chart-builder' ),
210 +
211 + ) );
209 212
210 213 wp_localize_script( $this->plugin_name . '-localized', 'aysChartBuilderChartSettings', array(
211 214 'types' => CBFunctions()->getAllowedTypes(),
212 215 'max_selected_options' => 2,
@@ -224,8 +227,9 @@
224 227 'filter_get_data' => wp_create_nonce( 'cbuilder-fetch-post-type-data' ),
225 228 'quiz_maker_get_data' => wp_create_nonce( 'cbuilder-fetch-quiz-maker-data' ),
226 229 'quiz_maker_save_data' => wp_create_nonce( 'cbuilder-save-quiz-maker-data' ),
227 230 'author_user_search' => wp_create_nonce( 'cbuilder-author-user-search' ),
231 +
228 232 ),
229 233 'actions' => array(
230 234 'filter_get_props' => 'fetch_post_type_props',
231 235 'filter_get_data' => 'fetch_post_type_data',
@@ -241,9 +245,9 @@
241 245
242 246 wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/chart-builder-admin.js', array( 'jquery', $this->plugin_name . '-localized' ), $this->version . time(), true );
243 247 wp_enqueue_script( $this->plugin_name . '-google', plugin_dir_url( __FILE__ ) . 'js/chart-builder-admin-google.js', array( 'jquery', $this->plugin_name . '-localized' ), $this->version . time(), true );
244 248 wp_enqueue_script( $this->plugin_name . '-chartjs', plugin_dir_url( __FILE__ ) . 'js/chart-builder-admin-chartjs.js', array( 'jquery', $this->plugin_name . '-localized' ), $this->version . time(), true );
245 - wp_enqueue_script( $this->plugin_name . '-general-js', plugin_dir_url( __FILE__ ) . 'js/chart-builder-admin-general.js', array( 'jquery', $this->plugin_name . '-localized' ), $this->version, true );
249 + wp_enqueue_script( $this->plugin_name . '-general-js', plugin_dir_url( __FILE__ ) . 'js/chart-builder-admin-general.js', array( 'jquery', $this->plugin_name . '-localized' ), $this->version . time(), true );
246 250
247 251 if ( false !== strpos( $hook_suffix, 'settings' ) ) {
248 252 wp_enqueue_script( $this->plugin_name . '-settings', plugin_dir_url( __FILE__ ) . 'js/chart-builder-admin-settings.js', array( 'jquery' ), $this->version, true );
249 253
@@ -248,20 +252,20 @@
248 252 wp_enqueue_script( $this->plugin_name . '-settings', plugin_dir_url( __FILE__ ) . 'js/chart-builder-admin-settings.js', array( 'jquery' ), $this->version, true );
249 253
250 254 wp_localize_script( $this->plugin_name . '-settings', 'aysChartBuilderAdminSettings', array(
251 255 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
252 - 'selectUserRoles' => __( 'Select user roles', $this->plugin_name ),
253 - 'delete' => __( 'Delete', $this->plugin_name ),
254 - 'selectQuestionDefaultType' => __( 'Select question default type', $this->plugin_name ),
255 - 'yes' => __( 'Yes', $this->plugin_name ),
256 - 'cancel' => __( 'Cancel', $this->plugin_name ),
257 - 'somethingWentWrong' => __( "Maybe something went wrong.", $this->plugin_name ),
258 - 'failed' => __( 'Failed', $this->plugin_name ),
259 - 'selectPage' => __( 'Select page', $this->plugin_name ),
260 - 'selectPostType' => __( 'Select post type', $this->plugin_name ),
261 - 'copied' => __( 'Copied!', $this->plugin_name),
262 - 'clickForCopy' => __( 'Click to copy', $this->plugin_name),
263 - 'selectForm' => __( 'Select form', $this->plugin_name),
256 + 'selectUserRoles' => __( 'Select user roles', 'chart-builder' ),
257 + 'delete' => __( 'Delete', 'chart-builder' ),
258 + 'selectQuestionDefaultType' => __( 'Select question default type', 'chart-builder' ),
259 + 'yes' => __( 'Yes', 'chart-builder' ),
260 + 'cancel' => __( 'Cancel', 'chart-builder' ),
261 + 'somethingWentWrong' => __( "Maybe something went wrong.", 'chart-builder' ),
262 + 'failed' => __( 'Failed', 'chart-builder' ),
263 + 'selectPage' => __( 'Select page', 'chart-builder' ),
264 + 'selectPostType' => __( 'Select post type', 'chart-builder' ),
265 + 'copied' => __( 'Copied!', 'chart-builder'),
266 + 'clickForCopy' => __( 'Click to copy', 'chart-builder'),
267 + 'selectForm' => __( 'Select form', 'chart-builder'),
264 268 ) );
265 269 }
266 270 }
267 271
@@ -277,8 +281,38 @@
277 281 wp_deregister_script('mwai-vendor');
278 282 wp_dequeue_script('mwai');
279 283 wp_dequeue_script('mwai-vendor');
280 284 }
285 +
286 + if (is_plugin_active('html5-video-player/html5-video-player.php')) {
287 + wp_dequeue_style('h5vp-admin');
288 + wp_dequeue_style('fs_common');
289 + }
290 +
291 + if (is_plugin_active('panorama/panorama.php')) {
292 + wp_dequeue_style('bppiv_admin_custom_css');
293 + wp_dequeue_style('bppiv-custom-style');
294 + }
295 +
296 + if (is_plugin_active('wp-social/wp-social.php')) {
297 + wp_dequeue_style('wp_social_select2_css');
298 + wp_deregister_script('wp_social_select2_js');
299 + wp_dequeue_script('wp_social_select2_js');
300 + }
301 +
302 + if (is_plugin_active('real-media-library-lite/index.php')) {
303 + wp_dequeue_style('real-media-library-lite-rml');
304 + }
305 +
306 + // Theme | Phlox 2.17.6
307 + wp_dequeue_style('auxin-admin-style');
308 +
309 + // Theme | Pixel Ebook Store
310 + wp_dequeue_style('pixel-ebook-store-free-demo-content-style');
311 +
312 + // Theme | Interactive Education
313 + wp_dequeue_style('interactive-education-free-demo-content-style');
314 +
281 315 }
282 316 }
283 317
284 318 /**
@@ -306,9 +340,9 @@
306 340 $this->capability,
307 341 $this->plugin_name,
308 342 array($this, 'display_plugin_charts_page'),
309 343 CHART_BUILDER_ADMIN_URL . '/images/icons/ays_chart_logo_icon_bw.svg',
310 - '6.22'
344 + '26'
311 345 );
312 346
313 347 }
314 348
@@ -314,10 +348,10 @@
314 348
315 349 public function add_plugin_charts_submenu(){
316 350 $hook_page_view = add_submenu_page(
317 351 $this->plugin_name,
318 - __('All Charts', $this->plugin_name),
319 - __('All Charts', $this->plugin_name),
352 + __('All Charts', 'chart-builder'),
353 + __('All Charts', 'chart-builder'),
320 354 'manage_options',
321 355 $this->plugin_name,
322 356 array($this, 'display_plugin_charts_page')
323 357 );
@@ -327,10 +361,10 @@
327 361
328 362 public function add_plugin_add_new_submenu(){
329 363 $hook_charts = add_submenu_page(
330 364 $this->plugin_name,
331 - __('Add New', $this->plugin_name),
332 - __('Add New', $this->plugin_name),
365 + __('Add New', 'chart-builder'),
366 + __('Add New', 'chart-builder'),
333 367 'manage_options',
334 368 $this->plugin_name."&action=add",
335 369 array($this, 'display_plugin_addnew_page')
336 370 );
@@ -339,10 +373,10 @@
339 373
340 374 public function add_plugin_dashboard_submenu(){
341 375 $hook_charts = add_submenu_page(
342 376 $this->plugin_name,
343 - __('How to use', $this->plugin_name),
344 - __('How to use', $this->plugin_name),
377 + __('How to use', 'chart-builder'),
378 + __('How to use', 'chart-builder'),
345 379 'manage_options',
346 380 $this->plugin_name . '-dashboard',
347 381 array($this, 'display_plugin_setup_page')
348 382 );
@@ -350,10 +384,10 @@
350 384 }
351 385
352 386 public function add_plugin_general_settings_submenu(){
353 387 $hook_settings = add_submenu_page( $this->plugin_name,
354 - __('General Settings', $this->plugin_name),
355 - __('General Settings', $this->plugin_name),
388 + __('General Settings', 'chart-builder'),
389 + __('General Settings', 'chart-builder'),
356 390 'manage_options',
357 391 $this->plugin_name . '-settings',
358 392 array($this, 'display_plugin_settings_page')
359 393 );
@@ -361,10 +395,10 @@
361 395 }
362 396
363 397 public function add_plugin_featured_plugins_submenu(){
364 398 $hook_our_products = add_submenu_page( $this->plugin_name,
365 - __('Our products', $this->plugin_name),
366 - __('Our products', $this->plugin_name),
399 + __('Our products', 'chart-builder'),
400 + __('Our products', 'chart-builder'),
367 401 'manage_options',
368 402 $this->plugin_name . '-featured-plugins',
369 403 array($this, 'display_plugin_featured_plugins_page')
370 404 );
@@ -374,10 +408,10 @@
374 408
375 409 public function add_plugin_chart_features_submenu(){
376 410 $hook_pro_features = add_submenu_page(
377 411 $this->plugin_name,
378 - __('PRO Features', $this->plugin_name),
379 - __('PRO Features', $this->plugin_name),
412 + __('PRO Features', 'chart-builder'),
413 + __('PRO Features', 'chart-builder'),
380 414 'manage_options',
381 415 $this->plugin_name . '-chart-features',
382 416 array($this, 'display_plugin_chart_features_page')
383 417 );
@@ -392,8 +426,9 @@
392 426 'default' => 5,
393 427 'option' => 'cb_charts_per_page'
394 428 );
395 429
430 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended
396 431 if( ! ( isset( $_GET['action'] ) && ( $_GET['action'] == 'add' || $_GET['action'] == 'edit' ) ) ){
397 432 add_screen_option( $option, $args );
398 433 }
399 434
@@ -411,17 +446,29 @@
411 446 return;
412 447 }
413 448 }
414 449
450 + private function check_permissions_and_nonce($nonce_action) {
451 + if (!is_user_logged_in() || !current_user_can('manage_options')) {
452 + wp_die(__('Access denied.', 'chart-builder'));
453 + }
454 +
455 + if (!isset($_REQUEST['_wpnonce']) || !wp_verify_nonce($_REQUEST['_wpnonce'], $this->plugin_name . '-' . $nonce_action)) {
456 + wp_die(__('Security check failed. Invalid or missing nonce.', 'chart-builder'));
457 + }
458 + }
415 459 public function display_plugin_charts_page(){
416 460 global $ays_chart_db_actions;
417 461
418 - $action = (isset($_GET['action'])) ? sanitize_text_field( $_GET['action'] ) : '';
419 - $id = (isset($_GET['id'])) ? absint( esc_attr($_GET['id']) ) : 0;
420 -
421 - if (isset($_POST['bulk_delete_confirm'])) {
462 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended
463 + $action = ( isset( $_GET['action'] ) ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : '';
464 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended
465 + $id = (isset($_GET['id'])) ? absint( wp_unslash( $_GET['id'] ) ) : 0;
466 + if (isset($_POST['bulk_delete_confirm'])) {
467 + $this->check_permissions_and_nonce('bulk-delete');
422 468 if (isset($_POST['bulk-delete']) && !empty($_POST['bulk-delete'])) {
423 - $ids = $_POST['bulk-delete'];
469 + $ids = wp_unslash( $_POST['bulk-delete'] );
470 + $ids = array_map( 'absint', (array) $ids );
424 471 foreach ($ids as $id) {
425 472 if ($id > 0) {
426 473 $this->db_obj->delete_item( $id );
427 474 }
@@ -436,9 +483,10 @@
436 483 }
437 484
438 485 switch ($action) {
439 486 case 'trash':
440 - if( $id > 0 ){
487 + $this->check_permissions_and_nonce('trash-item');
488 + if ($id > 0){
441 489 $this->db_obj->trash_item( $id );
442 490 $url = remove_query_arg( array('action', 'id', '_wpnonce') );
443 491 $url = esc_url_raw( add_query_arg( array(
444 492 "status" => 'trashed'
@@ -447,9 +495,10 @@
447 495 exit;
448 496 }
449 497 break;
450 498 case 'restore':
451 - if( $id > 0 ){
499 + $this->check_permissions_and_nonce('delete-item');
500 + if ($id > 0 ) {
452 501 $this->db_obj->restore_item( $id );
453 502 $url = remove_query_arg( array('action', 'id', '_wpnonce') );
454 503 $url = esc_url_raw( add_query_arg( array(
455 504 "status" => 'restored'
@@ -458,9 +507,10 @@
458 507 exit;
459 508 }
460 509 break;
461 510 case 'delete':
462 - if( $id > 0 ){
511 + $this->check_permissions_and_nonce('delete-item');
512 + if ($id > 0) {
463 513 $this->db_obj->delete_item( $id );
464 514 $url = remove_query_arg( array('action', 'id', '_wpnonce') );
465 515 $url = esc_url_raw( add_query_arg( array(
466 516 "status" => 'deleted'
@@ -469,9 +519,10 @@
469 519 exit;
470 520 }
471 521 break;
472 522 case 'publish':
473 - if( $id > 0 ){
523 + $this->check_permissions_and_nonce('publish-item');
524 + if ($id > 0) {
474 525 $this->db_obj->publish_item( $id );
475 526 $url = remove_query_arg( array('action', 'id', '_wpnonce') );
476 527 $url = esc_url_raw( add_query_arg( array(
477 528 "status" => 'published'
@@ -480,9 +531,10 @@
480 531 exit;
481 532 }
482 533 break;
483 534 case 'unpublish':
484 - if( $id > 0 ){
535 + $this->check_permissions_and_nonce('unpublish-item');
536 + if ($id > 0) {
485 537 $this->db_obj->restore_item( $id );
486 538 $url = remove_query_arg( array('action', 'id', '_wpnonce') );
487 539 $url = esc_url_raw( add_query_arg( array(
488 540 "status" => 'unpublished'
@@ -491,9 +543,10 @@
491 543 exit;
492 544 }
493 545 break;
494 546 case 'duplicate':
495 - if( $id > 0 ){
547 + $this->check_permissions_and_nonce('duplicate-item');
548 + if ($id > 0) {
496 549 $this->db_obj->duplicate_item( $id );
497 550 $url = remove_query_arg( array('action', 'id', '_wpnonce') );
498 551 $url = esc_url_raw( add_query_arg( array(
499 552 "status" => 'duplicated'
@@ -511,9 +564,66 @@
511 564 default:
512 565 include_once('partials/charts/chart-builder-charts-display.php');
513 566 }
514 567 }
568 + public static function chart_builder_svg_sanitize_allowed_properties(){
515 569
570 + $allowed_properties = array(
571 + 'div' => array(
572 + 'id' => true,
573 + 'class' => true,
574 + 'style' => true,
575 + ),
576 + 'svg' => array(
577 + 'class' => true,
578 + 'version' => true,
579 + 'overflow' => true,
580 + 'preserveAspectRatio' => true,
581 + 'preserveaspectratio' => true,
582 + 'fill' => true,
583 + 'viewBox' => true,
584 + 'viewbox' => true,
585 + 'height' => true,
586 + 'width' => true,
587 + 'xmlns' => true,
588 + 'xmlns:xlink' => true,
589 + 'id' => true,
590 + 'title' => true,
591 + ),
592 + 'g' => array(
593 + 'id' => true,
594 + 'class' => true,
595 + 'stroke-width' => true,
596 + 'stroke-linecap' => true,
597 + 'stroke-linejoin' => true,
598 + ),
599 + 'path' => array(
600 + 'id' => true,
601 + 'class' => true,
602 + 'd' => true,
603 + 'fill' => true,
604 + 'vector-effect' => true,
605 + 'xmlns:default' => true,
606 + ),
607 + 'span' => array(
608 + 'class' => true,
609 + ),
610 + 'img' => array(
611 + 'src' => true,
612 + 'alt' => true,
613 + ),
614 + );
615 +
616 + return $allowed_properties;
617 + }
618 +
619 + public static function get_allowed_tags_for_loader() {
620 + return array(
621 + 'span' => array('class' => array()),
622 + 'img' => array('src' => array(), 'alt' => array()),
623 + );
624 + }
625 +
516 626 public function display_plugin_setup_page(){
517 627 include_once('partials/chart-builder-admin-display.php');
518 628 }
519 629
@@ -571,15 +681,28 @@
571 681
572 682 $response = array(
573 683 "status" => false
574 684 );
685 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended
686 + $function = isset( $_REQUEST['function'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['function'] ) ) : null;
575 687
576 - $function = isset($_REQUEST['function']) ? sanitize_text_field( $_REQUEST['function'] ) : null;
577 -
578 688 if($function !== null){
579 689 $response = array();
580 690 if( is_callable( array( $this, $function ) ) ){
581 - $response = $this->$function();
691 + $allowed_functions = array(
692 + "deactivate_plugin_option",
693 + "ays_chart_dismiss_button",
694 + "author_user_search",
695 + "ays_chart_activate_plugin",
696 + "ays_chart_install_plugin",
697 + "fetch_quiz_maker_data",
698 + "save_quiz_maker_data",
699 + "fetch_post_type_props",
700 + "fetch_post_type_data",
701 + );
702 + if (in_array($function, $allowed_functions, true)) {
703 + $response = $this->$function();
704 + }
582 705
583 706 ob_end_clean();
584 707 $ob_get_clean = ob_get_clean();
585 708 echo json_encode( $response );
@@ -595,10 +718,14 @@
595 718 }
596 719
597 720 public function deactivate_plugin_option(){
598 721 // Run a security check.
599 - check_ajax_referer( 'chart-ajax-deactivate-plugin-nonce', sanitize_key( $_REQUEST['_ajax_nonce'] ) );
600 -
722 + if ( isset( $_REQUEST['_ajax_nonce'] ) ) {
723 + check_ajax_referer( 'chart-ajax-deactivate-plugin-nonce', sanitize_key( $_REQUEST['_ajax_nonce'] ) );
724 + } else {
725 + wp_die();
726 + }
727 +
601 728 // Check for permissions.
602 729 if ( ! current_user_can( 'manage_options' ) ) {
603 730 ob_end_clean();
604 731 $ob_get_clean = ob_get_clean();
@@ -608,9 +735,9 @@
608 735 wp_die();
609 736 }
610 737
611 738 if( is_user_logged_in() ) {
612 - $request_value = isset( $_REQUEST['upgrade_plugin'] ) ? sanitize_text_field( $_REQUEST['upgrade_plugin'] ) : '';
739 + $request_value = isset( $_REQUEST['upgrade_plugin'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['upgrade_plugin'] ) ) : '';
613 740 $upgrade_option = get_option( 'ays_chart_builder_upgrade_plugin', '' );
614 741
615 742 if ( $upgrade_option === '' ) {
616 743 add_option( 'ays_chart_builder_upgrade_plugin', $request_value );
@@ -633,17 +760,17 @@
633 760 }
634 761 }
635 762
636 763 public function chart_builder_admin_footer($a){
637 - if(isset($_REQUEST['page'])){
638 - if(false !== strpos( sanitize_text_field( $_REQUEST['page'] ), $this->plugin_name)){
764 + if(isset($_REQUEST['page'])){// phpcs:ignore WordPress.Security.NonceVerification.Recommended
765 + if(false !== strpos( sanitize_text_field( wp_unslash( $_REQUEST['page'] ) ), $this->plugin_name)){// phpcs:ignore WordPress.Security.NonceVerification.Recommended
639 766 ?>
640 767 <div class="ays-chart-footer-support-box">
641 - <span class="ays-chart-footer-link-row"><a href="https://wordpress.org/support/plugin/chart-builder" target="_blank"><?php echo __( "Support", "chart-builder"); ?></a></span>
768 + <span class="ays-chart-footer-link-row"><a href="https://wordpress.org/support/plugin/chart-builder" target="_blank"><?php echo esc_html__( "Support", "chart-builder"); ?></a></span>
642 769 <span class="ays-chart-footer-slash-row">/</span>
643 - <span class="ays-chart-footer-link-row"><a href="https://ays-pro.com/wordpress-chart-builder-plugin-user-manual" target="_blank"><?php echo __( "Docs", "chart-builder"); ?></a></span>
770 + <span class="ays-chart-footer-link-row"><a href="https://ays-pro.com/wordpress-chart-builder-plugin-user-manual" target="_blank"><?php echo esc_html__( "Docs", "chart-builder"); ?></a></span>
644 771 <span class="ays-chart-footer-slash-row">/</span>
645 - <span class="ays-chart-footer-link-row"><a href="https://ays-demo.com/chart-builder-plugin-suggestion-box" target="_blank"><?php echo __( "Suggest a Feature", "chart-builder"); ?></a></span>
772 + <span class="ays-chart-footer-link-row"><a href="https://ays-demo.com/chart-builder-plugin-suggestion-box" target="_blank"><?php echo esc_html__( "Suggest a Feature", "chart-builder"); ?></a></span>
646 773 </div>
647 774 <p style="font-size:13px;text-align:center;font-style:italic;">
648 775 <span style="margin-left:0px;margin-right:10px;" class="ays_heart_beat"><i class="ays_fa ays_fa_heart_o animated"></i></span>
649 776 <span><?php echo esc_html(__( "If you love our plugin, please do big favor and rate us on", "chart-builder")); ?></span>
@@ -683,11 +810,12 @@
683 810 }
684 811 }
685 812
686 813 public function fetch_post_type_props(){
687 - $nonce = isset( $_POST['nonce'] ) ? wp_verify_nonce( sanitize_text_field( $_POST['nonce'] ), 'cbuilder-fetch-post-type-props' ) : '';
688 - if ( $nonce ) {
689 - $results = CBFunctions()->get_post_type_properties( sanitize_text_field( $_POST['post_type'] ) );
814 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended
815 + $nonce = isset( $_POST['nonce'] ) ? wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'cbuilder-fetch-post-type-props' ) : '';
816 + if ( $nonce ) {// phpcs:ignore WordPress.Security.NonceVerification.Recommended
817 + $results = isset($_POST['post_type']) ? CBFunctions()->get_post_type_properties( sanitize_text_field( wp_unslash($_POST['post_type']) ) ) : '';
690 818
691 819 return array(
692 820 'success' => true,
693 821 'fields' => $results,
@@ -753,22 +881,439 @@
753 881 }
754 882
755 883 $ays_chart_builder_flag = intval(get_option('ays_chart_sale_btn'));
756 884 if( $ays_chart_builder_flag == 0 ){
757 - if (isset($_GET['page']) && strpos($_GET['page'], CHART_BUILDER_NAME) !== false) {
758 - if( !(Chart_Builder_Admin::get_max_id('charts') <= 1) ){
759 - // $this->ays_chart_sale_message_30_emma($ays_chart_builder_flag);
885 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended
886 + if ( isset( $_GET['page'] ) && strpos( sanitize_text_field( wp_unslash( $_GET['page'] ) ), CHART_BUILDER_NAME ) !== false ) {
887 + // if( !(Chart_Builder_Admin::get_max_id('charts') <= 2) ){
760 888 // $this->ays_chart_sale_message20($ays_chart_builder_flag);
889 + // $this->ays_chart_discounted_licenses_banner_message();
890 + // $this->ays_chart_new_silver_bundle_message_2025($ays_chart_builder_flag);
891 + // $this->ays_chart_footer_sale_banner_2026($ays_chart_builder_flag);
761 892 // $this->ays_chart_helloween_message($ays_chart_builder_flag);
762 - // $this->ays_chart_black_friday_message($ays_chart_builder_flag);
763 893 // $this->ays_chart_christmas_message($ays_chart_builder_flag);
764 894 // $this->ays_chart_silver_bundle_message($ays_chart_builder_flag);
765 - $this->ays_chart_black_friday_message_2024($ays_chart_builder_flag);
895 + // $this->ays_chart_black_friday_message_2024($ays_chart_builder_flag);
896 + // $this->ays_chart_christmas_message_2024($ays_chart_builder_flag);
897 + // $this->ays_chart_new_halloween_bundle_message_2025($ays_chart_builder_flag);
898 + // $this->ays_chart_black_friday_message($ays_chart_builder_flag);
899 + // $this->ays_chart_christmas_banner_message_2025($ays_chart_builder_flag);
900 + $this->ays_chart_back_to_school_banner_2026($ays_chart_builder_flag);
901 + // }
902 + }
903 + }
904 + }
905 +
906 + // Back to School top banner
907 + public function ays_chart_back_to_school_banner_2026($ishmar){
908 + if($ishmar == 0 ){
909 + $content = array();
910 + $chart_cta_button_link = esc_url('https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-builder-free&utm_campaign=back-to-school-sale-banner-' . CHART_BUILDER_VERSION);
911 + $content[] = '<div id="ays-chart-back-to-school-banner-2026" class="ays-chart-back-to-school-banner-2026 ays-chart-admin-notice notice notice-success is-dismissible ays_chart_dicount_info">';
912 + $content[] = '<svg class="ays-chart-bts-decoration ays-chart-bts-plane" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M22 2 11 13"></path><path d="M22 2 15 22l-4-9-9-4Z"></path></svg>';
913 + $content[] = '<svg class="ays-chart-bts-decoration ays-chart-bts-ruler" viewBox="0 0 36 20" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true"><rect x="1" y="6" width="34" height="9" rx="2"></rect><path d="M8 6v3M14 6v4M20 6v3M26 6v4"></path></svg>';
914 + $content[] = '<svg class="ays-chart-bts-decoration ays-chart-bts-star" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="m12 2 2.6 6.6L21.5 9l-5 4.6 1.4 7-5.9-3.5L6.1 20.6l1.4-7L2.5 9l6.9-.4Z"></path></svg>';
915 + $content[] = '<svg class="ays-chart-bts-decoration ays-chart-bts-pencil" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 20h9"></path><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z"></path></svg>';
916 + $content[] = '<svg class="ays-chart-bts-decoration ays-chart-bts-wave" viewBox="0 0 96 12" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true"><path d="M2 8c8-8 16 8 24 0s16 8 24 0 16 8 24 0 16 8 20 2"></path></svg>';
917 + $content[] = '<div class="ays-chart-bts-content">';
918 + $content[] = '<div class="ays-chart-bts-offer">';
919 + $content[] = '<img class="ays-chart-bts-handwritten" src="'. esc_url(CHART_BUILDER_ADMIN_URL . '/images/ays-chart-back-to-school-handwritten.svg') .'" alt="Back to School Sale">';
920 + $content[] = '<span class="ays-chart-bts-dot" aria-hidden="true"></span>';
921 + $content[] = '<span class="ays-chart-bts-discount">'. esc_html__('20% OFF', 'chart-builder') .'</span>';
922 + $content[] = '</div>';
923 + $content[] = '<div class="ays-chart-bts-actions">';
924 + $content[] = '<span class="ays-chart-bts-use-code">'. esc_html__('Use code', 'chart-builder') .'</span>';
925 + $content[] = '<button type="button" class="ays-chart-bts-coupon" data-coupon="SCHOOL20" aria-label="'. esc_attr__('Copy coupon code SCHOOL20', 'chart-builder') .'"><span>SCHOOL20</span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button>';
926 + $content[] = '<a href="'. esc_url($chart_cta_button_link) .'" class="ays-chart-bts-cta" target="_blank" rel="noopener noreferrer">'. esc_html__('Upgrade Now', 'chart-builder') .'</a>';
927 + $content[] = '</div>';
928 + $content[] = '</div>';
929 + $content[] = '<div class="ays-chart-bts-dismiss"><form action="" method="POST"><div id="ays-chart-dismiss-buttons-content">';
930 + if( current_user_can( 'manage_options' ) ){
931 + $content[] = '<button class="btn btn-link ays-button" name="ays_chart_sale_btn">'. esc_html__('Dismiss ad', 'chart-builder') .'</button>';
932 + $content[] = wp_nonce_field( CHART_BUILDER_NAME . '-sale-banner', CHART_BUILDER_NAME . '-sale-banner', true, false );
933 + }
934 + $content[] = '</div></form></div>';
935 + $content[] = '</div>';
936 + $content[] = '<style id="ays-chart-back-to-school-banner-2026-inline-css">';
937 + $content[] = '#ays-chart-back-to-school-banner-2026{box-sizing:border-box;position:relative;isolation:isolate;width:calc(100% - 20px);max-width:none;min-height:112px;margin:20px 20px 16px 0;padding:0 38px;overflow:hidden;border:1px solid #e8dcc9;border-left-width:1px;border-radius:12px;background-color:#fffdf8;background-image:radial-gradient(circle at 1px 1px,rgba(91,72,45,.09) 1px,transparent 1px),radial-gradient(120% 140% at 0 0,rgba(20,75,220,.07),transparent 55%),radial-gradient(120% 140% at 100% 100%,rgba(126,34,206,.09),transparent 55%);background-size:6px 6px,100% 100%,100% 100%;box-shadow:0 10px 30px -18px rgba(76,45,140,.55);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.ays-chart-bts-content{position:relative;z-index:2;display:flex;min-height:110px;align-items:center;justify-content:space-between;gap:28px}.ays-chart-bts-offer,.ays-chart-bts-actions{display:flex;align-items:center}.ays-chart-bts-offer{min-width:0;gap:9px}.ays-chart-bts-handwritten{width:280px;max-width:23vw;height:auto;color:#0755df;overflow:visible;flex:0 1 auto}.ays-chart-bts-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#ffc51b;align-self:flex-start;margin-top:27px}.ays-chart-bts-discount{color:#8127df;font-size:38px;font-weight:800;line-height:1;letter-spacing:-1.2px;white-space:nowrap}.ays-chart-bts-actions{flex:0 0 auto;gap:12px}.ays-chart-bts-use-code{color:#5f5b69;font-size:11px;font-weight:600;line-height:1;text-transform:uppercase;letter-spacing:.14em;white-space:nowrap}.ays-chart-bts-coupon{box-sizing:border-box;display:flex;min-height:50px;align-items:center;gap:12px;padding:8px 14px;border:2px dashed rgba(129,39,223,.5);border-radius:10px;background:#fff;color:#1147c8;cursor:pointer;box-shadow:none}.ays-chart-bts-coupon:hover,.ays-chart-bts-coupon:focus{border-color:#8127df;background:rgba(129,39,223,.05);color:#1147c8}.ays-chart-bts-coupon span{font-size:19px;font-weight:700;letter-spacing:.04em}.ays-chart-bts-coupon svg{width:16px;height:16px;color:#8127df}.ays-chart-bts-cta{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:0 27px;border-radius:9px;background:linear-gradient(90deg,#1249e7,#8127df);color:#fff!important;font-size:16px;font-weight:700;text-decoration:none!important;white-space:nowrap;box-shadow:0 8px 18px -8px rgba(91,37,194,.9);transition:transform .15s,box-shadow .15s}.ays-chart-bts-cta:hover,.ays-chart-bts-cta:focus{color:#fff;transform:translateY(-1px);box-shadow:0 10px 20px -8px rgba(91,37,194,.95)}.ays-chart-bts-decoration{position:absolute;z-index:1;pointer-events:none}.ays-chart-bts-plane{top:8px;left:12px;width:24px;color:rgba(129,39,223,.55)}.ays-chart-bts-ruler{bottom:7px;left:24px;width:36px;color:rgba(20,73,230,.35)}.ays-chart-bts-star{top:8px;right:14px;width:19px;color:#ffc51b}.ays-chart-bts-pencil{right:31px;bottom:7px;width:21px;color:rgba(129,39,223,.5);transform:rotate(-12deg)}.ays-chart-bts-wave{bottom:3px;left:50%;width:96px;color:rgba(20,73,230,.22);transform:translateX(-50%)}#ays-chart-back-to-school-banner-2026 .notice-dismiss{top:1px;right:1px;color:#756b82}#ays-chart-back-to-school-banner-2026 .notice-dismiss:before{font-size:18px}.ays-chart-bts-dismiss{position:absolute;right:39px;bottom:0;z-index:3}.ays-chart-bts-dismiss form{margin:0}.ays-chart-bts-dismiss #ays-chart-dismiss-buttons-content .ays-button{height:22px!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:#777!important;font-size:10px!important;line-height:22px!important;text-decoration:underline;box-shadow:none!important}.ays-chart-bts-copy-notification{position:fixed;top:50%;left:50%;z-index:10000;transform:translate(-50%,-50%);padding:12px 24px;border-radius:8px;background:rgba(0,0,0,.82);color:#fff;font-size:14px;opacity:0;transition:opacity .25s}.ays-chart-bts-copy-notification.ays-chart-bts-show{opacity:1}@media screen and (max-width:1200px){.ays-chart-bts-content{gap:18px}.ays-chart-bts-handwritten{width:225px}.ays-chart-bts-discount{font-size:31px}.ays-chart-bts-actions{gap:8px}.ays-chart-bts-coupon{min-height:44px;padding:7px 10px}.ays-chart-bts-cta{min-height:44px;padding:0 18px;font-size:14px}}@media screen and (max-width:960px){#ays-chart-back-to-school-banner-2026{padding:15px 38px 20px}.ays-chart-bts-content{min-height:90px;flex-wrap:wrap;justify-content:center;gap:12px 24px}.ays-chart-bts-handwritten{max-width:none}.ays-chart-bts-actions{justify-content:center}.ays-chart-bts-dismiss{right:38px}}@media screen and (max-width:600px){#ays-chart-back-to-school-banner-2026{width:calc(100% - 20px);margin-right:10px;padding:18px 30px 23px 18px}.ays-chart-bts-content{flex-direction:column}.ays-chart-bts-offer{flex-wrap:wrap;justify-content:center}.ays-chart-bts-handwritten{width:210px}.ays-chart-bts-discount{font-size:28px}.ays-chart-bts-actions{flex-wrap:wrap}.ays-chart-bts-use-code{width:100%;text-align:center}.ays-chart-bts-coupon{min-height:40px}.ays-chart-bts-coupon span{font-size:16px}.ays-chart-bts-cta{min-height:40px}.ays-chart-bts-plane,.ays-chart-bts-ruler,.ays-chart-bts-pencil,.ays-chart-bts-wave{display:none}.ays-chart-bts-dismiss{right:30px}}';
938 + $content[] = '</style>';
939 + $content[] = '<script>
940 + (function() {
941 + "use strict";
942 + function initBackToSchoolBanner() {
943 + var banner = document.getElementById("ays-chart-back-to-school-banner-2026");
944 + if (!banner) {
945 + return;
946 + }
947 + var couponButton = banner.querySelector(".ays-chart-bts-coupon");
948 + if (!couponButton) {
949 + return;
950 + }
951 + couponButton.addEventListener("click", function() {
952 + var couponCode = couponButton.getAttribute("data-coupon");
953 + var textarea = document.createElement("textarea");
954 + textarea.value = couponCode;
955 + textarea.style.position = "fixed";
956 + textarea.style.opacity = "0";
957 + document.body.appendChild(textarea);
958 + textarea.focus();
959 + textarea.select();
960 + try {
961 + document.execCommand("copy");
962 + showCopyNotification();
963 + } catch (error) {
964 + // Keep the banner usable when clipboard access is unavailable.
965 + }
966 + document.body.removeChild(textarea);
967 + });
968 + }
969 + function showCopyNotification() {
970 + var notification = document.createElement("div");
971 + notification.className = "ays-chart-bts-copy-notification";
972 + notification.textContent = "'. esc_js(__('Coupon code copied', 'chart-builder')) .'";
973 + document.body.appendChild(notification);
974 + setTimeout(function() {
975 + notification.classList.add("ays-chart-bts-show");
976 + }, 10);
977 + setTimeout(function() {
978 + notification.classList.remove("ays-chart-bts-show");
979 + setTimeout(function() {
980 + if (notification.parentNode) {
981 + notification.parentNode.removeChild(notification);
982 + }
983 + }, 250);
984 + }, 2000);
985 + }
986 + if (document.readyState === "loading") {
987 + document.addEventListener("DOMContentLoaded", initBackToSchoolBanner);
988 + } else {
989 + initBackToSchoolBanner();
990 + }
991 + })();
992 + </script>';
993 + echo implode('', $content); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Static banner markup; dynamic values are escaped above.
994 + }
995 + }
996 +
997 +
998 + public function ays_chart_footer_sale_banner_2026($ishmar){
999 + if($ishmar == 0 ){
1000 + $content = array();
1001 +
1002 + $chart_cta_button_link = esc_url('https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-builder-free&utm_campaign=private-offer-20-off-' . CHART_BUILDER_VERSION);
1003 +
1004 + $content[] = '
1005 + <div class="ays-chart-footer-banner-bottom-banner-wrapper" style="display: none;">
1006 + <div class="ays-chart-footer-banner-bottom-banner-container">
1007 + <div class="ays-chart-footer-banner-bottom-banner-content">
1008 + <div class="ays-chart-footer-banner-bottom-banner-inner">
1009 + <div class="ays-chart-footer-banner-bottom-banner-left">
1010 + <div class="ays-chart-footer-banner-bottom-banner-icon">
1011 + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
1012 + <path d="M12 7v14"></path>
1013 + <path d="M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8"></path>
1014 + <path d="M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5"></path>
1015 + <rect x="3" y="7" width="18" height="4" rx="1"></rect>
1016 + </svg>
1017 + </div>
1018 + <span class="ays-chart-footer-banner-bottom-banner-title">'. esc_html__('Chart Builder by AYS', 'ays-chart-builder') .'</span>
1019 + </div>
1020 + <span class="ays-chart-footer-banner-bottom-banner-separator"></span>
1021 + <span class="ays-chart-footer-banner-bottom-banner-discount">'. esc_html__('20% Off', 'ays-chart-builder') .'</span>
1022 + <div class="ays-chart-footer-banner-bottom-banner-code" onclick="aysChartFooterBannerCopyToClipboard()" title="'. esc_html__('Copy Coupon Code', 'ays-chart-builder') .'">
1023 + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
1024 + <path d="M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z"></path>
1025 + <path d="M13 5v2"></path>
1026 + <path d="M13 17v2"></path>
1027 + <path d="M13 11v2"></path>
1028 + </svg>
1029 + <span>CHARTPRO20</span>
1030 + <button type="button" class="ays-chart-footer-banner-bottom-banner-copy" aria-label="'. esc_html__('Copy Coupon Code', 'ays-chart-builder') .'">
1031 + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
1032 + <rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect>
1033 + <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path>
1034 + </svg>
1035 + </button>
1036 + </div>
1037 + <button type="button" class="ays-chart-footer-banner-bottom-banner-cta">
1038 + '. esc_html__('Get Deal', 'ays-chart-builder') .'
1039 + </button>
1040 + <button type="button" class="ays-chart-footer-banner-bottom-banner-close" aria-label="'. esc_html__('Close popup', 'ays-chart-builder') .'">
1041 + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
1042 + <path d="M18 6 6 18"></path>
1043 + <path d="m6 6 12 12"></path>
1044 + </svg>
1045 + </button>
1046 + </div>
1047 + </div>
1048 + </div>
1049 + </div>';
1050 +
1051 + $content[] = '<style id="ays-chart-footer-banner-styles-inline-css">';
1052 +
1053 + $content[] = '@keyframes ays-pro-slide-up{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:translateY(0)}}@keyframes ays-pro-slide-down{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(24px)}}.ays-chart-footer-banner-bottom-banner-wrapper{position:fixed;bottom:0;left:0;right:0;z-index:9999;padding:0 16px 28px;text-align:center;animation:.45s cubic-bezier(.16,1,.3,1) forwards ays-pro-slide-up}.ays-chart-footer-banner-bottom-banner-wrapper.ays-pro-banner-closing{animation:.32s cubic-bezier(.16,1,.3,1) forwards ays-pro-slide-down}.ays-chart-footer-banner-bottom-banner-container{display:inline-block;max-width:100%;border-radius:16px;background:linear-gradient(90deg,#2f6bff 0,#3e7bff 100%);box-shadow:0 20px 40px -15px rgba(47,107,255,.55),0 8px 20px -10px rgba(47,107,255,.35);overflow:hidden}.ays-chart-footer-banner-bottom-banner-code,.ays-chart-footer-banner-bottom-banner-content,.ays-chart-footer-banner-bottom-banner-inner,.ays-chart-footer-banner-bottom-banner-left{display:flex;align-items:center}.ays-chart-footer-banner-bottom-banner-inner{gap:16px;padding:8px 14px 8px 10px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}.ays-chart-footer-banner-bottom-banner-left{gap:14px}.ays-chart-footer-banner-bottom-banner-icon{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.15);color:#fff}.ays-chart-footer-banner-bottom-banner-icon svg{width:24px;height:24px}.ays-chart-footer-banner-bottom-banner-discount,.ays-chart-footer-banner-bottom-banner-title{font-size:17px;font-weight:600;line-height:1.25;letter-spacing:0;white-space:nowrap;color:#fff}.ays-chart-footer-banner-bottom-banner-separator{display:block;width:1px;height:24px;background:rgba(255,255,255,.4)}.ays-chart-footer-banner-bottom-banner-code{gap:6px;border:1px dashed rgba(255,255,255,.7);border-radius:999px;padding:6px 9px;color:#fff;cursor:pointer;transition:background-color .15s,border-color .15s;display:flex;align-items:center}.ays-chart-footer-banner-bottom-banner-code:hover{background:rgba(255,255,255,.1);border-color:#fff}.ays-chart-footer-banner-bottom-banner-code button svg,.ays-chart-footer-banner-bottom-banner-code>svg{width:16px;height:16px}.ays-chart-footer-banner-bottom-banner-code span{font-size:14px;font-weight:600;line-height:1;letter-spacing:.05em;color:#fff}.ays-chart-footer-banner-bottom-banner-close{display:flex;align-items:center;justify-content:center;margin:0;padding:0;background:none;border:none;color:#fff;cursor:pointer;transition:opacity .15s}.ays-chart-footer-banner-bottom-banner-close:hover{opacity:.8}.ays-chart-footer-banner-bottom-banner-copy{display:flex;align-items:center;justify-content:center;margin:0;padding:0;background:none;border:none;color:#fff;cursor:pointer;transition:opacity .15s}.ays-chart-footer-banner-bottom-banner-copy:hover{opacity:.8}.ays-chart-footer-banner-bottom-banner-cta{display:flex;align-items:center;justify-content:center;padding:8px 16px;background:#fff;color:#2f6bff;border:none;border-radius:6px;font-weight:600;font-size:14px;cursor:pointer;transition:all .15s;margin-left:12px}.ays-chart-footer-banner-bottom-banner-cta:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(47,107,255,.3)}';
1054 + $content[] = '</style>';
1055 +
1056 + $content[] = '<style id="ays-chart-footer-banner-notification-css">';
1057 + $content[] = '.ays-chart-footer-banner-copy-notification{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.9);color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:10001;opacity:0;transition:opacity .3s ease;pointer-events:none}.ays-chart-footer-banner-copy-notification.show{opacity:1}';
1058 + $content[] = '</style>';
1059 +
1060 + $content[] = '<script>';
1061 +
1062 + $content[] = "
1063 + /**
1064 + * Footer Banner JavaScript - ES5 Compatible
1065 + * With delayed popup and visit tracking
1066 + */
1067 +
1068 + (function() {
1069 + 'use strict';
1070 +
1071 + // Configuration
1072 + var STORAGE_KEY = 'ays_chart_footer_banner_data';
1073 + var POPUP_RULES = [
1074 + { visit: 1, delay: 10000 }, // 1st visit: 10 seconds
1075 + { visit: 2, delay: 10000 }, // 2nd visit: 10 seconds
1076 + { visit: 3, delay: 15000 }, // 3th visit: 15 seconds
1077 + { visit: 4, delay: 15000 }, // 4th visit: 15 seconds
1078 + { visit: 5, delay: 20000 }, // 5th visit: 20 seconds
1079 + { visit: 7, delay: 20000 }, // 7th visit: 20 seconds
1080 + { visit: 10, delay: 30000 } // 10th visit: 30 seconds
1081 + ];
1082 + var MAX_SHOWS_PER_DAY = 7;
1083 +
1084 + // Wait for DOM to be ready
1085 + if (document.readyState === 'loading') {
1086 + document.addEventListener('DOMContentLoaded', initBanner);
1087 + } else {
1088 + initBanner();
1089 + }
1090 +
1091 + function initBanner() {
1092 + var banner = document.querySelector('.ays-chart-footer-banner-bottom-banner-wrapper');
1093 + var closeButton = document.querySelector('.ays-chart-footer-banner-bottom-banner-close');
1094 + var ctaButton = document.querySelector('.ays-chart-footer-banner-bottom-banner-cta');
1095 +
1096 + if (!banner) {
1097 + return;
766 1098 }
1099 +
1100 + // Hide banner initially
1101 + banner.style.display = 'none';
1102 +
1103 + // Get or initialize banner data
1104 + var bannerData = getBannerData();
1105 +
1106 + // Check if we need to reset daily data
1107 + if (shouldResetData(bannerData.lastResetDate)) {
1108 + bannerData = resetDailyData();
1109 + }
1110 +
1111 + // Increment visit count
1112 + bannerData.visitCount++;
1113 + saveBannerData(bannerData);
1114 +
1115 + // Check if banner should be shown
1116 + var shouldShow = shouldShowBanner(bannerData);
1117 +
1118 + if (shouldShow.show) {
1119 + // Show banner after delay
1120 + setTimeout(function() {
1121 + banner.style.display = 'block';
1122 +
1123 + // Increment show count
1124 + bannerData.showCount++;
1125 + saveBannerData(bannerData);
1126 + }, shouldShow.delay);
1127 + }
1128 +
1129 + // Close button handler
1130 + if (closeButton) {
1131 + closeButton.addEventListener('click', function() {
1132 + closeBanner(banner);
1133 + });
1134 + }
1135 +
1136 + // CTA button handler
1137 + if (ctaButton) {
1138 + ctaButton.addEventListener('click', function() {
1139 + window.open('https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-builder-free&utm_campaign=private-offer-20-off-". CHART_BUILDER_VERSION ."', '_blank');
1140 + // Optionally close banner after click
1141 + closeBanner(banner);
1142 + });
1143 + }
1144 + }
1145 +
1146 + /**
1147 + * Get banner data from localStorage
1148 + */
1149 + function getBannerData() {
1150 + try {
1151 + var data = localStorage.getItem(STORAGE_KEY);
1152 + if (data) {
1153 + return JSON.parse(data);
1154 + }
1155 + } catch (e) {
1156 + // localStorage not available or parsing error
1157 + }
1158 +
1159 + // Return default data
1160 + return {
1161 + visitCount: 0,
1162 + showCount: 0,
1163 + lastResetDate: getTodayDate()
1164 + };
1165 + }
1166 +
1167 + /**
1168 + * Save banner data to localStorage
1169 + */
1170 + function saveBannerData(data) {
1171 + try {
1172 + localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
1173 + } catch (e) {
1174 + // localStorage not available
1175 + }
1176 + }
1177 +
1178 + /**
1179 + * Check if data should be reset (new day)
1180 + */
1181 + function shouldResetData(lastResetDate) {
1182 + var today = getTodayDate();
1183 + return lastResetDate !== today;
1184 + }
1185 +
1186 + /**
1187 + * Reset daily data
1188 + */
1189 + function resetDailyData() {
1190 + var newData = {
1191 + visitCount: 0,
1192 + showCount: 0,
1193 + lastResetDate: getTodayDate()
1194 + };
1195 + saveBannerData(newData);
1196 + return newData;
1197 + }
1198 +
1199 + /**
1200 + * Get today's date as string (YYYY-MM-DD)
1201 + */
1202 + function getTodayDate() {
1203 + var date = new Date();
1204 + var year = date.getFullYear();
1205 + var month = String(date.getMonth() + 1).padStart(2, '0');
1206 + var day = String(date.getDate()).padStart(2, '0');
1207 + return year + '-' + month + '-' + day;
1208 + }
1209 +
1210 + /**
1211 + * Check if banner should be shown based on rules
1212 + */
1213 + function shouldShowBanner(bannerData) {
1214 + // Check if already shown max times today
1215 + if (bannerData.showCount >= MAX_SHOWS_PER_DAY) {
1216 + return { show: false, delay: 0 };
1217 + }
1218 +
1219 + // Check visit count against rules
1220 + for (var i = 0; i < POPUP_RULES.length; i++) {
1221 + var rule = POPUP_RULES[i];
1222 + if (bannerData.visitCount === rule.visit) {
1223 + return { show: true, delay: rule.delay };
1224 + }
1225 + }
1226 +
1227 + return { show: false, delay: 0 };
1228 + }
1229 +
1230 + /**
1231 + * Close banner with animation
1232 + */
1233 + function closeBanner(banner) {
1234 + if (!banner) {
1235 + return;
1236 + }
1237 +
1238 + // Add closing animation class
1239 + banner.classList.add('ays-pro-banner-closing');
1240 +
1241 + // Wait for animation to complete
1242 + setTimeout(function() {
1243 + banner.style.display = 'none';
1244 + }, 400);
1245 + }
1246 +
1247 + // Polyfill for String.padStart (for older browsers)
1248 + if (!String.prototype.padStart) {
1249 + String.prototype.padStart = function(targetLength, padString) {
1250 + targetLength = targetLength >> 0;
1251 + padString = String(typeof padString !== 'undefined' ? padString : ' ');
1252 + if (this.length >= targetLength) {
1253 + return String(this);
1254 + } else {
1255 + targetLength = targetLength - this.length;
1256 + if (targetLength > padString.length) {
1257 + padString += padString.repeat(targetLength / padString.length);
1258 + }
1259 + return padString.slice(0, targetLength) + String(this);
1260 + }
1261 + };
1262 + }
1263 + })();
1264 +
1265 + function aysChartFooterBannerCopyToClipboard() {
1266 + var textarea = document.createElement('textarea');
1267 + textarea.value = 'CHARTPRO20';
1268 + textarea.style.position = 'fixed';
1269 + textarea.style.opacity = '0';
1270 + document.body.appendChild(textarea);
1271 +
1272 + textarea.select();
1273 + textarea.setSelectionRange(0, 99999);
1274 +
1275 + try {
1276 + document.execCommand('copy');
1277 + aysChartFooterBannerShowCopyNotification('". esc_html__('Coupon code copied', 'ays-chart-builder') ."');
1278 + } catch (err) {
1279 + console.error('Failed to copy text: ', err);
1280 + }
1281 +
1282 + document.body.removeChild(textarea);
767 1283 }
1284 +
1285 + function aysChartFooterBannerShowCopyNotification(message) {
1286 + var existingNotification = document.querySelector('.ays-chart-footer-banner-copy-notification');
1287 + if (existingNotification) {
1288 + document.body.removeChild(existingNotification);
1289 + }
1290 +
1291 + var notification = document.createElement('div');
1292 + notification.className = 'ays-chart-footer-banner-copy-notification';
1293 + notification.textContent = message;
1294 + document.body.appendChild(notification);
1295 +
1296 + setTimeout(function() {
1297 + notification.classList.add('show');
1298 + }, 10);
1299 +
1300 + setTimeout(function() {
1301 + notification.classList.remove('show');
1302 + setTimeout(function() {
1303 + if (notification.parentNode) {
1304 + document.body.removeChild(notification);
1305 + }
1306 + }, 300);
1307 + }, 2000);
1308 + }";
1309 +
1310 + $content[] = '</script>';
1311 +
1312 + $content = implode( '', $content );
1313 + echo ($content);
768 1314 }
769 1315 }
770 -
771 1316 public function ays_chart_dismiss_button(){
772 1317
773 1318 $data = array(
774 1319 'status' => false,
@@ -774,9 +1319,9 @@
774 1319 'status' => false,
775 1320 );
776 1321
777 1322 if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'ays_chart_dismiss_button') {
778 - if( (isset( $_REQUEST['_ajax_nonce'] ) && wp_verify_nonce( $_REQUEST['_ajax_nonce'], $this->plugin_name . '-sale-banner' )) && current_user_can( 'manage_options' )){
1323 + if ( isset( $_REQUEST['_ajax_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['_ajax_nonce'] ) ), $this->plugin_name . '-sale-banner' ) && current_user_can( 'manage_options' ) ) {
779 1324 update_option('ays_chart_sale_btn', 1);
780 1325 update_option('ays_chart_sale_date', current_time( 'mysql' ));
781 1326 $data['status'] = true;
782 1327 }
@@ -788,8 +1333,357 @@
788 1333 wp_die();
789 1334
790 1335 }
791 1336
1337 + public function ays_chart_discounted_licenses_banner_message(){
1338 +
1339 + $content = array();
1340 +
1341 + $date = time() + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS);
1342 + $now_date = date('M d, Y H:i:s', $date);
1343 +
1344 + $start_date = strtotime('2025-09-24');
1345 + $end_date = strtotime('2025-10-25');
1346 + $diff_end = $end_date - $date;
1347 +
1348 + $style_attr = '';
1349 + if( $diff_end < 0 ){
1350 + $style_attr = 'style="display:none;"';
1351 + }
1352 +
1353 + $total_licenses = 50;
1354 + $progression_pattern = array(3, 2, 1, 4, 2, 3, 1, 2, 4, 3, 2, 1, 3, 2, 4, 1, 3, 2, 2, 3, 1, 2);
1355 + $days_passed = floor(($date - $start_date) / (24 * 60 * 60));
1356 + $used_licenses = 0;
1357 +
1358 + for ($i = 0; $i < min($days_passed, count($progression_pattern)); $i++) {
1359 + $used_licenses += $progression_pattern[$i];
1360 + }
1361 + $used_licenses = min($used_licenses, $total_licenses);
1362 + $remaining_licenses = $total_licenses - $used_licenses;
1363 + $progress_percentage = ($used_licenses / $total_licenses) * 100;
1364 +
1365 + $ays_chart_cta_button_link = esc_url('https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=chart-maker-license-banner-' . CHART_BUILDER_VERSION);
1366 +
1367 + $content[] = '<div id="ays-chart-progress-banner-main" class="ays-chart-progress-banner-main ays-chart-admin-notice notice notice-success is-dismissible" ' . $style_attr . '>';
1368 + $content[] = '<div class="ays-chart-progress-banner-content">';
1369 + $content[] = '<div class="ays-chart-progress-banner-left">';
1370 + $content[] = '<div class="ays-chart-progress-banner-icon">';
1371 + $content[] = '<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
1372 + <path d="M1.33325 22.6668L11.9999 13.3335L33.3333 14.6668L34.6666 36.0002L25.3333 46.6668C25.3333 46.6668 25.3346 38.6682 17.3333 30.6668C9.33192 22.6655 1.33325 22.6668 1.33325 22.6668Z" fill="#A0041E"/>
1373 + <path d="M1.29739 46.6665C1.29739 46.6665 1.24939 36.0278 5.27739 31.9998C9.30539 27.9718 20.0001 28.2492 20.0001 28.2492C20.0001 28.2492 19.9987 38.6665 15.9987 42.6665C11.9987 46.6665 1.29739 46.6665 1.29739 46.6665Z" fill="#FFAC33"/>
1374 + <path d="M11.9986 41.3332C14.9441 41.3332 17.3319 38.9454 17.3319 35.9998C17.3319 33.0543 14.9441 30.6665 11.9986 30.6665C9.0531 30.6665 6.66528 33.0543 6.66528 35.9998C6.66528 38.9454 9.0531 41.3332 11.9986 41.3332Z" fill="#FFCC4D"/>
1375 + <path d="M47.9986 0C47.9986 0 34.6653 0 18.6653 13.3333C10.6653 20 10.6653 32 13.3319 34.6667C15.9986 37.3333 27.9986 37.3333 34.6653 29.3333C47.9986 13.3333 47.9986 0 47.9986 0Z" fill="#55ACEE"/>
1376 + <path d="M35.9987 6.6665C33.8347 6.6665 31.9814 7.96117 31.144 9.81317C31.8134 9.5105 32.5507 9.33317 33.332 9.33317C36.2774 9.33317 38.6654 11.7212 38.6654 14.6665C38.6654 15.4478 38.488 16.1852 38.1867 16.8532C40.0387 16.0172 41.332 14.1638 41.332 11.9998C41.332 9.0545 38.944 6.6665 35.9987 6.6665Z" fill="black"/>
1377 + <path d="M10.6667 37.3332C10.6667 37.3332 10.6667 31.9998 12.0001 30.6665C13.3334 29.3332 29.3347 16.0012 30.6667 17.3332C31.9987 18.6652 18.6654 34.6665 17.3321 35.9998C15.9987 37.3332 10.6667 37.3332 10.6667 37.3332Z" fill="#A0041E"/>
1378 + </svg>';
1379 + $content[] = '</div>';
1380 + $content[] = '<div class="ays-chart-progress-banner-text">';
1381 + $content[] = '<h2 class="ays-chart-progress-banner-title">' . sprintf( __('Get the Pro Version of %s Chart Builder%s – 20%% OFF', 'chart-builder'), '<a href="'. $ays_chart_cta_button_link .'" target="_blank">', '</a>' ) . '</h2>';
1382 + $content[] = '<p class="ays-chart-progress-banner-subtitle">' . __('Unlock advanced features + 30 day Money Back Guarantee', 'chart-builder') . '</p>';
1383 + $content[] = '</div>';
1384 + $content[] = '</div>';
1385 +
1386 + $content[] = '<div class="ays-chart-progress-banner-center">';
1387 + $content[] = '<div class="ays-chart-progress-banner-coupon">';
1388 + $content[] = '<div class="ays-chart-progress-banner-coupon-box" onclick="chartCopyToClipboard(\'FREE2PRO20\')" title="' . __('Click to copy', 'chart-builder') . '">';
1389 + $content[] = '<span class="ays-chart-progress-banner-coupon-text">FREE2PRO20</span>';
1390 + $content[] = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="ays-chart-progress-banner-copy-icon">';
1391 + $content[] = '<path d="M13.5 2.5H6.5C5.67 2.5 5 3.17 5 4V10C5 10.83 5.67 11.5 6.5 11.5H13.5C14.33 11.5 15 10.83 15 10V4C15 3.17 14.33 2.5 13.5 2.5ZM13.5 10H6.5V4H13.5V10ZM2.5 6.5V12.5C2.5 13.33 3.17 14 4 14H10V12.5H4V6.5H2.5Z" fill="white"/>';
1392 + $content[] = '</svg>';
1393 + $content[] = '</div>';
1394 + $content[] = '</div>';
1395 +
1396 + $content[] = '<div class="ays-chart-progress-banner-progress">';
1397 + $content[] = '<p class="ays-chart-progress-banner-progress-text">' . __('Only', 'chart-builder') . ' <span id="remaining-licenses">' . $remaining_licenses . '</span> ' . __('of 50 discounted licenses left', 'chart-builder') . '</p>';
1398 + $content[] = '<div class="ays-chart-progress-banner-progress-bar">';
1399 + $content[] = '<div class="ays-chart-progress-banner-progress-fill" id="progress-fill" style="width: ' . $progress_percentage . '%;"></div>';
1400 + $content[] = '</div>';
1401 + $content[] = '</div>';
1402 + $content[] = '</div>';
1403 +
1404 + $content[] = '<div class="ays-chart-progress-banner-right">';
1405 + $content[] = '<a href="'. $ays_chart_cta_button_link .'" class="ays-chart-progress-banner-upgrade" target="_blank">';
1406 + $content[] = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">';
1407 + $content[] = '<path d="M14.6392 6.956C14.5743 6.78222 14.4081 6.66667 14.2223 6.66667H8.85565L11.9512 0.648C12.0485 0.458667 11.9983 0.227111 11.8308 0.0955556C11.7499 0.0315556 11.6525 0 11.5556 0C11.4521 0 11.3485 0.0364444 11.2654 0.108L8.00009 2.928L1.48765 8.55244C1.3472 8.67378 1.29653 8.86978 1.36142 9.04356C1.42631 9.21733 1.59209 9.33333 1.77787 9.33333H7.14454L4.04898 15.352C3.95165 15.5413 4.00187 15.7729 4.16942 15.9044C4.25031 15.9684 4.34765 16 4.44453 16C4.54809 16 4.65165 15.9636 4.73476 15.892L8.00009 13.072L14.5125 7.44756C14.6534 7.32622 14.7036 7.13022 14.6392 6.956Z" fill="white"/>';
1408 + $content[] = '</svg>';
1409 + $content[] = ' ' . __('Upgrade Now', 'chart-builder');
1410 + $content[] = '</a>';
1411 + $content[] = '</div>';
1412 + $content[] = '</div>';
1413 +
1414 + if( current_user_can( 'manage_options' ) ){
1415 + $content[] = '<div id="ays-chart-dismiss-buttons-content">';
1416 + $content[] = '<form action="" method="POST" style="position: absolute; bottom: 0; right: 0; color: #fff;">';
1417 + $content[] = '<button class="btn btn-link ays-button" name="ays_chart_sale_btn" style="color: darkgrey; font-size: 11px;">'. __( "Dismiss ad", 'chart-builder' ) .'</button>';
1418 + $content[] = wp_nonce_field( CHART_BUILDER_NAME . '-sale-banner' , CHART_BUILDER_NAME . '-sale-banner' );
1419 + $content[] = '</form>';
1420 + $content[] = '</div>';
1421 + }
1422 + $content[] = '</div>';
1423 +
1424 + // Fox LMS Pro Banner Styles
1425 + $content[] = '<style id="ays-chart-progress-banner-styles-inline-css">';
1426 + $content[] = '
1427 + .ays-chart-progress-banner-main {
1428 + background: linear-gradient(135deg, #6344ED 0%, #8C2ABE 100%);
1429 + padding: 20px 30px;
1430 + border-radius: 16px;
1431 + color: white;
1432 + position: relative;
1433 + margin: 20px 0;
1434 + box-shadow: 0 8px 32px rgba(99, 68, 237, 0.3);
1435 + border: 0;
1436 + }
1437 +
1438 + .ays-chart-progress-banner-main .ays-chart-progress-banner-content {
1439 + display: flex;
1440 + align-items: center;
1441 + justify-content: space-between;
1442 + gap: 30px;
1443 + }
1444 +
1445 + .ays-chart-progress-banner-main .ays-chart-progress-banner-left {
1446 + display: flex;
1447 + align-items: center;
1448 + gap: 20px;
1449 + flex: 1;
1450 + }
1451 +
1452 + .ays-chart-progress-banner-main .ays-chart-progress-banner-center {
1453 + display: flex;
1454 + align-items: center;
1455 + gap: 15px;
1456 + flex: 1;
1457 + }
1458 +
1459 + .ays-chart-progress-banner-main .ays-chart-progress-banner-right {
1460 + display: flex;
1461 + align-items: center;
1462 + gap: 20px;
1463 + flex-shrink: 0;
1464 + }
1465 +
1466 + .ays-chart-progress-banner-main .ays-chart-progress-banner-icon {
1467 + font-size: 32px;
1468 + filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.2));
1469 + }
1470 +
1471 + .ays-chart-progress-banner-main .ays-chart-progress-banner-title {
1472 + font-size: 21px;
1473 + font-weight: 700;
1474 + margin: 0 0 8px 0;
1475 + line-height: 1.2;
1476 + color: #fff;
1477 + }
1478 +
1479 + .ays-chart-progress-banner-main .ays-chart-progress-banner-title a {
1480 + text-decoration: underline;
1481 + color: #fff;
1482 + }
1483 +
1484 + .ays-chart-progress-banner-main .ays-chart-progress-banner-subtitle {
1485 + font-size: 16px;
1486 + margin: 0;
1487 + opacity: 0.9;
1488 + font-weight: 400;
1489 + }
1490 +
1491 + .ays-chart-progress-banner-main .ays-chart-progress-banner-coupon {
1492 + margin-bottom: 5px;
1493 + }
1494 +
1495 + .ays-chart-progress-banner-main .ays-chart-progress-banner-coupon-box {
1496 + border: 2px dotted rgba(255, 255, 255, 0.6);
1497 + padding: 8px 16px;
1498 + border-radius: 8px;
1499 + background: rgba(255, 255, 255, 0.1);
1500 + cursor: pointer;
1501 + transition: all 0.3s ease;
1502 + display: flex;
1503 + align-items: center;
1504 + gap: 8px;
1505 + backdrop-filter: blur(10px);
1506 + }
1507 +
1508 + .ays-chart-progress-banner-main .ays-chart-progress-banner-coupon-box:hover {
1509 + background: rgba(255, 255, 255, 0.2);
1510 + border-color: rgba(255, 255, 255, 0.8);
1511 + transform: translateY(-1px);
1512 + }
1513 +
1514 + .ays-chart-progress-banner-main .ays-chart-progress-banner-coupon-text {
1515 + font-size: 16px;
1516 + font-weight: 700;
1517 + letter-spacing: 1px;
1518 + color: #fff;
1519 + font-family: monospace;
1520 + }
1521 +
1522 + .ays-chart-progress-banner-main .ays-chart-progress-banner-copy-icon {
1523 + opacity: 0.8;
1524 + transition: opacity 0.3s ease;
1525 + }
1526 +
1527 + .ays-chart-progress-banner-main .ays-chart-progress-banner-coupon-box:hover .ays-chart-progress-banner-copy-icon {
1528 + opacity: 1;
1529 + }
1530 +
1531 + .ays-chart-progress-banner-main .ays-chart-progress-banner-progress {
1532 + text-align: center;
1533 + width: 100%;
1534 + }
1535 +
1536 + .ays-chart-progress-banner-main .ays-chart-progress-banner-progress-text {
1537 + font-size: 14px;
1538 + margin: 0 0 10px 0;
1539 + opacity: 0.9;
1540 + }
1541 +
1542 + .ays-chart-progress-banner-main .ays-chart-progress-banner-progress-bar {
1543 + width: 300px;
1544 + height: 10px;
1545 + background: rgba(255, 255, 255, 0.2);
1546 + border-radius: 4px;
1547 + overflow: hidden;
1548 + margin: 0 auto;
1549 + }
1550 +
1551 + .ays-chart-progress-banner-main .ays-chart-progress-banner-progress-fill {
1552 + height: 100%;
1553 + background: linear-gradient(90deg, #4ADE80 0%, #22C55E 100%);
1554 + border-radius: 4px;
1555 + transition: width 0.8s ease;
1556 + width: 70%;
1557 + }
1558 +
1559 + .ays-chart-progress-banner-main .ays-chart-progress-banner-upgrade {
1560 + background: linear-gradient(135deg, #F59E0B 0%, #F97316 100%);
1561 + color: white;
1562 + border: none;
1563 + padding: 12px 24px;
1564 + border-radius: 8px;
1565 + font-size: 16px;
1566 + font-weight: 600;
1567 + cursor: pointer;
1568 + transition: all 0.3s ease;
1569 + box-shadow: 0 4px 16px rgba(245, 158, 11, 0.4);
1570 + text-decoration: none;
1571 + display: inline-flex;
1572 + align-items: center;
1573 + gap: 8px;
1574 + }
1575 +
1576 + .ays-chart-progress-banner-main .ays-chart-progress-banner-upgrade:hover {
1577 + transform: translateY(-2px);
1578 + box-shadow: 0 6px 20px rgba(245, 158, 11, 0.6);
1579 + text-decoration: none;
1580 + color: white;
1581 + }
1582 +
1583 + .ays-chart-progress-banner-main .notice-dismiss:before {
1584 + color: #fff;
1585 + }
1586 +
1587 + /* Copy notification */
1588 + .ays-chart-copy-notification {
1589 + position: fixed;
1590 + top: 50%;
1591 + left: 50%;
1592 + transform: translate(-50%, -50%);
1593 + background: rgba(0, 0, 0, 0.8);
1594 + color: white;
1595 + padding: 12px 24px;
1596 + border-radius: 8px;
1597 + font-size: 14px;
1598 + z-index: 10000;
1599 + opacity: 0;
1600 + transition: opacity 0.3s ease;
1601 + }
1602 +
1603 + .ays-chart-copy-notification.show {
1604 + opacity: 1;
1605 + }
1606 +
1607 + @media (max-width: 1400px) {
1608 + .ays-chart-progress-banner-main .ays-chart-progress-banner-center {
1609 + flex-direction: column;
1610 + }
1611 + }
1612 +
1613 + @media (max-width: 1200px) {
1614 + .ays-chart-progress-banner-main .ays-chart-progress-banner-content {
1615 + flex-direction: column;
1616 + gap: 20px;
1617 + }
1618 +
1619 + .ays-chart-progress-banner-main .ays-chart-progress-banner-left {
1620 + width: 100%;
1621 + justify-content: center;
1622 + text-align: center;
1623 + flex-direction: column;
1624 + }
1625 +
1626 + .ays-chart-progress-banner-main .ays-chart-progress-banner-center {
1627 + width: 100%;
1628 + }
1629 +
1630 + .ays-chart-progress-banner-main .ays-chart-progress-banner-right {
1631 + width: 100%;
1632 + justify-content: center;
1633 + }
1634 + }
1635 +
1636 + @media (max-width: 768px) {
1637 + #ays-chart-progress-banner-main {
1638 + display: none !important;
1639 + }
1640 +
1641 + .ays-chart-progress-banner-main {
1642 + padding: 15px 20px;
1643 + margin: 15px 0;
1644 + }
1645 +
1646 + .ays-chart-progress-banner-main .ays-chart-progress-banner-title {
1647 + font-size: 18px;
1648 + }
1649 +
1650 + .ays-chart-progress-banner-main .ays-chart-progress-banner-subtitle {
1651 + font-size: 14px;
1652 + }
1653 +
1654 + .ays-chart-progress-banner-main .ays-chart-progress-banner-progress-bar {
1655 + width: 100%;
1656 + max-width: 280px;
1657 + }
1658 +
1659 + .ays-chart-progress-banner-main .ays-chart-progress-banner-upgrade {
1660 + padding: 10px 20px;
1661 + font-size: 14px;
1662 + }
1663 + }
1664 +
1665 + @media (max-width: 480px) {
1666 + .ays-chart-progress-banner-main {
1667 + padding: 12px 15px;
1668 + }
1669 +
1670 + .ays-chart-progress-banner-main .ays-chart-progress-banner-coupon-text {
1671 + font-size: 14px;
1672 + }
1673 +
1674 + .ays-chart-progress-banner-main .ays-chart-progress-banner-progress-bar {
1675 + max-width: 250px;
1676 + }
1677 + }
1678 + ';
1679 +
1680 + $content[] = '</style>';
1681 +
1682 + $content = implode( '', $content );
1683 + echo ($content);
1684 + }
1685 +
792 1686 // 30% Sale Emma
793 1687 public function ays_chart_sale_message_30_emma($ishmar){
794 1688 if($ishmar == 0 ){
795 1689 $content = array();
@@ -806,9 +1700,9 @@
806 1700 </div>';
807 1701 $content[] = '</div>';
808 1702
809 1703 $content[] = '<div style="font-size: 17px;">';
810 - $content[] = '<img style="width: 24px;height: 24px;" src="' . esc_attr(CHART_BUILDER_ADMIN_URL) . '/images/icons/guarantee-new.png">';
1704 + $content[] = '<img style="width: 24px; height: 24px;" src="' . esc_url(plugins_url('admin/images/icons/guarantee-new.png', dirname(__FILE__))) . '">';// phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage
811 1705 $content[] = '<span style="padding-left: 4px; font-size: 14px; font-weight: 600;"> 30 Day Money Back Guarantee</span>';
812 1706
813 1707 $content[] = '</div>';
814 1708
@@ -868,9 +1762,10 @@
868 1762 $content[] = '</div>';
869 1763 $content[] = '</div>';
870 1764
871 1765 $content = implode( '', $content );
872 - echo html_entity_decode(esc_html( $content ));
1766 + echo wp_kses_post( html_entity_decode( $content, ENT_QUOTES, 'UTF-8' ) );
1767 +
873 1768 }
874 1769 }
875 1770
876 1771 // Self 20% sale
@@ -885,18 +1780,26 @@
885 1780 $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-dicount-wrap-text-box">';
886 1781
887 1782 $content[] = '<div class="ays-chart-dicount-sale-name-discount-box">';
888 1783 $content[] = '<span class="ays-chart-new-chart-pro-title">';
889 - $content[] = __( "<span><a href='https://ays-pro.com/wordpress/chart-builder?utm_source=chart-free-dashboard&utm_medium=chart-sale-banner&utm_campaign=chart-sale-plugin-name' target='_blank' style='color:#ffffff; text-decoration: underline;'>Chart Builder</a></span>", CHART_BUILDER_NAME );
1784 + // Translators: %s is the URL to the Chart Builder plugin page.
1785 + $content[] = sprintf(
1786 + /* translators: %s is the Chart Builder plugin URL. */
1787 + __(
1788 + "<span><a href='%s' target='_blank' style='color:#ffffff; text-decoration: underline;'>Chart Builder</a></span>",
1789 + 'chart-builder'
1790 + ),
1791 + "https://ays-pro.com/wordpress/chart-builder?utm_source=chart-free-dashboard&utm_medium=chart-sale-banner&utm_campaign=chart-sale-plugin-name" . CHART_BUILDER_VERSION
1792 + );
890 1793 $content[] = '</span>';
891 1794 $content[] = '<div>';
892 - $content[] = '<img src="' . CHART_BUILDER_ADMIN_URL . '/images/ays-chart-banner-sale-30.svg" style="width: 70px;">';
1795 + $content[] = '<img src="' . esc_url(plugins_url('admin/images/ays-chart-banner-sale-30.svg', dirname(__FILE__))) . '" style="width: 70px;">';// phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage
893 1796 $content[] = '</div>';
894 1797 $content[] = '</div>';
895 1798
896 1799 $content[] = '<span class="ays-chart-new-chart-pro-desc">';
897 - $content[] = '<img class="ays-chart-new-chart-pro-guaranteeicon" src="' . CHART_BUILDER_ADMIN_URL . '/images/chart-builder-guaranteeicon.webp" style="width: 30px;">';
898 - $content[] = __( "30 Days Money Back Guarantee", CHART_BUILDER_NAME );
1800 + $content[] = '<img class="ays-chart-new-chart-pro-guaranteeicon" src="' . esc_url(plugins_url('admin/images/chart-builder-guaranteeicon.webp', dirname(__FILE__))) . '" style="width: 30px;">'; // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage
1801 + $content[] = esc_html__( "30 Days Money Back Guarantee", 'chart-builder' );
899 1802 $content[] = '</span>';
900 1803
901 1804 $content[] = '<div style="position: absolute;right: 10px;bottom: 1px;" class="ays-chart-dismiss-buttons-container-for-chart">';
902 1805 $content[] = '<form method="POST">';
@@ -915,15 +1818,15 @@
915 1818
916 1819 $content[] = '<div id="ays-chart-countdown-main-container">';
917 1820 $content[] = '<div class="ays-chart-countdown-container">';
918 1821 $content[] = '<div id="ays-chart-countdown" style="display: block;">';
919 - $content[] = __( "Offer ends in:", CHART_BUILDER_NAME );
1822 + $content[] = esc_html__( "Offer ends in:", 'chart-builder' );
920 1823
921 1824 $content[] = '<ul style="padding: 0">';
922 - $content[] = '<li><span id="ays-chart-countdown-days">0</span>' . __( 'Days', CHART_BUILDER_NAME ) . '</li>';
923 - $content[] = '<li><span id="ays-chart-countdown-hours">0</span>' . __( 'Hours', CHART_BUILDER_NAME ) . '</li>';
924 - $content[] = '<li><span id="ays-chart-countdown-minutes">0</span>' . __( 'Minutes', CHART_BUILDER_NAME ) . '</li>';
925 - $content[] = '<li><span id="ays-chart-countdown-seconds">0</span>' . __( 'Seconds', CHART_BUILDER_NAME ) . '</li>';
1825 + $content[] = '<li><span id="ays-chart-countdown-days">0</span>' . esc_html__( 'Days', 'chart-builder' ) . '</li>';
1826 + $content[] = '<li><span id="ays-chart-countdown-hours">0</span>' . esc_html__( 'Hours', 'chart-builder' ) . '</li>';
1827 + $content[] = '<li><span id="ays-chart-countdown-minutes">0</span>' . esc_html__( 'Minutes', 'chart-builder' ) . '</li>';
1828 + $content[] = '<li><span id="ays-chart-countdown-seconds">0</span>' . esc_html__( 'Seconds', 'chart-builder' ) . '</li>';
926 1829 $content[] = '</ul>';
927 1830 $content[] = '</div>';
928 1831
929 1832 $content[] = '<div id="ays-chart-countdown-content" class="emoji" style="display: none;">';
@@ -937,11 +1840,11 @@
937 1840
938 1841 $content[] = '</div>';
939 1842
940 1843 $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-dicount-wrap-button-box">';
941 - $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder?utm_source=chart-free-dashboard&utm_medium=chart-sale-banner&utm_campaign=chart-sale-button" class="button button-primary ays-button" id="ays-button-top-buy-now" target="_blank" style="" >' . __( 'Buy Now', CHART_BUILDER_NAME ) . '</a>';
1844 + $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder?utm_source=chart-free-dashboard&utm_medium=chart-sale-banner&utm_campaign=chart-sale-button'.CHART_BUILDER_VERSION.'" class="button button-primary ays-button" id="ays-button-top-buy-now" target="_blank" style="" >' . esc_html__( 'Buy Now', 'chart-builder' ) . '</a>';
942 1845 $content[] = '<span class="ays-chart-dicount-one-time-text">';
943 - $content[] = __( "One-time payment", CHART_BUILDER_NAME );
1846 + $content[] = esc_html__( "One-time payment", 'chart-builder' );
944 1847 $content[] = '</span>';
945 1848 $content[] = '</div>';
946 1849
947 1850 $content[] = '</div>';
@@ -948,9 +1851,9 @@
948 1851
949 1852 $content[] = '</div>';
950 1853
951 1854 $content = implode( '', $content );
952 - echo $content;
1855 + echo wp_kses_post( html_entity_decode( $content, ENT_QUOTES, 'UTF-8' ) );
953 1856 }
954 1857 }
955 1858
956 1859 // Helloween banner
@@ -972,15 +1875,15 @@
972 1875 <span style='' class='ays-chart-helloween-bundle'>
973 1876 <a href='https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=helloween-sale-banner' target='_blank' class='ays-chart-dicount-wrap-color-helloween ays-chart-dicount-wrap-text-decoration-helloween' style='display:block; color:#b2ff00;margin-right:6px;'>
974 1877 Chart Builder
975 1878 </a>
976 - </span>", CHART_BUILDER_NAME );
1879 + </span>", 'chart-builder' );
977 1880 $content[] = '</p>';
978 1881 $content[] = '<p>';
979 1882 $content[] = __( "Hurry up!
980 1883 <a href='https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=helloween-sale-banner' target='_blank' style='color:#ffc700;'>
981 1884 Check it out!
982 - </a>", CHART_BUILDER_NAME );
1885 + </a>", 'chart-builder' );
983 1886 $content[] = '</p>';
984 1887
985 1888 $content[] = '</div>';
986 1889
@@ -1010,9 +1913,9 @@
1010 1913 $content[] = '</div>';
1011 1914
1012 1915 $content[] = '</div>';
1013 1916 $content[] = '<div class="ays-chart-dicount-wrap-box ays-buy-now-button-box-helloween">';
1014 - $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=helloween-sale-banner" class="button button-primary ays-buy-now-button-helloween" id="ays-button-top-buy-now-helloween" target="_blank" style="" >' . __( 'Buy Now !', CHART_BUILDER_NAME ) . '</a>';
1917 + $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=helloween-sale-banner" class="button button-primary ays-buy-now-button-helloween" id="ays-button-top-buy-now-helloween" target="_blank" style="" >' . __( 'Buy Now !', 'chart-builder' ) . '</a>';
1015 1918 $content[] = '</div>';
1016 1919 $content[] = '</div>';
1017 1920
1018 1921 $content[] = '</div>';
@@ -1033,74 +1936,12 @@
1033 1936 $content[] = '</div>';
1034 1937
1035 1938 $content = implode( '', $content );
1036 1939
1037 - echo $content;
1940 + echo wp_kses_post( html_entity_decode( $content, ENT_QUOTES, 'UTF-8' ) );
1038 1941 }
1039 1942 }
1040 1943
1041 - // Black Friday banner
1042 - public static function ays_chart_black_friday_message($ishmar){
1043 - if($ishmar == 0 ){
1044 - $content = array();
1045 -
1046 - $content[] = '<div id="ays-chart-dicount-black-friday-month-main" class="notice notice-success is-dismissible ays_chart_dicount_info">';
1047 - $content[] = '<div id="ays-chart-dicount-black-friday-month" class="ays_chart_dicount_month">';
1048 - $content[] = '<div class="ays-chart-dicount-black-friday-box">';
1049 - $content[] = '<div class="ays-chart-dicount-black-friday-wrap-box ays-chart-dicount-black-friday-wrap-box-80" style="width: 70%;">';
1050 - $content[] = '<div class="ays-chart-dicount-black-friday-title-row">' . __( 'Limited Time', "chart-builder" ) .' '. '<a href="https://ays-pro.com/wordpress/chart-builder?utm_medium=chart-free&utm_campaign=black-friday-sale-banner" class="ays-chart-dicount-black-friday-button-sale" target="_blank">' . __( 'Sale', "chart-builder" ) . '</a>' . '</div>';
1051 - $content[] = '<div class="ays-chart-dicount-black-friday-title-row">' . __( 'Chart Builder plugin', "chart-builder" ) . '</div>';
1052 - $content[] = '</div>';
1053 -
1054 - $content[] = '<div class="ays-chart-dicount-black-friday-wrap-box ays-chart-dicount-black-friday-wrap-text-box">';
1055 - $content[] = '<div class="ays-chart-dicount-black-friday-text-row">' . __( '20% off', "chart-builder" ) . '</div>';
1056 - $content[] = '</div>';
1057 -
1058 - $content[] = '<div class="ays-chart-dicount-black-friday-wrap-box" style="width: 25%;">';
1059 - $content[] = '<div id="ays-chart-countdown-main-container">';
1060 - $content[] = '<div class="ays-chart-countdown-container">';
1061 - $content[] = '<div id="ays-chart-countdown" style="display: block;">';
1062 - $content[] = '<ul>';
1063 - $content[] = '<li><span id="ays-chart-countdown-days">0</span>' . __( 'Days', "chart-builder" ) . '</li>';
1064 - $content[] = '<li><span id="ays-chart-countdown-hours">0</span>' . __( 'Hours', "chart-builder" ) . '</li>';
1065 - $content[] = '<li><span id="ays-chart-countdown-minutes">0</span>' . __( 'Minutes', "chart-builder" ) . '</li>';
1066 - $content[] = '<li><span id="ays-chart-countdown-seconds">0</span>' . __( 'Seconds', "chart-builder" ) . '</li>';
1067 - $content[] = '</ul>';
1068 - $content[] = '</div>';
1069 - $content[] = '<div id="ays-chart-countdown-content" class="emoji" style="display: none;">';
1070 - $content[] = '<span>🚀</span>';
1071 - $content[] = '<span>⌛</span>';
1072 - $content[] = '<span>🔥</span>';
1073 - $content[] = '<span>💣</span>';
1074 - $content[] = '</div>';
1075 - $content[] = '</div>';
1076 - $content[] = '</div>';
1077 - $content[] = '</div>';
1078 -
1079 - $content[] = '<div class="ays-chart-dicount-black-friday-wrap-box" style="width: 25%;">';
1080 - $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder?utm_medium=chart-free&utm_campaign=black-friday-sale-banner" class="ays-chart-dicount-black-friday-button-buy-now" target="_blank">' . __( 'Get Your Deal', "chart-builder" ) . '</a>';
1081 - $content[] = '</div>';
1082 - $content[] = '</div>';
1083 - $content[] = '</div>';
1084 -
1085 - $content[] = '<div style="position: absolute;right: 0;bottom: 1px;" class="ays-chart-dismiss-buttons-container-for-form-black-friday">';
1086 - $content[] = '<form method="POST">';
1087 - $content[] = '<div id="ays-chart-dismiss-buttons-content-black-friday">';
1088 - if( current_user_can( 'manage_options' ) ){
1089 - $content[] = '<button class="btn btn-link ays-button-black-friday" name="ays_chart_sale_btn" style="">' . __( 'Dismiss ad', "chart-builder" ) . '</button>';
1090 - $content[] = wp_nonce_field( CHART_BUILDER_NAME . '-sale-banner' , CHART_BUILDER_NAME . '-sale-banner' );
1091 - }
1092 - $content[] = '</div>';
1093 - $content[] = '</form>';
1094 - $content[] = '</div>';
1095 - $content[] = '</div>';
1096 -
1097 - $content = implode( '', $content );
1098 -
1099 - echo $content;
1100 - }
1101 - }
1102 -
1103 1944 // Christmas banner
1104 1945 public static function ays_chart_christmas_message($ishmar){
1105 1946 if($ishmar == 0 ){
1106 1947 $content = array();
@@ -1108,10 +1949,10 @@
1108 1949 $content[] = '<div id="ays-chart-dicount-christmas-month-main" class="notice notice-success is-dismissible ays_chart_dicount_info">';
1109 1950 $content[] = '<div id="ays-chart-dicount-christmas-month" class="ays_chart_dicount_month">';
1110 1951 $content[] = '<div class="ays-chart-dicount-christmas-box">';
1111 1952 $content[] = '<div class="ays-chart-dicount-christmas-wrap-box ays-chart-dicount-christmas-wrap-box-80">';
1112 - $content[] = '<div class="ays-chart-dicount-christmas-title-row">' . __( 'Limited Time', CHART_BUILDER_NAME ) .' '. '<a href="https://ays-pro.com/wordpress/chart-builder" class="ays-chart-dicount-christmas-button-sale" target="_blank">' . __( '40%', CHART_BUILDER_NAME ) . '</a>' . ' SALE</div>';
1113 - $content[] = '<div class="ays-chart-dicount-christmas-title-row">' . __( 'Chart Builder Plugin', CHART_BUILDER_NAME ) . '</div>';
1953 + $content[] = '<div class="ays-chart-dicount-christmas-title-row">' . __( 'Limited Time', 'chart-builder' ) .' '. '<a href="https://ays-pro.com/wordpress/chart-builder" class="ays-chart-dicount-christmas-button-sale" target="_blank">' . __( '40%', 'chart-builder' ) . '</a>' . ' SALE</div>';
1954 + $content[] = '<div class="ays-chart-dicount-christmas-title-row">' . __( 'Chart Builder Plugin', 'chart-builder' ) . '</div>';
1114 1955 $content[] = '</div>';
1115 1956
1116 1957 $content[] = '<div class="ays-chart-dicount-christmas-wrap-box" style="width: 25%;">';
1117 1958 $content[] = '<div id="ays-chart-countdown-main-container">';
@@ -1117,12 +1958,12 @@
1117 1958 $content[] = '<div id="ays-chart-countdown-main-container">';
1118 1959 $content[] = '<div class="ays-chart-countdown-container">';
1119 1960 $content[] = '<div id="ays-chart-countdown" style="display: block;">';
1120 1961 $content[] = '<ul>';
1121 - $content[] = '<li><span id="ays-chart-countdown-days"></span>' . __( 'Days', CHART_BUILDER_NAME ) . '</li>';
1122 - $content[] = '<li><span id="ays-chart-countdown-hours"></span>' . __( 'Hours', CHART_BUILDER_NAME ) . '</li>';
1123 - $content[] = '<li><span id="ays-chart-countdown-minutes"></span>' . __( 'Minutes', CHART_BUILDER_NAME ) . '</li>';
1124 - $content[] = '<li><span id="ays-chart-countdown-seconds"></span>' . __( 'Seconds', CHART_BUILDER_NAME ) . '</li>';
1962 + $content[] = '<li><span id="ays-chart-countdown-days"></span>' . __( 'Days', 'chart-builder' ) . '</li>';
1963 + $content[] = '<li><span id="ays-chart-countdown-hours"></span>' . __( 'Hours', 'chart-builder' ) . '</li>';
1964 + $content[] = '<li><span id="ays-chart-countdown-minutes"></span>' . __( 'Minutes', 'chart-builder' ) . '</li>';
1965 + $content[] = '<li><span id="ays-chart-countdown-seconds"></span>' . __( 'Seconds', 'chart-builder' ) . '</li>';
1125 1966 $content[] = '</ul>';
1126 1967 $content[] = '</div>';
1127 1968 $content[] = '<div id="ays-chart-countdown-content" class="emoji" style="display: none;">';
1128 1969 $content[] = '<span>🚀</span>';
@@ -1134,9 +1975,9 @@
1134 1975 $content[] = '</div>';
1135 1976 $content[] = '</div>';
1136 1977
1137 1978 $content[] = '<div class="ays-chart-dicount-christmas-wrap-box" style="width: 25%;">';
1138 - $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder" class="ays-chart-dicount-christmas-button-buy-now" target="_blank">' . __( 'BUY NOW!', CHART_BUILDER_NAME ) . '</a>';
1979 + $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder" class="ays-chart-dicount-christmas-button-buy-now" target="_blank">' . __( 'BUY NOW!', 'chart-builder' ) . '</a>';
1139 1980 $content[] = '</div>';
1140 1981 $content[] = '</div>';
1141 1982 $content[] = '</div>';
1142 1983
@@ -1142,9 +1983,9 @@
1142 1983
1143 1984 $content[] = '<div style="position: absolute;right: 0;bottom: 1px;" class="ays-chart-dismiss-buttons-container-for-form-christmas">';
1144 1985 $content[] = '<form method="POST">';
1145 1986 $content[] = '<div id="ays-chart-dismiss-buttons-content-christmas">';
1146 - $content[] = '<button class="btn btn-link ays-button-christmas" name="ays_chart_sale_btn" style="">' . __( 'Dismiss ad', CHART_BUILDER_NAME ) . '</button>';
1987 + $content[] = '<button class="btn btn-link ays-button-christmas" name="ays_chart_sale_btn" style="">' . __( 'Dismiss ad', 'chart-builder' ) . '</button>';
1147 1988 $content[] = '</div>';
1148 1989 $content[] = '</form>';
1149 1990 $content[] = '</div>';
1150 1991 $content[] = '</div>';
@@ -1150,9 +1991,9 @@
1150 1991 $content[] = '</div>';
1151 1992
1152 1993 $content = implode( '', $content );
1153 1994
1154 - echo $content;
1995 + echo wp_kses_post( html_entity_decode( $content, ENT_QUOTES, 'UTF-8' ) );
1155 1996 }
1156 1997 }
1157 1998
1158 1999 // Silver Bundle
@@ -1161,20 +2002,20 @@
1161 2002 $content = array();
1162 2003
1163 2004 $content[] = '<div id="ays-chart-dicount-month-main" class="notice notice-success is-dismissible ays_chart_dicount_info">';
1164 2005 $content[] = '<div id="ays-chart-dicount-month" class="ays_chart_dicount_month">';
1165 - $content[] = '<a href="https://ays-pro.com/silver-bundle" target="_blank" class="ays-chart-sale-banner-link"><img src="' . CHART_BUILDER_ADMIN_URL . '/images/silver_bundle_logo_box.png"></a>';
2006 + $content[] = '<a href="https://ays-pro.com/silver-bundle" target="_blank" class="ays-chart-sale-banner-link"><img src="' . esc_url(plugins_url('/images/silver_bundle_logo_box.png', dirname(__FILE__))) . '"></a>';// phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage
1166 2007
1167 2008 $content[] = '<div class="ays-chart-dicount-wrap-box">';
1168 2009
1169 2010 $content[] = '<strong style="font-weight: bold;">';
1170 - $content[] = __( "Limited Time <span style='color:#E85011;'>50%</span> SALE on <br><span><a href='https://ays-pro.com/silver-bundle' target='_blank' style='color:#E85011; text-decoration: underline;'>Silver Bundle</a></span> (Quiz + Chart + Form)!", CHART_BUILDER_NAME );
2011 + $content[] = __( "Limited Time <span style='color:#E85011;'>50%</span> SALE on <br><span><a href='https://ays-pro.com/silver-bundle' target='_blank' style='color:#E85011; text-decoration: underline;'>Silver Bundle</a></span> (Quiz + Chart + Form)!", 'chart-builder' );
1171 2012 $content[] = '</strong>';
1172 2013
1173 2014 $content[] = '<br>';
1174 2015
1175 2016 $content[] = '<strong>';
1176 - $content[] = __( "Hurry up! <a href='https://ays-pro.com/silver-bundle' target='_blank'>Check it out!</a>", CHART_BUILDER_NAME );
2017 + $content[] = __( "Hurry up! <a href='https://ays-pro.com/silver-bundle' target='_blank'>Check it out!</a>", 'chart-builder' );
1177 2018 $content[] = '</strong>';
1178 2019
1179 2020 $content[] = '<div style="position: absolute;right: 10px;bottom: 1px;" class="ays-chart-dismiss-buttons-container-for-form">';
1180 2021
@@ -1213,23 +2054,134 @@
1213 2054 $content[] = '</div>';
1214 2055
1215 2056 $content[] = '</div>';
1216 2057
1217 - $content[] = '<a href="https://ays-pro.com/silver-bundle" class="button button-primary ays-button" id="ays-button-top-buy-now" target="_blank" style="height: 32px; display: flex; align-items: center; font-weight: 500; " >' . __( 'Buy Now !', CHART_BUILDER_NAME ) . '</a>';
2058 + $content[] = '<a href="https://ays-pro.com/silver-bundle" class="button button-primary ays-button" id="ays-button-top-buy-now" target="_blank" style="height: 32px; display: flex; align-items: center; font-weight: 500; " >' . __( 'Buy Now !', 'chart-builder' ) . '</a>';
1218 2059 $content[] = '</div>';
1219 2060 $content[] = '</div>';
1220 2061
1221 2062 $content = implode( '', $content );
1222 - echo $content;
2063 + echo wp_kses_post( html_entity_decode( $content, ENT_QUOTES, 'UTF-8' ) );
1223 2064 }
1224 2065 }
1225 2066
1226 - // Black Friday 2024
1227 - public function ays_chart_black_friday_message_2024($ishmar){
2067 + //silver bundle
2068 + public function ays_chart_new_silver_bundle_message_2025($ishmar){
2069 + $content = array();
2070 +
2071 + $date = time() + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS);
2072 + $now_date = date('M d, Y H:i:s', $date);
2073 +
2074 + $chart_banner_date = strtotime( $this->ays_chart_update_banner_time() );
2075 +
2076 + $diff = $chart_banner_date - $date;
2077 +
2078 + $style_attr = '';
2079 + if( $diff < 0 ){
2080 + $style_attr = 'style="display:none;"';
2081 + }
2082 +
2083 + $chart_cta_button_link = esc_url( 'https://ays-pro.com/silver-bundle?utm_source=dashboard&utm_medium=chart-free&utm_campaign=silver-bundle-sale-banner-' . CHART_BUILDER_VERSION );
2084 +
2085 + $content[] = '<div id="ays-chart-new-silver-bundle-dicount-month-main" class="ays-chart-admin-notice notice notice-success is-dismissible ays_chart_dicount_info">';
2086 + $content[] = '<div id="ays-chart-dicount-month" class="ays_chart_dicount_month">';
2087 +
2088 + $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-dicount-wrap-text-box">';
2089 + $content[] = '<div>';
2090 + $content[] = '<div class="ays-chart-dicount-logo-box">';
2091 + $content[] = '<a href="' . $chart_cta_button_link . '" target="_blank" class="ays-chart-sale-banner-link"><img src="' . CHART_BUILDER_ADMIN_URL . '/images/mega_bundle_logo_box.webp"></a>';
2092 +
2093 + $content[] = '<div>';
2094 + $content[] = '<span class="ays-chart-new-silver-bundle-title">';
2095 + $content[] = sprintf(
2096 + /* translators: 1: opening link wrapper with <a> tag, 2: closing </a> tag */
2097 + __( '%1$s Silver Bundle %2$s (Quiz + Form + Chart)', 'chart-builder' ),
2098 + '<span style="display:inline-block; margin-right:5px;"><a href="' . esc_url( $chart_cta_button_link ) . '" target="_blank" rel="noopener noreferrer" style="color:#ffffff !important; text-decoration: underline;">',
2099 + '</a></span>'
2100 + );
2101 + $content[] = '</span>';
2102 + $content[] = '</br>';
2103 + $content[] = '<span class="ays-chart-new-silver-bundle-desc">';
2104 + $content[] = __( "30 Day Money Back Guarantee", 'chart-builder' );
2105 + $content[] = '</span>';
2106 + $content[] = '</div>';
2107 +
2108 + $content[] = '<div class="ays-chart-new-silver-bundle-title-icon-row" style="display: inline-block;">';
2109 + $content[] = '<img src="' . CHART_BUILDER_ADMIN_URL . '/images/ays-chart-banner-50.svg" class="ays-chart-new-silver-bundle-mobile-image-display-none" style="width: 70px;">';
2110 + $content[] = '</div>';
2111 +
2112 + $content[] = '</div>';
2113 +
2114 + $content[] = '<div class="ays-chart-new-silver-bundle-mobile-image-display-block display_none">';
2115 + $content[] = '<img src="' . CHART_BUILDER_ADMIN_URL . '/images/ays-chart-banner-50.svg" style="width: 70px;">';
2116 + $content[] = '</div>';
2117 + $content[] = '</div>';
2118 +
2119 + $content[] = '<div style="position: absolute;right: 10px;bottom: 1px;" class="ays-chart-dismiss-buttons-container-for-form">';
2120 +
2121 + $content[] = '<form action="" method="POST">';
2122 + $content[] = '<div id="ays-chart-dismiss-buttons-content">';
2123 + if( current_user_can( 'manage_options' ) ){
2124 + $content[] = '<button class="btn btn-link ays-button" name="ays_chart_sale_btn" style="height: 32px; margin-left: 0;padding-left: 0">'. __( "Dismiss ad", 'chart-builder' ) .'</button>';
2125 + $content[] = wp_nonce_field( CHART_BUILDER_NAME . '-sale-banner' , CHART_BUILDER_NAME . '-sale-banner' );
2126 + }
2127 + $content[] = '</div>';
2128 + $content[] = '</form>';
2129 +
2130 + $content[] = '</div>';
2131 +
2132 + $content[] = '</div>';
2133 +
2134 + $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-dicount-wrap-countdown-box">';
2135 +
2136 + $content[] = '<div id="ays-chart-maker-countdown-main-container">';
2137 + $content[] = '<div class="ays-chart-maker-countdown-container">';
2138 +
2139 + $content[] = '<div ' . $style_attr . ' id="ays-chart-countdown">';
2140 +
2141 + $content[] = '<ul>';
2142 +
2143 + $content[] = '<li><span id="ays-chart-countdown-days"></span></li>';
2144 + $content[] = '<li><span id="ays-chart-countdown-hours"></span></li>';
2145 + $content[] = '<li><span id="ays-chart-countdown-minutes"></span></li>';
2146 + $content[] = '<li><span id="ays-chart-countdown-seconds"></span></li>';
2147 + $content[] = '</ul>';
2148 + $content[] = '</div>';
2149 +
2150 + $content[] = '<div id="ays-chart-countdown-content" class="emoji">';
2151 + $content[] = '</div>';
2152 +
2153 + $content[] = '</div>';
2154 + $content[] = '</div>';
2155 +
2156 + $content[] = '</div>';
2157 +
2158 + $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-dicount-wrap-button-box">';
2159 + $content[] = '<a href="'. $chart_cta_button_link .'" class="button button-primary ays-button" id="ays-button-top-buy-now" target="_blank">' . __( 'Buy Now', 'chart-builder' ) . '</a>';
2160 + $content[] = '<span class="ays-chart-dicount-one-time-text">';
2161 + $content[] = __( "One-time payment", 'chart-builder' );
2162 + $content[] = '</span>';
2163 + $content[] = '</div>';
2164 + $content[] = '</div>';
2165 + $content[] = '</div>';
2166 +
2167 + // /* New Mega Bundle Banner Quiz | Start */
2168 + $content[] = '<style id="ays-chart-mega-bundle-styles-inline-css">';
2169 + $content[] = '
2170 + div#ays-chart-new-silver-bundle-dicount-month-main{border:0;background:#fff;border-radius:20px;box-shadow:unset;position:relative;z-index:1;min-height:80px}div#ays-chart-new-silver-bundle-dicount-month-main.ays_chart_dicount_info button{display:flex;align-items:center}div#ays-chart-new-silver-bundle-dicount-month-main div#ays-chart-dicount-month a.ays-chart-sale-banner-link:focus{outline:0;box-shadow:0}div#ays-chart-new-silver-bundle-dicount-month-main .btn-link{color:#007bff;background-color:transparent;display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem}div#ays-chart-new-silver-bundle-dicount-month-main.ays_chart_dicount_info{background-image:url("'. CHART_BUILDER_ADMIN_URL .'/images/chart-builder-banner-background-50.svg");background-position:center right;background-repeat:no-repeat;background-size:cover;background-color:#5551ff;padding:1px 38px 1px 12px}#ays-chart-new-silver-bundle-dicount-month-main .ays_chart_dicount_month{display:flex;align-items:center;justify-content:space-between;color:#fff}#ays-chart-new-silver-bundle-dicount-month-main .ays_chart_dicount_month img{width:60px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-sale-banner-link{display:flex;justify-content:center;align-items:center;width:60px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box{font-size:14px;padding:12px;text-align:center}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box{text-align:left;width:auto;display:flex;justify-content:space-around;align-items:flex-start}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-countdown-box{width:30%;display:flex;justify-content:center;align-items:center}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-button-box{width:20%;display:flex;justify-content:center;align-items:center;flex-direction:column}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box .ays-chart-dicount-logo-box{display:flex;justify-content:flex-start;align-items:center;gap:20px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box .ays-chart-new-silver-bundle-title{color:#fdfdfd;font-size:19px;font-style:normal;font-weight:600;line-height:normal}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box .ays-chart-new-silver-bundle-title-icon-row{display:inline-block}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box .ays-chart-new-silver-bundle-desc{display:inline-block;color:#fff;font-size:15px;font-style:normal;font-weight:400;line-height:normal;margin-top:10px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box strong{font-size:17px;font-weight:700;letter-spacing:.8px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-color{color:#971821}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-text-decoration{text-decoration:underline}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-buy-now-button-box{display:flex;justify-content:flex-end;align-items:center;width:30%}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box .ays-button,#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box .ays-buy-now-button{align-items:center;font-weight:500}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box .ays-buy-now-button{background:#971821;border-color:#fff;display:flex;justify-content:center;align-items:center;padding:5px 15px;font-size:16px;border-radius:5px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box .ays-buy-now-button:hover{background:#7d161d;border-color:#971821}#ays-chart-new-silver-bundle-dicount-month-main #ays-chart-dismiss-buttons-content{display:flex;justify-content:center}#ays-chart-new-silver-bundle-dicount-month-main #ays-chart-dismiss-buttons-content .ays-button{margin:0!important;font-size:13px;color:#fff}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-opacity-box{width:19%}#ays-chart-new-silver-bundle-dicount-month-main .ays-buy-now-opacity-button{padding:40px 15px;display:flex;justify-content:center;align-items:center;opacity:0}#ays-chart-maker-countdown-main-container .ays-chart-maker-countdown-container{margin:0 auto;text-align:center}#ays-chart-maker-countdown-main-container #ays-chart-countdown-headline{letter-spacing:.125rem;text-transform:uppercase;font-size:18px;font-weight:400;margin:0;padding:9px 0 4px;line-height:1.3}#ays-chart-maker-countdown-main-container li,#ays-chart-maker-countdown-main-container ul{margin:0}#ays-chart-maker-countdown-main-container li{display:inline-block;font-size:14px;list-style-type:none;padding:14px;text-transform:lowercase}#ays-chart-maker-countdown-main-container li span{display:flex;justify-content:center;align-items:center;font-size:22px;min-height:40px;min-width:40px;border-radius:4.273px;border:.534px solid #f4f4f4;background:#9896ed;color:#fff}#ays-chart-maker-countdown-main-container .emoji{display:none;padding:1rem}#ays-chart-maker-countdown-main-container .emoji span{font-size:30px;padding:0 .5rem}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box li{position:relative}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box li span:after{content:":";color:#fff;position:absolute;top:0;right:-5px;font-size:40px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box li span#ays-chart-countdown-seconds:after{content:unset}#ays-chart-new-silver-bundle-dicount-month-main #ays-button-top-buy-now{display:flex;align-items:center;border-radius:6.409px;background:#f66123;padding:12px 32px;color:#fff;font-size:15px;font-style:normal;line-height:normal;margin:0!important}div#ays-chart-new-silver-bundle-dicount-month-main button.notice-dismiss:before{color:#fff;content:"\f00d";font-family:fontawesome;font-size:22px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-new-silver-bundle-guaranteeicon{width:30px;margin-right:5px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-one-time-text{color:#fff;font-size:12px;font-style:normal;font-weight:600;line-height:normal}@media all and (max-width:768px){div#ays-chart-new-silver-bundle-dicount-month-main.ays_chart_dicount_info.notice{display:none!important;background-position:bottom right;background-repeat:no-repeat;background-size:cover;border-radius:32px}div#ays-chart-new-silver-bundle-dicount-month-main{padding-right:0}div#ays-chart-new-silver-bundle-dicount-month-main .ays_chart_dicount_month{display:flex;align-items:center;justify-content:space-between;align-content:center;flex-wrap:wrap;flex-direction:column;padding:10px 0}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box{width:100%!important;text-align:center}#ays-chart-maker-countdown-main-container #ays-chart-countdown-headline{font-size:15px;font-weight:600}#ays-chart-maker-countdown-main-container ul{font-weight:500}div#ays-chart-maker-countdown-main-container li{padding:10px}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-new-silver-bundle-mobile-image-display-none{display:none!important}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-new-silver-bundle-mobile-image-display-block{display:block!important;margin-top:5px}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box{width:100%!important;text-align:center;flex-direction:column;margin-top:20px;justify-content:center;align-items:center}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box li span:after{top:unset}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-countdown-box{width:100%;display:flex;justify-content:center;align-items:center}#ays-chart-new-silver-bundle-dicount-month-main .ays-button{margin:0 auto!important}#ays-chart-new-silver-bundle-dicount-month-main #ays-chart-dismiss-buttons-content .ays-button{padding-left:unset!important}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-buy-now-button-box{justify-content:center}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box .ays-buy-now-button{font-size:14px;padding:5px 10px}div#ays-chart-new-silver-bundle-dicount-month-main .ays-buy-now-opacity-button{display:none}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dismiss-buttons-container-for-form{position:static!important}.comparison .product img{width:70px}.ays-chart-features-wrap .comparison a.price-buy{padding:8px 5px;font-size:11px}}@media screen and (max-width:1350px) and (min-width:768px){div#ays-chart-new-silver-bundle-dicount-month-main.ays_chart_dicount_info.notice{background-position:bottom right;background-repeat:no-repeat;background-size:cover}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box strong{font-size:15px}#ays-chart-maker-countdown-main-container li{font-size:11px}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-opacity-box{display:none}}@media screen and (max-width:1680px) and (min-width:1551px){div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box{width:29%}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-countdown-box{width:30%}}@media screen and (max-width:1410px){#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-coupon-row{width:150px}}@media screen and (max-width:1550px) and (min-width:1400px){div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-countdown-box{width:35%}}@media screen and (max-width:1400px) and (min-width:1250px){div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-countdown-box{width:35%}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box{width:40%}}@media screen and (max-width:1274px){#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box .ays-chart-new-silver-bundle-title{font-size:15px}}@media screen and (max-width:1200px){#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-button-box{margin-bottom:16px}#ays-chart-maker-countdown-main-container ul{padding-left:0}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-coupon-row{width:120px;font-size:18px}#ays-chart-new-silver-bundle-dicount-month-main #ays-button-top-buy-now{padding:12px 20px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box{font-size:12px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box .ays-chart-new-silver-bundle-desc{font-size:13px}}@media screen and (max-width:1076px) and (min-width:769px){#ays-chart-maker-countdown-main-container li{padding:10px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-coupon-row{width:100px;font-size:16px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-button-box{margin-bottom:16px}#ays-chart-new-silver-bundle-dicount-month-main #ays-button-top-buy-now{padding:12px 15px}#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box{font-size:11px;padding:12px 0}}@media screen and (max-width:1250px) and (min-width:769px){div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-countdown-box{width:45%}div#ays-chart-new-silver-bundle-dicount-month-main .ays-chart-dicount-wrap-box.ays-chart-dicount-wrap-text-box{width:35%}}';
2171 + $content[] = '</style>';
2172 + // /* New Mega Bundle Banner Quiz | End */
2173 +
2174 + $content = implode( '', $content );
2175 + echo ($content);
2176 + }
2177 +
2178 + // Christmas Top Banner 2024
2179 + public function ays_chart_christmas_message_2024($ishmar){
1228 2180 if($ishmar == 0 ){
1229 2181 $content = array();
1230 2182
1231 - $content[] = '<div id="ays-chart-black-friday-bundle-dicount-month-main" class="notice notice-success is-dismissible ays_chart_dicount_info">';
2183 + $content[] = '<div id="ays-chart-christmas-top-bundle-dicount-month-main" class="notice notice-success is-dismissible ays_chart_dicount_info">';
1232 2184 $content[] = '<div id="ays-chart-dicount-month" class="ays_chart_dicount_month">';
1233 2185
1234 2186 $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-dicount-wrap-countdown-box">';
1235 2187
@@ -1238,24 +2190,24 @@
1238 2190
1239 2191 $content[] = '<div id="ays-chart-countdown">';
1240 2192
1241 2193 $content[] = '<div>';
1242 - $content[] = __( "Offer ends in:", CHART_BUILDER_NAME );
2194 + $content[] = __( "Offer ends in:", 'chart-builder' );
1243 2195 $content[] = '</div>';
1244 2196
1245 - $content[] = '<ul>';
1246 - $content[] = '<li><span id="ays-chart-countdown-days"></span>'. __( "Days", CHART_BUILDER_NAME ) .'</li>';
1247 - $content[] = '<li><span id="ays-chart-countdown-hours"></span>'. __( "Hours", CHART_BUILDER_NAME ) .'</li>';
1248 - $content[] = '<li><span id="ays-chart-countdown-minutes"></span>'. __( "Minutes", CHART_BUILDER_NAME ) .'</li>';
1249 - $content[] = '<li><span id="ays-chart-countdown-seconds"></span>'. __( "Seconds", CHART_BUILDER_NAME ) .'</li>';
2197 + $content[] = '<ul style="padding-left: 0;">';
2198 + $content[] = '<li><span id="ays-chart-countdown-days"></span>'. __( "Days", 'chart-builder' ) .'</li>';
2199 + $content[] = '<li><span id="ays-chart-countdown-hours"></span>'. __( "Hours", 'chart-builder' ) .'</li>';
2200 + $content[] = '<li><span id="ays-chart-countdown-minutes"></span>'. __( "Minutes", 'chart-builder' ) .'</li>';
2201 + $content[] = '<li><span id="ays-chart-countdown-seconds"></span>'. __( "Seconds", 'chart-builder' ) .'</li>';
1250 2202 $content[] = '</ul>';
1251 2203 $content[] = '</div>';
1252 2204
1253 2205 $content[] = '<div id="ays-chart-countdown-content" class="emoji">';
1254 - $content[] = '<span></span>';
1255 - $content[] = '<span></span>';
1256 - $content[] = '<span></span>';
1257 - $content[] = '<span></span>';
2206 + $content[] = '<span>🚀</span>';
2207 + $content[] = '<span>⌛</span>';
2208 + $content[] = '<span>🔥</span>';
2209 + $content[] = '<span>💣</span>';
1258 2210 $content[] = '</div>';
1259 2211
1260 2212 $content[] = '</div>';
1261 2213 $content[] = '</div>';
@@ -1264,17 +2216,24 @@
1264 2216
1265 2217 $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-dicount-wrap-text-box">';
1266 2218 $content[] = '<div>';
1267 2219
1268 - $content[] = '<span class="ays-chart-black-friday-bundle-title">';
1269 - $content[] = __( "<span><a href='https://ays-pro.com/wordpress/chart-builder?utm_source=chart-free-dashboard&utm_medium=chart-sale-banner&utm_campaign=black-friday-sale-banner' class='ays-chart-black-friday-bundle-title-link' target='_blank'>Black Friday Sale</a></span>", CHART_BUILDER_NAME );
2220 + $content[] = '<span class="ays-chart-christmas-top-bundle-title">';
2221 + $content[] = sprintf(
2222 + /* translators: %s is the Chart Builder plugin URL with version parameter. */
2223 + __(
2224 + "<span><a href='%s' class='ays-chart-christmas-top-bundle-title-link' target='_blank'>Christmas Sale</a></span>",
2225 + 'chart-builder'
2226 + ),
2227 + "https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=christmas-sale-banner" . CHART_BUILDER_VERSION
2228 + );
1270 2229 $content[] = '</span>';
1271 2230
1272 2231 $content[] = '</br>';
1273 2232
1274 - $content[] = '<span class="ays-chart-black-friday-bundle-desc">';
1275 - $content[] = '<a class="ays-chart-black-friday-bundle-desc" href="https://ays-pro.com/wordpress/chart-builder?utm_source=chart-free-dashboard&utm_medium=chart-sale-banner&utm_campaign=black-friday-sale-banner" class="ays-chart-black-friday-bundle-title-link" target="_blank">';
1276 - $content[] = __( "20% OFF", CHART_BUILDER_NAME );
2233 + $content[] = '<span class="ays-chart-christmas-top-bundle-desc">';
2234 + $content[] = '<a class="ays-chart-christmas-top-bundle-desc" href="https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=christmas-sale-banner'.CHART_BUILDER_VERSION.'" class="ays-chart-christmas-top-bundle-title-link" target="_blank">';
2235 + $content[] = __( "20% Extra OFF", 'chart-builder' );
1277 2236 $content[] = '</a>';
1278 2237 $content[] = '</span>';
1279 2238 $content[] = '</div>';
1280 2239
@@ -1282,9 +2241,9 @@
1282 2241
1283 2242 $content[] = '<form action="" method="POST">';
1284 2243 $content[] = '<div id="ays-chart-dismiss-buttons-content">';
1285 2244 if( current_user_can( 'manage_options' ) ){
1286 - $content[] = '<button class="btn btn-link ays-button" name="ays_chart_sale_btn" style="height: 32px; margin-left: 0;padding-left: 0">'. __( "Dismiss ad", CHART_BUILDER_NAME ) .'</button>';
2245 + $content[] = '<button class="btn btn-link ays-button" name="ays_chart_sale_btn" style="height: 32px; margin-left: 0;padding-left: 0">'. __( "Dismiss ad", 'chart-builder' ) .'</button>';
1287 2246 $content[] = wp_nonce_field( CHART_BUILDER_NAME . '-sale-banner' , CHART_BUILDER_NAME . '-sale-banner' );
1288 2247 }
1289 2248 $content[] = '</div>';
1290 2249 $content[] = '</form>';
@@ -1292,22 +2251,21 @@
1292 2251 $content[] = '</div>';
1293 2252
1294 2253 $content[] = '</div>';
1295 2254
1296 - $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-black-friday-bundle-coupon-text-box">';
1297 - $content[] = '<div class="ays-chart-black-friday-bundle-coupon-row">';
1298 - $content[] = 'bfdeal20off';
2255 + $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-christmas-top-bundle-coupon-text-box">';
2256 + $content[] = '<div class="ays-chart-christmas-top-bundle-coupon-row">';
2257 + $content[] = 'xmas20off';
1299 2258 $content[] = '</div>';
1300 -
1301 - $content[] = '<div class="ays-chart-black-friday-bundle-text-row">';
1302 - $content[] = __( '20% Extra Discount Coupon', CHART_BUILDER_NAME );
2259 + $content[] = '<div class="ays-chart-christmas-top-bundle-text-row">';
2260 + $content[] = __( '20% Extra Discount Coupon', 'chart-builder' );
1303 2261 $content[] = '</div>';
1304 2262 $content[] = '</div>';
1305 2263
1306 2264 $content[] = '<div class="ays-chart-dicount-wrap-box ays-chart-dicount-wrap-button-box">';
1307 - $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder?utm_source=chart-free-dashboard&utm_medium=chart-sale-banner&utm_campaign=black-friday-sale-banner" class="button button-primary ays-button" id="ays-button-top-buy-now" target="_blank">' . __( 'Get Your Deal', CHART_BUILDER_NAME ) . '</a>';
2265 + $content[] = '<a href="https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=christmas-sale-banner'.CHART_BUILDER_VERSION.'" class="button button-primary ays-button" id="ays-button-top-buy-now" target="_blank">' . __( 'Get Your Deal', 'chart-builder' ) . '</a>';
1308 2266 $content[] = '<span class="ays-chart-dicount-one-time-text">';
1309 - $content[] = __( "One-time payment", CHART_BUILDER_NAME );
2267 + $content[] = __( "One-time payment", 'chart-builder' );
1310 2268 $content[] = '</span>';
1311 2269 $content[] = '</div>';
1312 2270 $content[] = '</div>';
1313 2271 $content[] = '</div>';
@@ -1312,18 +2270,1242 @@
1312 2270 $content[] = '</div>';
1313 2271 $content[] = '</div>';
1314 2272
1315 2273 $content = implode( '', $content );
2274 + echo wp_kses_post( html_entity_decode( $content, ENT_QUOTES, 'UTF-8' ) );
2275 + }
2276 + }
2277 +
2278 + // Halloween Bundle 2025
2279 + public function ays_chart_new_halloween_bundle_message_2025($ishmar){
2280 + if($ishmar == 0 ){
2281 + $content = array();
2282 +
2283 + $date = time() + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS);
2284 + $now_date = date('M d, Y H:i:s', $date);
2285 +
2286 + $start_date = strtotime('2025-09-08');
2287 + $end_date = strtotime('2025-10-31');
2288 + $diff_end = $end_date - $date;
2289 +
2290 + $style_attr = '';
2291 + if( $diff_end < 0 ){
2292 + $style_attr = 'style="display:none;"';
2293 + }
2294 +
2295 + $ays_chart_cta_button_link = esc_url('https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=chart-halloween-banner-' . CHART_BUILDER_VERSION);
2296 +
2297 + $content[] = '
2298 + <div id="ays-chart-halloween-banner-2025-main" class="ays-chart-halloween-banner-2025-main ays_chart_dicount_info notice notice-success is-dismissible">
2299 + <div class="ays-chart-halloween-banner-2025-content">
2300 + <div class="ays-chart-halloween-banner-2025-left">
2301 + <div class="ays-chart-halloween-banner-2025-text">
2302 + <h2 class="ays-chart-halloween-banner-2025-title">Boo! Grab Your <a href="'. $ays_chart_cta_button_link .'" class="" target="_blank">Halloween Deal</a> <br/> Before It Vanishes!</h2>
2303 + <p class="ays-chart-halloween-banner-2025-subtitle">Don’t get spooked by missing out!<br/> Get 25% discount using the coupon code while the magic lasts!</p>
2304 + </div>
2305 + </div>
2306 +
2307 + <div class="ays-chart-halloween-banner-2025-center">';
2308 +
2309 + $content[] = '<div id="ays-chart-halloween-banner-2025-countdown" class="ays-chart-halloween-banner-2025-countdown" ' . $style_attr . '>';
2310 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-timer">';
2311 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-item">';
2312 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-value" id="ays-chart-halloween-banner-2025-days">00</div>';
2313 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-label">' . __('days', 'chart-builder') . '</div>';
2314 + $content[] = '</div>';
2315 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-separator">:</div>';
2316 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-item">';
2317 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-value" id="ays-chart-halloween-banner-2025-hours">00</div>';
2318 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-label">' . __('hours', 'chart-builder') . '</div>';
2319 + $content[] = '</div>';
2320 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-separator">:</div>';
2321 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-item">';
2322 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-value" id="ays-chart-halloween-banner-2025-minutes">00</div>';
2323 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-label">' . __('minutes', 'chart-builder') . '</div>';
2324 + $content[] = '</div>';
2325 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-separator">:</div>';
2326 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-item">';
2327 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-value" id="ays-chart-halloween-banner-2025-seconds">00</div>';
2328 + $content[] = '<div class="ays-chart-halloween-banner-2025-countdown-label">' . __('seconds', 'chart-builder') . '</div>';
2329 + $content[] = '</div>';
2330 + $content[] = '</div>';
2331 + $content[] = '</div>';
2332 +
2333 + $content[] = '</div>
2334 +
2335 + <div class="ays-chart-halloween-banner-2025-right">
2336 + <div class="ays-chart-halloween-banner-2025-pumpkin">
2337 + <svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
2338 + <g clip-path="url(#clip0_177_40)">
2339 + <path d="M32.664 8.519C29.364 5.134 23.42 4.75 18 4.75C12.58 4.75 6.636 5.134 3.336 8.519C0.582 11.344 0 15.751 0 19.791C0 25.054 1.982 31.102 6.357 34.035C9.364 36.051 13.95 35.871 18 35.871C22.05 35.871 26.636 36.051 29.643 34.035C34.018 31.101 36 25.054 36 19.791C36 15.751 35.418 11.344 32.664 8.519Z" fill="#F4900C"/>
2340 + <path d="M20.783 5.44401C20.852 5.86401 20.561 6.20801 20.136 6.20801H15.685C15.259 6.20801 14.968 5.86401 15.038 5.44401L15.783 0.972008C15.853 0.551008 16.259 0.208008 16.685 0.208008H19.136C19.562 0.208008 19.968 0.552008 20.037 0.972008L20.783 5.44401Z" fill="#3F7123"/>
2341 + <path d="M20.6541 21.159L19.0561 18.563C18.7651 18.021 18.3831 17.75 17.9991 17.746C17.6161 17.75 17.2331 18.021 16.9421 18.563L15.3441 21.159C14.7571 22.252 16.2171 22.875 17.9981 22.875C19.7791 22.875 21.2411 22.251 20.6541 21.159ZM30.1621 24.351C30.1171 24.276 30.0361 24.23 29.9481 24.23H29.1071C29.0391 24.23 28.9731 24.258 28.9261 24.307L26.6951 26.641L23.9971 24.472C23.9461 24.431 23.8801 24.414 23.8121 24.419C23.7461 24.426 23.6851 24.46 23.6441 24.513L21.2361 27.575L18.1821 24.309C18.1691 24.295 18.1491 24.292 18.1341 24.281C18.1191 24.271 18.1091 24.254 18.0911 24.247C18.0851 24.245 18.0781 24.247 18.0721 24.245C18.0481 24.238 18.0251 24.24 18.0001 24.24C17.9751 24.24 17.9521 24.238 17.9281 24.246C17.9221 24.248 17.9151 24.245 17.9081 24.248C17.8901 24.255 17.8811 24.272 17.8651 24.282C17.8491 24.292 17.8301 24.295 17.8171 24.309L14.7641 27.575L12.3551 24.513C12.3141 24.46 12.2531 24.426 12.1871 24.419C12.1211 24.413 12.0541 24.431 12.0021 24.472L9.30411 26.641L7.07411 24.307C7.02711 24.258 6.96211 24.23 6.89311 24.23H6.05211C5.96511 24.23 5.88311 24.276 5.83811 24.351C5.79311 24.426 5.79011 24.519 5.83111 24.596L8.58511 29.815C8.61911 29.879 8.6781 29.925 8.7491 29.942C8.8201 29.959 8.8941 29.944 8.9521 29.902L10.9861 28.444L13.9901 32.077C14.0331 32.13 14.0961 32.162 14.1641 32.167L14.1831 32.168C14.2451 32.168 14.3041 32.146 14.3501 32.105L18.0001 28.836L21.6501 32.104C21.6961 32.145 21.7551 32.167 21.8171 32.167L21.8361 32.166C21.9041 32.161 21.9671 32.129 22.0101 32.076L25.0151 28.443L27.0491 29.901C27.1091 29.944 27.1821 29.961 27.2521 29.941C27.3221 29.924 27.3821 29.879 27.4151 29.815L30.1701 24.596C30.2101 24.519 30.2081 24.426 30.1621 24.351ZM27.9761 15.421C28.1051 17.548 27.1921 19.227 24.7711 19.374C22.3511 19.52 21.2421 17.963 21.1131 15.837C20.9841 13.711 22.3451 10.717 24.2401 10.603C26.1361 10.487 27.8481 13.294 27.9761 15.421ZM8.02411 15.421C7.89511 17.548 8.80811 19.227 11.2291 19.374C13.6491 19.52 14.7581 17.963 14.8871 15.837C15.0161 13.711 13.6551 10.717 11.7601 10.603C9.86511 10.489 8.15211 13.294 8.02411 15.421Z" fill="#642116"/>
2342 + </g>
2343 + <defs>
2344 + <clipPath id="clip0_177_40">
2345 + <rect width="36" height="36" fill="white"/>
2346 + </clipPath>
2347 + </defs>
2348 + </svg>
2349 + </div>
2350 +
2351 +
2352 +
2353 + <div class="ays-chart-halloween-banner-2025-discount-section">
2354 + <div class="ays-chart-halloween-banner-2025-discount">25% OFF</div>
2355 + <div class="ays-chart-halloween-banner-2025-coupon-wrapper">
2356 + <div class="ays-chart-halloween-banner-2025-coupon-box" onclick="aysChartHalloweenCopyToClipboard(\'HALLOWEEN25\')" title="Click to copy">
2357 + <span class="ays-chart-halloween-banner-2025-coupon-text">HALLOWEEN25</span>
2358 + <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="ays-chart-halloween-banner-2025-copy-icon">
2359 + <path d="M13.5 2.5H6.5C5.67 2.5 5 3.17 5 4V10C5 10.83 5.67 11.5 6.5 11.5H13.5C14.33 11.5 15 10.83 15 10V4C15 3.17 14.33 2.5 13.5 2.5ZM13.5 10H6.5V4H13.5V10ZM2.5 6.5V12.5C2.5 13.33 3.17 14 4 14H10V12.5H4V6.5H2.5Z" fill="white"/>
2360 + </svg>
2361 + </div>
2362 + </div>
2363 + <a href="'. $ays_chart_cta_button_link .'" class="ays-chart-halloween-banner-2025-upgrade" target="_blank">Upgrade Now</a>
2364 + </div>';
2365 +
2366 + if( current_user_can( 'manage_options' ) ){
2367 + $content[] = '<div id="ays-chart-dismiss-buttons-content">';
2368 + $content[] = '<form action="" method="POST" style="position: absolute; bottom: -5px; right: 0; color: #fff;">';
2369 + $content[] = '<button class="btn btn-link ays-button" name="ays_chart_sale_btn" style="color: darkgrey; font-size: 11px;">'. __( "Dismiss ad", 'chart-builder' ) .'</button>';
2370 + $content[] = wp_nonce_field( CHART_BUILDER_NAME . '-sale-banner' , CHART_BUILDER_NAME . '-sale-banner' );
2371 + $content[] = '</form>';
2372 + $content[] = '</div>';
2373 + }
2374 +
2375 + $content[] = '
2376 + </div>
2377 + </div>
2378 + </div>';
2379 +
2380 + $content[] = '<style id="ays-chart-progress-banner-styles-inline-css">';
2381 + $content[] = '
2382 + .ays-chart-halloween-banner-2025-main {
2383 + background: linear-gradient(135deg, #1A0F2E 100%, #2D1B4E 0%);
2384 + background-image: url("' . esc_attr( CHART_BUILDER_ADMIN_URL ) . '/images/halloween-banner-background-image-remove.png"), linear-gradient(135deg, #2D1B4E 0%, #1A0F2E 100%);
2385 + background-position: left center, center;
2386 + background-repeat: no-repeat, no-repeat;
2387 + background-size: auto 100%, cover;
2388 + padding: 20px 30px 20px 130px;
2389 + border-radius: 12px;
2390 + color: white;
2391 + margin: 20px 0;
2392 + border: 0;
2393 + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
2394 + overflow: hidden;
2395 + }
2396 +
2397 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-content {
2398 + display: flex;
2399 + align-items: center;
2400 + justify-content: space-between;
2401 + gap: 30px;
2402 + }
2403 +
2404 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-left {
2405 + display: flex;
2406 + align-items: center;
2407 + gap: 20px;
2408 + }
2409 +
2410 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-center {
2411 + display: flex;
2412 + align-items: center;
2413 + justify-content: center;
2414 + flex: 1;
2415 + max-width: 350px;
2416 + }
2417 +
2418 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-right {
2419 + display: flex;
2420 + align-items: center;
2421 + gap: 15px;
2422 + flex-shrink: 0;
2423 + }
2424 +
2425 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-icon {
2426 + flex-shrink: 0;
2427 + }
2428 +
2429 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-pumpkin svg {
2430 + display: inline !important;
2431 + border: none !important;
2432 + box-shadow: none !important;
2433 + height: 1em !important;
2434 + width: 1em !important;
2435 + margin: 0 0.07em !important;
2436 + vertical-align: -0.1em !important;
2437 + background: none !important;
2438 + padding: 0 !important;
2439 + }
2440 +
2441 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-orb {
2442 + width: 80px;
2443 + height: 80px;
2444 + background: linear-gradient(135deg, #8B5CF6 0%, #6D28D9 100%);
2445 + border-radius: 50%;
2446 + display: flex;
2447 + align-items: center;
2448 + justify-content: center;
2449 + box-shadow: 0 0 30px rgba(139, 92, 246, 0.6);
2450 + border: 3px solid rgba(168, 85, 247, 0.4);
2451 + }
2452 +
2453 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-question {
2454 + font-size: 48px;
2455 + font-weight: 700;
2456 + color: #E9D5FF;
2457 + }
2458 +
2459 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-bat {
2460 + font-size: 20px;
2461 + opacity: 0.8;
2462 + }
2463 +
2464 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-bat-1 {
2465 + margin-left: -100px;
2466 + margin-top: -40px;
2467 + }
2468 +
2469 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-bat-2 {
2470 + margin-left: -110px;
2471 + margin-top: 35px;
2472 + }
2473 +
2474 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-sparkle {
2475 + font-size: 12px;
2476 + opacity: 0.7;
2477 + }
2478 +
2479 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-sparkle-1 {
2480 + margin-left: -95px;
2481 + margin-top: -60px;
2482 + }
2483 +
2484 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-sparkle-2 {
2485 + margin-left: -70px;
2486 + margin-top: -15px;
2487 + }
2488 +
2489 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-sparkle-3 {
2490 + margin-left: -120px;
2491 + margin-top: 10px;
2492 + }
2493 +
2494 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-text {
2495 + flex: 1;
2496 + }
2497 +
2498 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-title {
2499 + font-size: 24px;
2500 + font-weight: 700;
2501 + margin: 0 0 8px 0;
2502 + line-height: 1.2;
2503 + color: #fff;
2504 + text-transform: uppercase;
2505 + letter-spacing: 1px;
2506 + }
2507 +
2508 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-title a {
2509 + color: #FB923C;
2510 + text-decoration: underline;
2511 + }
2512 +
2513 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-subtitle {
2514 + font-size: 16px;
2515 + margin: 0;
2516 + opacity: 0.9;
2517 + font-weight: 400;
2518 + color: #E9D5FF;
2519 + }
2520 +
2521 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-description {
2522 + font-size: 14px;
2523 + margin: 0;
2524 + opacity: 0.85;
2525 + line-height: 1.5;
2526 + color: #D8B4FE;
2527 + }
2528 +
2529 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-pumpkin {
2530 + font-size: 64px;
2531 + filter: drop-shadow(0 0 20px rgba(251, 146, 60, 0.8));
2532 + flex-shrink: 0;
2533 + }
2534 +
2535 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-discount-section {
2536 + display: flex;
2537 + flex-direction: column;
2538 + align-items: center;
2539 + gap: 10px;
2540 + }
2541 +
2542 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-discount {
2543 + font-size: 36px;
2544 + font-weight: 700;
2545 + color: #FB923C;
2546 + text-shadow: 0 0 20px rgba(251, 146, 60, 0.6);
2547 + margin: 0;
2548 + line-height: 1;
2549 + }
2550 +
2551 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-coupon-wrapper {
2552 + margin-bottom: 5px;
2553 + }
2554 +
2555 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-coupon-box {
2556 + border: 2px dashed rgba(255, 255, 255, 0.4);
2557 + padding: 6px 12px;
2558 + border-radius: 6px;
2559 + background: rgba(255, 255, 255, 0.1);
2560 + cursor: pointer;
2561 + transition: all 0.3s ease;
2562 + display: flex;
2563 + align-items: center;
2564 + gap: 6px;
2565 + backdrop-filter: blur(10px);
2566 + }
2567 +
2568 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-coupon-box:hover {
2569 + background: rgba(255, 255, 255, 0.2);
2570 + border-color: rgba(255, 255, 255, 0.6);
2571 + transform: translateY(-1px);
2572 + }
2573 +
2574 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-coupon-text {
2575 + font-size: 14px;
2576 + font-weight: 700;
2577 + letter-spacing: 1px;
2578 + color: #fff;
2579 + font-family: monospace;
2580 + }
2581 +
2582 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-copy-icon {
2583 + opacity: 0.8;
2584 + transition: opacity 0.3s ease;
2585 + }
2586 +
2587 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-coupon-box:hover .ays-chart-halloween-banner-2025-copy-icon {
2588 + opacity: 1;
2589 + }
2590 +
2591 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-upgrade {
2592 + background: linear-gradient(135deg, #FB923C 0%, #F97316 100%);
2593 + color: white;
2594 + border: none;
2595 + padding: 12px 28px;
2596 + border-radius: 8px;
2597 + font-size: 16px;
2598 + font-weight: 600;
2599 + cursor: pointer;
2600 + transition: all 0.3s ease;
2601 + box-shadow: 0 4px 16px rgba(251, 146, 60, 0.5);
2602 + text-decoration: none;
2603 + display: inline-flex;
2604 + align-items: center;
2605 + text-align: center;
2606 + }
2607 +
2608 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-upgrade:hover {
2609 + transform: translateY(-2px);
2610 + box-shadow: 0 6px 20px rgba(251, 146, 60, 0.7);
2611 + text-decoration: none;
2612 + color: white;
2613 + }
2614 +
2615 + .ays-chart-halloween-banner-2025-main .notice-dismiss:before {
2616 + color: #fff;
2617 + }
2618 +
2619 + .ays-chart-halloween-banner-2025-copy-notification {
2620 + position: fixed;
2621 + top: 50%;
2622 + left: 50%;
2623 + transform: translate(-50%, -50%);
2624 + background: rgba(0, 0, 0, 0.8);
2625 + color: white;
2626 + padding: 12px 24px;
2627 + border-radius: 8px;
2628 + font-size: 14px;
2629 + z-index: 10000;
2630 + opacity: 0;
2631 + transition: opacity 0.3s ease;
2632 + }
2633 +
2634 + .ays-chart-halloween-banner-2025-copy-notification.show {
2635 + opacity: 1;
2636 + }
2637 +
2638 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-countdown-timer {
2639 + display: flex;
2640 + align-items: center;
2641 + justify-content: center;
2642 + gap: 8px;
2643 + }
2644 +
2645 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-countdown-item {
2646 + background: rgba(255, 255, 255, 0.15);
2647 + border-radius: 8px;
2648 + padding: 8px 12px;
2649 + min-width: 60px;
2650 + backdrop-filter: blur(10px);
2651 + }
2652 +
2653 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-countdown-value {
2654 + font-size: 24px;
2655 + font-weight: 700;
2656 + line-height: 1;
2657 + margin-bottom: 4px;
2658 + color: #fff;
2659 + text-align: center;
2660 + }
2661 +
2662 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-countdown-label {
2663 + font-size: 11px;
2664 + opacity: 0.8;
2665 + text-transform: lowercase;
2666 + text-align: center;
2667 + }
2668 +
2669 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-countdown-separator {
2670 + font-size: 24px;
2671 + font-weight: 700;
2672 + opacity: 0.6;
2673 + margin: 0 4px;
2674 + }
2675 +
2676 + @media (min-width: 1200px) {
2677 + .ays-chart-halloween-banner-2025-main .wp-core-ui .notice.is-dismissible {
2678 + padding-right: 60px;
2679 + }
2680 + }
2681 +
2682 + @media (max-width: 1200px) {
2683 +
2684 + div.ays-chart-halloween-banner-2025-main {
2685 + padding: 20px 30px;
2686 + }
2687 +
2688 + div.ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-pumpkin {
2689 + display: none;
2690 + }
2691 +
2692 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-subtitle,
2693 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-title {
2694 + text-align: center;
2695 + }
2696 +
2697 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-content {
2698 + flex-wrap: wrap;
2699 + gap: 20px;
2700 + }
2701 +
2702 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-left {
2703 + width: 100%;
2704 + }
2705 +
2706 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-center {
2707 + width: 100%;
2708 + max-width: 100%;
2709 + text-align: center;
2710 + }
2711 +
2712 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-right {
2713 + width: 100%;
2714 + justify-content: center;
2715 + }
2716 + }
2717 +
2718 + @media (max-width: 786px) {
2719 + #ays-chart-halloween-banner-2025-main {
2720 + display: none !important;
2721 + }
2722 + }
2723 +
2724 + @media (max-width: 768px) {
2725 + .ays-chart-halloween-banner-2025-main {
2726 + padding: 15px 20px;
2727 + margin: 15px 0;
2728 + }
2729 +
2730 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-title {
2731 + font-size: 20px;
2732 + }
2733 +
2734 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-subtitle {
2735 + font-size: 14px;
2736 + }
2737 +
2738 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-description {
2739 + font-size: 13px;
2740 + }
2741 +
2742 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-pumpkin {
2743 + font-size: 48px;
2744 + }
2745 +
2746 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-discount {
2747 + font-size: 28px;
2748 + }
2749 +
2750 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-upgrade {
2751 + padding: 10px 20px;
2752 + font-size: 14px;
2753 + }
2754 + }
2755 +
2756 + @media (max-width: 480px) {
2757 + .ays-chart-halloween-banner-2025-main {
2758 + padding: 12px 15px;
2759 + }
2760 +
2761 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-orb {
2762 + width: 60px;
2763 + height: 60px;
2764 + }
2765 +
2766 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-question {
2767 + font-size: 36px;
2768 + }
2769 +
2770 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-title {
2771 + font-size: 18px;
2772 + }
2773 +
2774 + .ays-chart-halloween-banner-2025-main .ays-chart-halloween-banner-2025-coupon-text {
2775 + font-size: 12px;
2776 + }
2777 + }
2778 + ';
2779 +
2780 + $content[] = '</style>';
2781 +
2782 + $content[] = '<script>';
2783 + $content[] = "
2784 + function aysChartHalloweenCopyToClipboard(text) {
2785 + // Create a temporary textarea element
2786 + var textarea = document.createElement('textarea');
2787 + textarea.value = text;
2788 + textarea.style.position = 'fixed';
2789 + textarea.style.opacity = '0';
2790 + document.body.appendChild(textarea);
2791 +
2792 + // Select and copy the text
2793 + textarea.select();
2794 + textarea.setSelectionRange(0, 99999); // For mobile devices
2795 +
2796 + try {
2797 + document.execCommand('copy');
2798 + aysChartHalloweenShowCopyNotification('Coupon code copied!');
2799 + } catch (err) {
2800 + console.error('Failed to copy text: ', err);
2801 + }
2802 +
2803 + // Remove the temporary textarea
2804 + document.body.removeChild(textarea);
2805 + }
2806 +
2807 + function aysChartHalloweenShowCopyNotification(message) {
2808 + // Check if notification already exists
2809 + var existingNotification = document.querySelector('.ays-chart-halloween-banner-2025-copy-notification');
2810 + if (existingNotification) {
2811 + document.body.removeChild(existingNotification);
2812 + }
2813 +
2814 + // Create notification element
2815 + var notification = document.createElement('div');
2816 + notification.className = 'ays-chart-halloween-banner-2025-copy-notification';
2817 + notification.textContent = message;
2818 + document.body.appendChild(notification);
2819 +
2820 + // Show notification with animation
2821 + setTimeout(function() {
2822 + notification.classList.add('show');
2823 + }, 10);
2824 +
2825 + // Hide and remove notification after 2 seconds
2826 + setTimeout(function() {
2827 + notification.classList.remove('show');
2828 + setTimeout(function() {
2829 + if (notification.parentNode) {
2830 + document.body.removeChild(notification);
2831 + }
2832 + }, 300);
2833 + }, 2000);
2834 + }
2835 +
2836 + (function() {
2837 + var endDate = new Date('". date('Y-m-d H:i:s', $end_date) ."').getTime();
2838 +
2839 + function updateCountdown() {
2840 + var now = new Date().getTime();
2841 + var distance = endDate - now;
2842 +
2843 + if (distance < 0) {
2844 + clearInterval(updateCountdown);
2845 + document.getElementById('ays-chart-halloween-banner-2025-progress-banner-countdown').style.display = 'none';
2846 + return;
2847 + }
2848 +
2849 + var days = Math.floor(distance / (1000 * 60 * 60 * 24));
2850 + var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
2851 + var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
2852 + var seconds = Math.floor((distance % (1000 * 60)) / 1000);
2853 +
2854 + function padZero(num) {
2855 + return num < 10 ? '0' + num : num;
2856 + }
2857 +
2858 + document.getElementById('ays-chart-halloween-banner-2025-days').textContent = padZero(days);
2859 + document.getElementById('ays-chart-halloween-banner-2025-hours').textContent = padZero(hours);
2860 + document.getElementById('ays-chart-halloween-banner-2025-minutes').textContent = padZero(minutes);
2861 + document.getElementById('ays-chart-halloween-banner-2025-seconds').textContent = padZero(seconds);
2862 + }
2863 +
2864 + updateCountdown();
2865 + setInterval(updateCountdown, 1000);
2866 + })()";
2867 + $content[] = '</script>';
2868 +
2869 + $content = implode( '', $content );
2870 + echo ($content);
2871 + }
2872 + }
2873 +
2874 + // Black Friday
2875 + public static function ays_chart_black_friday_message($ishmar){
2876 + if($ishmar == 0 ){
2877 + $content = array();
2878 +
2879 + $ays_chart_cta_button_link = esc_url('https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=black-friday-sale-banner-' . CHART_BUILDER_VERSION);
2880 +
2881 + $content[] = '<div id="ays-chart-dicount-black-friday-month-main" class="ays-chart notice notice-success is-dismissible ays_chart_dicount_info">';
2882 + $content[] = '<div id="ays-chart-dicount-black-friday-month" class="ays_chart_dicount_month">';
2883 + $content[] = '<div class="ays-chart-dicount-black-friday-box">';
2884 + $content[] = '<div class="ays-chart-dicount-black-friday-wrap-box ays-chart-dicount-black-friday-wrap-box-80" style="width: 70%;">';
2885 + $content[] = '<div class="">';
2886 + $content[] = '<div class="ays-chart-dicount-black-friday-title-row" >' . __( 'Coupon Code', "ays-popup-box" ) .' ' . '</div>';
2887 + $content[] = '<div class="ays-chart-dicount-black-friday-title-row">';
2888 +
2889 + $content[] = '
2890 + <span class="ays-chart-dicount-black-friday-banner-2025-coupon-wrapper">
2891 + <span class="ays-chart-dicount-black-friday-banner-2025-coupon-box" onclick="aysChartHalloweenCopyToClipboard(\'FREE2PROBF\')" title="Click to copy">
2892 + <span class="ays-chart-dicount-black-friday-banner-2025-coupon-text">FREE2PROBF</span>
2893 + <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="ays-chart-dicount-black-friday-banner-2025-copy-icon">
2894 + <path d="M13.5 2.5H6.5C5.67 2.5 5 3.17 5 4V10C5 10.83 5.67 11.5 6.5 11.5H13.5C14.33 11.5 15 10.83 15 10V4C15 3.17 14.33 2.5 13.5 2.5ZM13.5 10H6.5V4H13.5V10ZM2.5 6.5V12.5C2.5 13.33 3.17 14 4 14H10V12.5H4V6.5H2.5Z" fill="white"/>
2895 + </svg>
2896 + </span>
2897 + </span>';
2898 + $content[] = '</div> ';
2899 + $content[] = '</div>';
2900 +
2901 + $content[] = '</div>';
2902 +
2903 + $content[] = '<div class="ays-chart-dicount-black-friday-wrap-box ays-chart-dicount-black-friday-wrap-text-box">';
2904 + $content[] = '<div class="ays-chart-dicount-black-friday-text-row">' . '30% off' . '</div>';
2905 + $content[] = '</div>';
2906 +
2907 + $content[] = '<div class="ays-chart-dicount-black-friday-wrap-box" style="width: 25%;">';
2908 + $content[] = '<div id="ays-chart-countdown-main-container">';
2909 + $content[] = '<div class="ays-chart-countdown-container">';
2910 + $content[] = '<div id="ays-chart-countdown" style="display: block;">';
2911 + $content[] = '<ul>';
2912 + $content[] = '<li><span id="ays-chart-countdown-days"></span>' . __( 'Days', "ays-popup-box" ) . '</li>';
2913 + $content[] = '<li><span id="ays-chart-countdown-hours"></span>' . __( 'Hours', "ays-popup-box" ) . '</li>';
2914 + $content[] = '<li><span id="ays-chart-countdown-minutes"></span>' . __( 'Minutes', "ays-popup-box" ) . '</li>';
2915 + $content[] = '<li><span id="ays-chart-countdown-seconds"></span>' . __( 'Seconds', "ays-popup-box" ) . '</li>';
2916 + $content[] = '</ul>';
2917 + $content[] = '</div>';
2918 + $content[] = '<div id="ays-chart-countdown-content" class="emoji" style="display: none;">';
2919 + $content[] = '<span></span>';
2920 + $content[] = '<span></span>';
2921 + $content[] = '<span></span>';
2922 + $content[] = '<span></span>';
2923 + $content[] = '</div>';
2924 + $content[] = '</div>';
2925 + $content[] = '</div>';
2926 + $content[] = '</div>';
2927 +
2928 + $content[] = '<div class="ays-chart-dicount-black-friday-wrap-box" style="width: 25%;">';
2929 + $content[] = '<a href="'. $ays_chart_cta_button_link .'" class="ays-chart-dicount-black-friday-button-buy-now" target="_blank">' . __( 'Get Your Deal', "ays-popup-box" ) . '</a>';
2930 + $content[] = '</div>';
2931 + $content[] = '</div>';
2932 + $content[] = '</div>';
2933 +
2934 + $content[] = '<div style="position: absolute;right: 0;bottom: 1px;" class="ays-chart-dismiss-buttons-container-for-form-black-friday">';
2935 + $content[] = '<form action="" method="POST">';
2936 + $content[] = '<div id="ays-chart-dismiss-buttons-content">';
2937 + if( current_user_can( 'manage_options' ) ){
2938 + $content[] = '<button class="btn btn-link ays-button" name="ays_chart_sale_btn" style="height: 32px; margin-left: 0;padding-left: 0">Dismiss ad</button>';
2939 + $content[] = wp_nonce_field( CHART_BUILDER_NAME . '-sale-banner' , CHART_BUILDER_NAME . '-sale-banner' );
2940 + }
2941 + $content[] = '</div>';
2942 + $content[] = '</form>';
2943 + $content[] = '</div>';
2944 + $content[] = '</div>';
2945 +
2946 + $content[] = '<script>';
2947 + $content[] = "
2948 + function aysChartHalloweenCopyToClipboard(text) {
2949 + // Create a temporary textarea element
2950 + var textarea = document.createElement('textarea');
2951 + textarea.value = text;
2952 + textarea.style.position = 'fixed';
2953 + textarea.style.opacity = '0';
2954 + document.body.appendChild(textarea);
2955 +
2956 + // Select and copy the text
2957 + textarea.select();
2958 + textarea.setSelectionRange(0, 99999); // For mobile devices
2959 +
2960 + try {
2961 + document.execCommand('copy');
2962 + aysChartHalloweenShowCopyNotification('Coupon code copied!');
2963 + } catch (err) {
2964 + console.error('Failed to copy text: ', err);
2965 + }
2966 +
2967 + // Remove the temporary textarea
2968 + document.body.removeChild(textarea);
2969 + }
2970 +
2971 + function aysChartHalloweenShowCopyNotification(message) {
2972 + // Check if notification already exists
2973 + var existingNotification = document.querySelector('.ays-chart-discount-black-friday-banner-2025-copy-notification');
2974 + if (existingNotification) {
2975 + document.body.removeChild(existingNotification);
2976 + }
2977 +
2978 + // Create notification element
2979 + var notification = document.createElement('div');
2980 + notification.className = 'ays-chart-discount-black-friday-banner-2025-copy-notification';
2981 + notification.textContent = message;
2982 + document.body.appendChild(notification);
2983 +
2984 + // Show notification with animation
2985 + setTimeout(function() {
2986 + notification.classList.add('show');
2987 + }, 10);
2988 +
2989 + // Hide and remove notification after 2 seconds
2990 + setTimeout(function() {
2991 + notification.classList.remove('show');
2992 + setTimeout(function() {
2993 + if (notification.parentNode) {
2994 + document.body.removeChild(notification);
2995 + }
2996 + }, 300);
2997 + }, 2000);
2998 + }";
2999 + $content[] = '</script>';
3000 +
3001 + $content[] = '<style>';
3002 + $content[] = '
3003 + /* Black friday banner start */
3004 + div#ays-chart-dicount-black-friday-month-main *{color:#fff}div#ays-chart-dicount-black-friday-month-main div#ays-chart-dicount-black-friday-month a.ays-chart-sale-banner-link:focus{outline:0;box-shadow:0}div#ays-chart-dicount-black-friday-month-main .btn-link{background-color:transparent;display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:12px;line-height:1.5;border-radius:.25rem;color:rgba(255,255,255,.6)}div#ays-chart-dicount-black-friday-month-main.ays_chart_dicount_info{background-image:linear-gradient(45deg,#1e101d,#c60af4);padding:unset;border-left:0}#ays-chart-dicount-black-friday-month-main .ays_chart_dicount_month{position:relative;background-image:url("'. esc_attr(CHART_BUILDER_ADMIN_URL) .'/images/black-friday-plugins-background-image.webp");background-position:center right;background-repeat:no-repeat;background-size:100% 100%}#ays-chart-dicount-black-friday-month-main .ays_chart_dicount_month img{width:80px}#ays-chart-dicount-black-friday-month-main .ays-chart-sale-banner-link{display:flex;justify-content:center;align-items:center;width:200px}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-button-sale{font-style:normal;font-weight:600;font-size:24px;text-align:center;color:#b2ff00;text-transform:uppercase}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box{font-size:14px;padding:12px;text-align:center;width:50%;white-space:nowrap}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box strong{font-size:17px;font-weight:700;letter-spacing:.8px}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-color{color:#971821}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-text-decoration{text-decoration:underline}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box.ays-buy-now-button-box{display:flex;justify-content:flex-end;align-items:center;width:30%}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box .ays-button,#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box .ays-buy-now-button{align-items:center;font-weight:500}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box .ays-buy-now-button{background:#971821;border-color:#fff;display:flex;justify-content:center;align-items:center;padding:5px 15px;font-size:16px;border-radius:5px}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box .ays-buy-now-button:hover{background:#7d161d;border-color:#971821}#ays-chart-dicount-black-friday-month-main #ays-chart-dismiss-buttons-content{display:flex;justify-content:center}#ays-chart-dicount-black-friday-month-main #ays-chart-dismiss-buttons-content .ays-button{margin:0!important;font-size:13px;color:#969393b0}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-opacity-box{width:19%}#ays-chart-dicount-black-friday-month-main .ays-buy-now-opacity-button{padding:40px 15px;display:flex;justify-content:center;align-items:center;opacity:0}#ays-chart-countdown-main-container .ays-chart-countdown-container{margin:0 auto;text-align:center}#ays-chart-countdown-main-container #ays-chart-countdown-headline{letter-spacing:.125rem;text-transform:uppercase;font-size:18px;font-weight:400;margin:0;padding:9px 0 4px;line-height:1.3}#ays-chart-countdown-main-container li,#ays-chart-countdown-main-container ul{margin:0;font-weight:600}#ays-chart-countdown-main-container li{display:inline-block;font-size:10px;list-style-type:none;padding:10px;text-transform:uppercase}#ays-chart-countdown-main-container li span{display:block;font-size:22px;min-height:33px}#ays-chart-countdown-main-container .emoji{display:none;padding:1rem}#ays-chart-countdown-main-container .emoji span{font-size:25px;padding:0 .5rem}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-box{display:flex;justify-content:space-between;align-items:center;width:95%;margin:auto}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-title-row{text-align:center;padding-right:50px;font-style:normal;font-weight:900;font-size:19px;color:#fff;}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-button-buy-now{border:none;outline:0;padding:10px 20px;font-size:22px;text-transform:uppercase;font-weight:700;text-decoration:none;background:linear-gradient(180deg,#dd0bef 0,#82008d 100%);border-radius:16px}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-text-row{text-transform:uppercase;text-shadow:-1.5px 0 #dd0bef,0 1.5px #dd0bef,1.5px 0 #dd0bef,0 -1.5px #dd0bef;font-weight:900;font-style:normal;font-size:40px;line-height:40px;color:#fff}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-text-box{position:absolute;width:25%;top:10px;bottom:0;right:0;left:0;margin:0 auto}#ays-chart-countdown ul{padding:0}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-banner-2025-coupon-box{border:2px dashed rgba(255,255,255,.4);padding:0 12px;border-radius:6px;background:rgba(255,255,255,.1);cursor:pointer;transition:.3s;display:flex;align-items:center;justify-content:center;gap:6px;backdrop-filter:blur(10px);width:fit-content;margin:0 auto}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-banner-2025-coupon-box:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.6);transform:translateY(-1px)}#ays-chart-dicount-black-friday-month-main .ays-chart-discount-black-friday-banner-2025-coupon-text{font-size:14px;font-weight:700;letter-spacing:1px;color:#fff;font-family:monospace}#ays-chart-dicount-black-friday-month-main .ays-chart-discount-black-friday-banner-2025-copy-icon{opacity:.8;transition:opacity .3s}#ays-chart-dicount-black-friday-month-main .ays-chart-discount-black-friday-banner-banner-2025-coupon-box:hover .ays-chart-discount-black-friday-banner-2025-copy-icon,.ays-chart-discount-black-friday-banner-2025-copy-notification.show{opacity:1}.ays-chart-discount-black-friday-banner-2025-copy-notification{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.8);color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:10000;opacity:0;transition:opacity .3s}@media screen and (max-width:1400px) and (min-width:1200px){div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-title-row{font-size:15px}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-text-row{font-size:27px}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-box{width:100%}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-button-buy-now{font-size:13px}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box-80{width:80%!important}}@media all and (max-width:1200px){div#ays-chart-dicount-black-friday-month-main .ays_chart_dicount_month{background:unset}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-text-row{font-size:30px}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-box{width:100%}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-button-buy-now{font-size:15px}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box-80{width:80%!important}}@media all and (max-width:1200px) and (min-width:1150px){div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-title-row{font-size:15px}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-button-buy-now{font-size:10px}}@media all and (max-width:1150px){div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box-80{width:80%!important}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-box{flex-direction:column}div#ays-chart-dicount-black-friday-month-main{padding-right:0}div#ays-chart-dicount-black-friday-month-main .ays_chart_dicount_month{display:flex;align-items:center;justify-content:space-between;align-content:center;flex-wrap:wrap;flex-direction:column;padding:10px 0}div#ays-chart-dicount-black-friday-month-main div.ays-chart-dicount-black-friday-wrap-box{width:100%!important;text-align:center}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-title-row,div#ays-chart-dicount-black-friday-month-main #ays-chart-countdown-main-container ul{padding:0;font-size:13px}#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-button-sale,div#ays-chart-countdown-main-container li{font-size:15px}div#ays-chart-countdown-main-container li span{font-size:25px}div#ays-chart-dicount-black-friday-month-main div.ays-chart-dicount-black-friday-wrap-text-box{position:unset}#ays-chart-countdown-main-container #ays-chart-countdown-headline{font-size:15px;font-weight:600}#ays-chart-countdown-main-container ul{font-weight:500}#ays-chart-countdown-main-container li span{font-size:20px}#ays-chart-dicount-black-friday-month-main .ays-button{margin:0 auto!important}div#ays-chart-dicount-black-friday-month-main.ays_chart_dicount_info.notice{background-position:bottom right;background-repeat:no-repeat;background-size:contain;display:flex;justify-content:center;background-image:linear-gradient(45deg,#1e101d,#c60af4)}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box.ays-buy-now-button-box{justify-content:center}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-wrap-box .ays-buy-now-button{font-size:14px;padding:5px 10px}div#ays-chart-dicount-black-friday-month-main .ays-chart-dicount-black-friday-button-buy-now{padding:10px 18px;font-size:15px}}@media all and (max-width:768px){#ays-chart-dicount-black-friday-month-main{display:none!important}}
3005 + ';
3006 + $content[] = '</style>';
3007 +
3008 + $content = implode( '', $content );
3009 +
1316 3010 echo $content;
1317 3011 }
1318 3012 }
1319 3013
3014 + // Christmas Banner 2025
3015 + public static function ays_chart_christmas_banner_message_2025($ishmar){
3016 + if($ishmar == 0 ){
3017 + $content = array();
1320 3018
3019 + $svg_icon = '<svg width="21" height="22" viewBox="0 0 21 22" fill="none" xmlns="http://www.w3.org/2000/svg">
3020 + <path fill-rule="evenodd" clip-rule="evenodd" d="M10.0445 0C10.4587 0 10.7945 0.33579 10.7945 0.75V2.93934L12.5141 1.21967C12.807 0.92678 13.2819 0.92678 13.5748 1.21967C13.8677 1.51256 13.8677 1.98744 13.5748 2.28033L10.7945 5.06066V9.451L14.5965 7.25588L15.6142 3.45788C15.7214 3.05778 16.1326 2.82034 16.5327 2.92755C16.9328 3.03475 17.1703 3.44601 17.0631 3.84611L16.4336 6.19522L18.3296 5.10055C18.6884 4.89344 19.147 5.01635 19.3542 5.37507C19.5613 5.73379 19.4384 6.19248 19.0796 6.39959L17.1836 7.49426L19.5327 8.1237C19.9328 8.23091 20.1703 8.64216 20.0631 9.0423C19.9558 9.4424 19.5446 9.6798 19.1445 9.5726L15.3465 8.55492L11.5445 10.75L15.3467 12.9452L19.1447 11.9275C19.5448 11.8203 19.956 12.0578 20.0633 12.4579C20.1705 12.858 19.933 13.2692 19.5329 13.3764L17.1838 14.0059L19.0798 15.1005C19.4386 15.3077 19.5615 15.7663 19.3544 16.1251C19.1472 16.4838 18.6886 16.6067 18.3298 16.3996L16.4338 15.3049L17.0633 17.654C17.1705 18.0541 16.933 18.4654 16.5329 18.5726C16.1328 18.6798 15.7216 18.4424 15.6144 18.0423L14.5967 14.2443L10.7945 12.049V16.4393L13.5748 19.2197C13.8677 19.5126 13.8677 19.9874 13.5748 20.2803C13.2819 20.5732 12.807 20.5732 12.5141 20.2803L10.7945 18.5607V20.75C10.7945 21.1642 10.4587 21.5 10.0445 21.5C9.63033 21.5 9.29453 21.1642 9.29453 20.75V18.5607L7.57484 20.2803C7.28195 20.5732 6.80707 20.5732 6.51418 20.2803C6.22129 19.9874 6.22129 19.5126 6.51418 19.2197L9.29453 16.4393V12.049L5.4923 14.2443L4.47463 18.0423C4.36742 18.4424 3.95617 18.6798 3.55607 18.5726C3.15597 18.4654 2.91853 18.0541 3.02574 17.654L3.65518 15.3049L1.75916 16.3996C1.40044 16.6067 0.941743 16.4838 0.734643 16.1251C0.527533 15.7663 0.650443 15.3077 1.00916 15.1005L2.90518 14.0059L0.556073 13.3764C0.155973 13.2692 -0.081467 12.858 0.0257431 12.4579C0.132943 12.0578 0.544203 11.8203 0.944303 11.9275L4.7423 12.9452L8.54453 10.75L4.74249 8.55492L0.944493 9.5726C0.544393 9.6798 0.133143 9.4424 0.0259331 9.0423C-0.0812669 8.64216 0.156163 8.23091 0.556263 8.1237L2.90538 7.49426L1.00935 6.39959C0.650633 6.19248 0.527733 5.73379 0.734833 5.37507C0.941943 5.01635 1.40063 4.89344 1.75935 5.10055L3.65538 6.19522L3.02593 3.84611C2.91873 3.44601 3.15616 3.03475 3.55626 2.92755C3.95636 2.82034 4.36762 3.05778 4.47482 3.45788L5.49249 7.25588L9.29453 9.451V5.06066L6.51418 2.28033C6.22129 1.98744 6.22129 1.51256 6.51418 1.21967C6.80707 0.92678 7.28195 0.92678 7.57484 1.21967L9.29453 2.93934V0.75C9.29453 0.33579 9.63033 0 10.0445 0Z" fill="white" fill-opacity="0.2"/>
3021 + </svg>
3022 + ';
3023 +
3024 + $ays_chart_cta_button_link = esc_url('https://ays-pro.com/wordpress/chart-builder?utm_source=dashboard&utm_medium=chart-free&utm_campaign=christmas-sale-banner-' . CHART_BUILDER_VERSION);
3025 +
3026 + $content[] = '<div id="ays-chart-christmas-banner-main" class="notice notice-success is-dismissible ays-chart-christmas-banner-info ays_chart_dicount_info">';
3027 + $content[] = '<div id="ays-chart-christmas-banner-month" class="ays-chart-christmas-banner-month">';
3028 +
3029 + // Background effects
3030 + $content[] = '<div class="ays-chart-christmas-banner-bg-effects">';
3031 + $content[] = '<div class="ays-chart-christmas-banner-bg-gradient-1"></div>';
3032 + $content[] = '<div class="ays-chart-christmas-banner-bg-gradient-2"></div>';
3033 +
3034 + // Snowflakes
3035 + $content[] = '<div class="ays-chart-christmas-banner-snowflake" style="left: 5%; animation-delay: 0s; animation-duration: 8s;">'. $svg_icon .'</div>';
3036 + $content[] = '<div class="ays-chart-christmas-banner-snowflake" style="left: 15%; animation-delay: 2s; animation-duration: 10s;">'. $svg_icon .'</div>';
3037 + $content[] = '<div class="ays-chart-christmas-banner-snowflake" style="left: 25%; animation-delay: 4s; animation-duration: 9s;">'. $svg_icon .'</div>';
3038 + $content[] = '<div class="ays-chart-christmas-banner-snowflake" style="left: 75%; animation-delay: 1s; animation-duration: 11s;">'. $svg_icon .'</div>';
3039 + $content[] = '<div class="ays-chart-christmas-banner-snowflake" style="left: 85%; animation-delay: 3s; animation-duration: 8s;">'. $svg_icon .'</div>';
3040 + $content[] = '<div class="ays-chart-christmas-banner-snowflake" style="left: 92%; animation-delay: 5s; animation-duration: 10s;">'. $svg_icon .'</div>';
3041 +
3042 + // Sparkles
3043 + $content[] = '<svg class="ays-chart-christmas-banner-sparkle" style="top: 20%; left: 8%; animation-delay: 0s; width: 14px; height: 14px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">';
3044 + $content[] = '<path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"/>';
3045 + $content[] = '</svg>';
3046 + $content[] = '<svg class="ays-chart-christmas-banner-sparkle" style="top: 60%; left: 3%; animation-delay: 0.5s; width: 10px; height: 10px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">';
3047 + $content[] = '<path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"/>';
3048 + $content[] = '</svg>';
3049 + $content[] = '<svg class="ays-chart-christmas-banner-sparkle" style="top: 30%; right: 12%; animation-delay: 1s; width: 12px; height: 12px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">';
3050 + $content[] = '<path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"/>';
3051 + $content[] = '</svg>';
3052 + $content[] = '</div>';
3053 +
3054 + // Main content
3055 + $content[] = '<div class="ays-chart-christmas-banner-content">';
3056 + $content[] = '<div class="ays-chart-christmas-banner-left">';
3057 + // Gift icon with hat
3058 + $content[] = '<div class="ays-chart-christmas-banner-gift-wrapper">';
3059 + $content[] = '<svg class="ays-chart-christmas-banner-gift-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">';
3060 + $content[] = '<rect x="3" y="8" width="18" height="4" rx="1"></rect>';
3061 + $content[] = '<path d="M12 8v13"></path>';
3062 + $content[] = '<path d="M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7"></path>';
3063 + $content[] = '<path d="M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5"></path>';
3064 + $content[] = '</svg>';
3065 + $content[] = '<div class="ays-chart-christmas-banner-hat">';
3066 + $content[] = '<svg viewBox="0 0 24 24" fill="none" class="ays-chart-christmas-banner-hat-svg">';
3067 + $content[] = '<path d="M12 2L4 14h16L12 2z" fill="hsl(0 80% 45%)"></path>';
3068 + $content[] = '<path d="M4 14c0 2 3.5 3 8 3s8-1 8-3" fill="hsl(0 0% 100%)"></path>';
3069 + $content[] = '<circle cx="12" cy="3" r="2" fill="hsl(0 0% 100%)"></circle>';
3070 + $content[] = '</svg>';
3071 + $content[] = '</div>';
3072 + $content[] = '</div>';
3073 +
3074 + $content[] = '<div class="ays-chart-christmas-banner-special-label">';
3075 + $content[] = '<div class="ays-chart-christmas-banner-special-label-name">';
3076 + $content[] = '<a href="'. $ays_chart_cta_button_link .'" class="ays-chart-christmas-banner-special-label-name-link" target="_blank">';
3077 + $content[] = __( 'Chart Builder', "chart-builder" );
3078 + $content[] = '</a>';
3079 + $content[] = '</div>';
3080 +
3081 + $content[] = '<div>✦ ' . __( 'CHRISTMAS SPECIAL', "chart-builder" ) . ' ✦</div>';
3082 + $content[] = '</div>';
3083 + $content[] = '</div>';
3084 +
3085 + $content[] = '<div class="ays-chart-christmas-banner-center">';
3086 + $content[] = '<div class="ays-chart-christmas-banner-discount-text">25% OFF</div>';
3087 + $content[] = '<div class="ays-chart-christmas-banner-limited-offer">' . __( 'Limited time offer', "chart-builder" ) . '</div>';
3088 + $content[] = '</div>';
3089 +
3090 + $content[] = '<div class="ays-chart-christmas-banner-right">';
3091 + $content[] = '<div class="ays-chart-christmas-banner-coupon-box" onclick="aysChartChristmasCopyToClipboard(\'XMAS25\')" title="' . __( 'Click to copy', "chart-builder" ) . '">';
3092 + $content[] = '<span class="ays-chart-christmas-banner-coupon-text">XMAS25</span>';
3093 + $content[] = '<svg class="ays-chart-christmas-banner-copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none">';
3094 + $content[] = '<path d="M13.5 2.5H6.5C5.67 2.5 5 3.17 5 4V10C5 10.83 5.67 11.5 6.5 11.5H13.5C14.33 11.5 15 10.83 15 10V4C15 3.17 14.33 2.5 13.5 2.5ZM13.5 10H6.5V4H13.5V10ZM2.5 6.5V12.5C2.5 13.33 3.17 14 4 14H10V12.5H4V6.5H2.5Z" fill="white"/>';
3095 + $content[] = '</svg>';
3096 + $content[] = '</div>';
3097 +
3098 + $content[] = '<a href="'. $ays_chart_cta_button_link .'" class="ays-chart-christmas-banner-buy-now-btn" target="_blank">';
3099 + $content[] = __( 'Buy Now', "chart-builder" );
3100 + $content[] = '</a>';
3101 + $content[] = '</div>';
3102 + $content[] = '</div>';
3103 +
3104 + $content[] = '</div>';
3105 +
3106 + if( current_user_can( 'manage_options' ) ){
3107 + $content[] = '<div id="ays-chart-dismiss-buttons-content">';
3108 + $content[] = '<form action="" method="POST" style="position: absolute; bottom: 0; right: 0; color: #fff;">';
3109 + $content[] = '<button class="btn btn-link ays-button" name="ays_chart_sale_btn" style="color: darkgrey; font-size: 11px; padding: 0 .75rem;">'. __( "Dismiss ad", 'chart-builder' ) .'</button>';
3110 + $content[] = wp_nonce_field( CHART_BUILDER_NAME . '-sale-banner' , CHART_BUILDER_NAME . '-sale-banner' );
3111 + $content[] = '</form>';
3112 + $content[] = '</div>';
3113 + }
3114 +
3115 + $content[] = '</div>';
3116 +
3117 + $content[] = '<script>';
3118 + $content[] = "
3119 + function aysChartChristmasCopyToClipboard(text) {
3120 + var textarea = document.createElement('textarea');
3121 + textarea.value = text;
3122 + textarea.style.position = 'fixed';
3123 + textarea.style.opacity = '0';
3124 + document.body.appendChild(textarea);
3125 +
3126 + textarea.select();
3127 + textarea.setSelectionRange(0, 99999);
3128 +
3129 + try {
3130 + document.execCommand('copy');
3131 + aysChartChristmasShowCopyNotification('" . __( 'Coupon code copied!', "chart-builder" ) . "');
3132 + } catch (err) {
3133 + console.error('Failed to copy text: ', err);
3134 + }
3135 +
3136 + document.body.removeChild(textarea);
3137 + }
3138 +
3139 + function aysChartChristmasShowCopyNotification(message) {
3140 + var existingNotification = document.querySelector('.ays-chart-christmas-banner-copy-notification');
3141 + if (existingNotification) {
3142 + document.body.removeChild(existingNotification);
3143 + }
3144 +
3145 + var notification = document.createElement('div');
3146 + notification.className = 'ays-chart-christmas-banner-copy-notification';
3147 + notification.textContent = message;
3148 + document.body.appendChild(notification);
3149 +
3150 + setTimeout(function() {
3151 + notification.classList.add('show');
3152 + }, 10);
3153 +
3154 + setTimeout(function() {
3155 + notification.classList.remove('show');
3156 + setTimeout(function() {
3157 + if (notification.parentNode) {
3158 + document.body.removeChild(notification);
3159 + }
3160 + }, 300);
3161 + }, 2000);
3162 + }";
3163 + $content[] = '</script>';
3164 +
3165 + $content[] = '<style>';
3166 + $content[] = '
3167 + /* Christmas banner start */
3168 +
3169 + div#ays-chart-christmas-banner-main .btn-link {
3170 + background-color: transparent;
3171 + display: inline-block;
3172 + font-weight: 400;
3173 + text-align: center;
3174 + white-space: nowrap;
3175 + vertical-align: middle;
3176 + -webkit-user-select: none;
3177 + -moz-user-select: none;
3178 + -ms-user-select: none;
3179 + user-select: none;
3180 + border: 1px solid transparent;
3181 + padding: .375rem .75rem;
3182 + font-size: 12px;
3183 + line-height: 1.5;
3184 + border-radius: .25rem;
3185 + color: rgba(255, 255, 255, .6);
3186 + }
3187 +
3188 + div#ays-chart-christmas-banner-main.ays-chart-christmas-banner-info {
3189 + background: linear-gradient(to right, hsl(0, 70%, 28%), hsl(0, 65%, 38%), hsl(0, 70%, 28%));
3190 + padding: unset;
3191 + border-left: 0;
3192 + position: relative;
3193 + }
3194 +
3195 + #ays-chart-christmas-banner-main .ays-chart-christmas-banner-month {
3196 + position: relative;
3197 + padding: 15px 40px;
3198 + overflow: hidden;
3199 + }
3200 +
3201 + /* Background effects */
3202 + .ays-chart-christmas-banner-bg-effects {
3203 + position: absolute;
3204 + top: 0;
3205 + left: 0;
3206 + right: 0;
3207 + bottom: 0;
3208 + pointer-events: none;
3209 + z-index: 1;
3210 + }
3211 +
3212 + .ays-chart-christmas-banner-bg-gradient-1 {
3213 + position: absolute;
3214 + top: 0;
3215 + left: 30%;
3216 + width: 40%;
3217 + height: 100%;
3218 + background: radial-gradient(circle, rgba(202, 43, 43, 0.5) 0%, transparent 60%);
3219 + opacity: 0.4;
3220 + }
3221 +
3222 + .ays-chart-christmas-banner-bg-gradient-2 {
3223 + position: absolute;
3224 + top: 0;
3225 + right: 15%;
3226 + width: 35%;
3227 + height: 100%;
3228 + background: radial-gradient(circle, rgba(246, 201, 85, 0.15) 0%, transparent 50%);
3229 + opacity: 0.3;
3230 + }
3231 +
3232 + .ays-chart-christmas-banner-snowflake {
3233 + position: absolute;
3234 + color: rgba(255, 255, 255, 0.2);
3235 + font-size: 20px;
3236 + animation: ays-chart-christmas-snowfall linear infinite;
3237 + top: -10px;
3238 + }
3239 +
3240 + @keyframes ays-chart-christmas-snowfall {
3241 + 0% {
3242 + transform: translateY(-10px) rotate(0deg);
3243 + opacity: 0;
3244 + }
3245 + 10% {
3246 + opacity: 0.8;
3247 + }
3248 + 90% {
3249 + opacity: 0.8;
3250 + }
3251 + 100% {
3252 + transform: translateY(100%) rotate(360deg);
3253 + opacity: 0;
3254 + }
3255 + }
3256 +
3257 + .ays-chart-christmas-banner-sparkle {
3258 + position: absolute;
3259 + color: hsl(43, 90%, 65%);
3260 + animation: ays-chart-christmas-twinkle 2s ease-in-out infinite;
3261 + }
3262 +
3263 + @keyframes ays-chart-christmas-twinkle {
3264 + 0%, 100% {
3265 + opacity: 0.3;
3266 + transform: scale(0.8);
3267 + }
3268 + 50% {
3269 + opacity: 1;
3270 + transform: scale(1.2);
3271 + }
3272 + }
3273 +
3274 + /* Main content */
3275 + .ays-chart-christmas-banner-content {
3276 + position: relative;
3277 + display: flex;
3278 + align-items: center;
3279 + justify-content: space-between;
3280 + z-index: 2;
3281 + }
3282 +
3283 + /* Left section */
3284 + .ays-chart-christmas-banner-left {
3285 + display: flex;
3286 + align-items: center;
3287 + gap: 50px;
3288 + }
3289 +
3290 + .ays-chart-christmas-banner-gift-wrapper {
3291 + position: relative;
3292 + animation: ays-chart-christmas-float 3s ease-in-out infinite;
3293 + }
3294 +
3295 + .ays-chart-christmas-banner-gift-icon {
3296 + width: 48px;
3297 + height: 48px;
3298 + color: rgba(255, 247, 237, 0.9);
3299 + }
3300 +
3301 + @keyframes ays-chart-christmas-float {
3302 + 0%, 100% {
3303 + transform: translateY(0);
3304 + }
3305 + 50% {
3306 + transform: translateY(-5px);
3307 + }
3308 + }
3309 +
3310 + .ays-chart-christmas-banner-hat {
3311 + position: absolute;
3312 + top: -12px;
3313 + right: -4px;
3314 + width: 24px;
3315 + height: 24px;
3316 + }
3317 +
3318 + .ays-chart-christmas-banner-hat-svg {
3319 + width: 100%;
3320 + height: 100%;
3321 + }
3322 +
3323 + .ays-chart-christmas-banner-special-label {
3324 + color: hsl(43, 90%, 65%);
3325 + font-size: 14px;
3326 + font-weight: 500;
3327 + text-transform: uppercase;
3328 + letter-spacing: 1px;
3329 + /* font-family: "Outfit", sans-serif; */
3330 + }
3331 +
3332 + .ays-chart-christmas-banner-special-label-name {
3333 + color: #fffaf0;
3334 + text-align: center;
3335 + }
3336 +
3337 + div#ays-chart-christmas-banner-main .ays-chart-christmas-banner-special-label-name-link {
3338 + color: #fffaf0;
3339 + box-shadow: unset;
3340 + }
3341 +
3342 + /* Center section */
3343 + .ays-chart-christmas-banner-center {
3344 + display: flex;
3345 + flex-direction: row;
3346 + text-align: center;
3347 + justify-content: center;
3348 + align-items: center;
3349 + gap: 30px;
3350 + }
3351 +
3352 + .ays-chart-christmas-banner-discount-text {
3353 + font-family: "Outfit", sans-serif;
3354 + font-weight: 800;
3355 + font-size: 30px;
3356 + color: hsl(40, 100%, 97%);
3357 + letter-spacing: -1px;
3358 + line-height: 1;
3359 + }
3360 +
3361 + .ays-chart-christmas-banner-limited-offer {
3362 + color: rgba(255, 247, 237, 0.7);
3363 + font-size: 13px;
3364 + font-weight: 500;
3365 + }
3366 +
3367 + /* Right section */
3368 + .ays-chart-christmas-banner-right {
3369 + display: flex;
3370 + align-items: center;
3371 + gap: 20px;
3372 + }
3373 +
3374 + .ays-chart-christmas-banner-coupon-box {
3375 + border: 2px dashed rgba(255, 255, 255, 0.4);
3376 + padding: 8px 16px;
3377 + border-radius: 6px;
3378 + background: rgba(255, 255, 255, 0.1);
3379 + cursor: pointer;
3380 + transition: all 0.3s;
3381 + display: flex;
3382 + align-items: center;
3383 + gap: 8px;
3384 + backdrop-filter: blur(10px);
3385 + }
3386 +
3387 + .ays-chart-christmas-banner-coupon-box:hover {
3388 + background: rgba(255, 255, 255, 0.2);
3389 + border-color: rgba(255, 255, 255, 0.6);
3390 + transform: translateY(-1px);
3391 + }
3392 +
3393 + .ays-chart-christmas-banner-coupon-text {
3394 + font-size: 16px;
3395 + font-weight: 700;
3396 + letter-spacing: 1px;
3397 + color: #fff;
3398 + font-family: monospace;
3399 + }
3400 +
3401 + .ays-chart-christmas-banner-copy-icon {
3402 + opacity: 0.8;
3403 + transition: opacity 0.3s;
3404 + }
3405 +
3406 + .ays-chart-christmas-banner-coupon-box:hover .ays-chart-christmas-banner-copy-icon {
3407 + opacity: 1;
3408 + }
3409 +
3410 + #ays-chart-christmas-banner-main .ays-chart-christmas-banner-buy-now-btn {
3411 + background-color: #fbe19f;
3412 + color: hsl(0, 72%, 35%);
3413 + padding: 10px 30px;
3414 + border-radius: 9999px;
3415 + font-size: 16px;
3416 + font-weight: 600;
3417 + font-family: "Outfit", sans-serif;
3418 + border: none;
3419 + cursor: pointer;
3420 + transition: all 0.3s;
3421 + text-decoration: none;
3422 + display: flex;
3423 + align-items: center;
3424 + gap: 6px;
3425 + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15), 0 0 30px rgba(246, 201, 85, 0.2);
3426 + }
3427 +
3428 + #ays-chart-christmas-banner-main .ays-chart-christmas-banner-buy-now-btn:hover {
3429 + background-color: #f2d58c;
3430 + transform: scale(1.05);
3431 + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2), 0 0 40px rgba(246, 201, 85, 0.3);
3432 + }
3433 +
3434 + .ays-chart-christmas-banner-btn-arrow {
3435 + display: inline-block;
3436 + transition: transform 0.3s;
3437 + }
3438 +
3439 + .ays-chart-christmas-banner-buy-now-btn:hover .ays-chart-christmas-banner-btn-arrow {
3440 + transform: translateX(4px);
3441 + }
3442 +
3443 + /* Notification */
3444 + .ays-chart-christmas-banner-copy-notification {
3445 + position: fixed;
3446 + top: 50%;
3447 + left: 50%;
3448 + transform: translate(-50%, -50%);
3449 + background: rgba(0, 0, 0, 0.8);
3450 + color: #fff;
3451 + padding: 12px 24px;
3452 + border-radius: 8px;
3453 + font-size: 14px;
3454 + z-index: 10000;
3455 + opacity: 0;
3456 + transition: opacity 0.3s;
3457 + }
3458 +
3459 + .ays-chart-christmas-banner-copy-notification.show {
3460 + opacity: 1;
3461 + }
3462 +
3463 + /* Dismiss button */
3464 + #ays-chart-christmas-banner-main #ays-chart-christmas-banner-dismiss-content {
3465 + display: flex;
3466 + justify-content: center;
3467 + }
3468 +
3469 + #ays-chart-christmas-banner-main #ays-chart-christmas-banner-dismiss-content .ays-button {
3470 + margin: 0 !important;
3471 + font-size: 13px;
3472 + color: rgba(150, 147, 147, 0.69);
3473 + }
3474 +
3475 + /* Responsive */
3476 + @media (max-width: 1024px) {
3477 + .ays-chart-christmas-banner-discount-text {
3478 + font-size: 40px;
3479 + }
3480 + .ays-chart-christmas-banner-content {
3481 + flex-wrap: wrap;
3482 + }
3483 + }
3484 +
3485 + @media (max-width: 768px) {
3486 + #ays-chart-christmas-banner-main {
3487 + display: none !important;
3488 + }
3489 + }
3490 + /* Christmas banner end */
3491 + ';
3492 + $content[] = '</style>';
3493 +
3494 + $content = implode( '', $content );
3495 +
3496 + echo $content;
3497 + }
3498 + }
3499 +
1321 3500 public function ays_chart_update_banner_time(){
3501 + if (!current_user_can('manage_options')) {
3502 + return array('error' => 'Insufficient permissions');
3503 + }
1322 3504
1323 3505 $date = time() + ( 3 * 24 * 60 * 60 ) + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS);
1324 3506 // $date = time() + ( 60 ) + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS); // for testing | 1 min
1325 - $next_3_days = date('M d, Y H:i:s', $date);
3507 + $next_3_days = gmdate('M d, Y H:i:s', $date);
1326 3508
1327 3509 $ays_chart_banner_time = get_option('ays_chart_20_bundle_banner_time');
1328 3510
1329 3511 if ( !$ays_chart_banner_time || is_null( $ays_chart_banner_time ) ) {
@@ -1346,11 +3528,26 @@
1346 3528
1347 3529 return $get_ays_chart_banner_time;
1348 3530 }
1349 3531
3532 +
3533 + public function ays_chart_add_body_class( $classes ) {
3534 + global $pagenow;
3535 +
3536 + if ( $pagenow === 'admin.php' ) {
3537 + $page = isset( $_GET['page'] ) ? sanitize_key( $_GET['page'] ) : '';
3538 +
3539 + if ( strpos( $page, $this->plugin_name ) === 0 ) {
3540 + $classes .= ' ays-chart-builder-admin';
3541 + }
3542 + }
3543 +
3544 + return $classes;
3545 + }
3546 +
1350 3547 public function author_user_search() {
1351 3548 check_ajax_referer( 'cbuilder-author-user-search', 'security' );
1352 - $params = $_REQUEST['params'];
3549 + $params = isset($_REQUEST['params']) ? sanitize_text_field(wp_unslash($_REQUEST['params'])) : array();
1353 3550 $search = isset($params['search']) && $params['search'] != '' ? sanitize_text_field( $params['search'] ) : null;
1354 3551 $checked = isset($params['val']) && $params['val'] !='' ? sanitize_text_field( $params['val'] ) : null;
1355 3552 $args = 'search=';
1356 3553 if ($search !== null) {
@@ -1467,10 +3664,11 @@
1467 3664 */
1468 3665 public function ays_chart_activate_plugin() {
1469 3666
1470 3667 // Run a security check.
1471 - check_ajax_referer( $this->plugin_name . '-install-plugin-nonce', sanitize_key( $_REQUEST['_ajax_nonce'] ) );
3668 + check_ajax_referer( $this->plugin_name . '-install-plugin-nonce', '_ajax_nonce' );
1472 3669
3670 +
1473 3671 // Check for permissions.
1474 3672 if ( ! current_user_can( 'activate_plugins' ) ) {
1475 3673 wp_send_json_error( esc_html__( 'Plugin activation is disabled for you on this site.', 'chart-builder' ) );
1476 3674 }
@@ -1510,10 +3708,11 @@
1510 3708 */
1511 3709 public function ays_chart_install_plugin() {
1512 3710
1513 3711 // Run a security check.
1514 - check_ajax_referer( $this->plugin_name . '-install-plugin-nonce', sanitize_key( $_REQUEST['_ajax_nonce'] ) );
3712 + check_ajax_referer( $this->plugin_name . '-install-plugin-nonce', '_ajax_nonce' );
1515 3713
3714 +
1516 3715 $generic_error = esc_html__( 'There was an error while performing your request.', 'chart-builder' );
1517 3716 $type = ! empty( $_POST['type'] ) ? sanitize_key( $_POST['type'] ) : '';
1518 3717
1519 3718 // Check if new installations are allowed.
@@ -1629,11 +3828,13 @@
1629 3828
1630 3829 $images_url = CHART_BUILDER_ADMIN_URL . '/images/icons/';
1631 3830
1632 3831 $plugin_slug = array(
3832 + 'fox-lms',
1633 3833 'quiz-maker',
1634 3834 'survey-maker',
1635 3835 'poll-maker',
3836 + 'chart-builder',
1636 3837 'ays-popup-box',
1637 3838 'secure-copy-content-protection',
1638 3839 'gallery-photo-gallery',
1639 3840 'ays-chatgpt-assistant',
@@ -1643,9 +3844,9 @@
1643 3844 $plugin_url_arr = array();
1644 3845 foreach ($plugin_slug as $key => $slug) {
1645 3846 if ( isset( $_SESSION['ays_chart_our_product_links'] ) && !empty( $_SESSION['ays_chart_our_product_links'] )
1646 3847 && isset( $_SESSION['ays_chart_our_product_links'][$slug] ) && !empty( $_SESSION['ays_chart_our_product_links'][$slug] ) ) {
1647 - $plugin_url = (isset( $_SESSION['ays_chart_our_product_links'][$slug] ) && $_SESSION['ays_chart_our_product_links'][$slug] != "") ? esc_url( $_SESSION['ays_chart_our_product_links'][$slug] ) : "";
3848 + $plugin_url = (isset( $_SESSION['ays_chart_our_product_links'][$slug] ) && $_SESSION['ays_chart_our_product_links'][$slug] != "") ? esc_url_raw(sanitize_text_field($_SESSION['ays_chart_our_product_links'][$slug])) : "";
1648 3849 } else {
1649 3850 $latest_version = $this->ays_chart_get_latest_plugin_version($slug);
1650 3851 $plugin_url = 'https://downloads.wordpress.org/plugin/'. $slug .'.zip';
1651 3852 if ( $latest_version != '' ) {
@@ -1657,13 +3858,22 @@
1657 3858 $plugin_url_arr[$slug] = $plugin_url;
1658 3859 }
1659 3860
1660 3861 $plugins_array = array(
3862 + 'fox-lms/fox-lms.php' => array(
3863 + 'icon' => $images_url . 'icon-fox-lms-128x128.png',
3864 + 'name' => __( 'Fox LMS', 'chart-builder' ),
3865 + 'desc' => __( 'Build and manage online courses directly on your WordPress site.', 'chart-builder' ),
3866 + 'desc_hidden' => __( 'With the FoxLMS plugin, you can create, sell, and organize courses, lessons, and quizzes, transforming your website into a dynamic e-learning platform.', 'chart-builder' ),
3867 + 'wporg' => 'https://wordpress.org/plugins/fox-lms/',
3868 + 'buy_now' => 'https://foxlms.com/pricing/?utm_source=dashboard&utm_medium=chart-free&utm_campaign=fox-lms-our-products-page',
3869 + 'url' => $plugin_url_arr['fox-lms'],
3870 + ),
1661 3871 'quiz-maker/quiz-maker.php' => array(
1662 3872 'icon' => $images_url . 'icon-quiz-128x128.png',
1663 - 'name' => __( 'Quiz Maker', "easy-form" ),
1664 - 'desc' => __( 'Create powerful and engaging quizzes, tests, and exams in minutes.', "easy-form" ),
1665 - 'desc_hidden' => __( 'Build an unlimited number of quizzes and questions.', "easy-form" ),
3873 + 'name' => __( 'Quiz Maker', 'chart-builder' ),
3874 + 'desc' => __( 'Create powerful and engaging quizzes, tests, and exams in minutes.', 'chart-builder' ),
3875 + 'desc_hidden' => __( 'Build an unlimited number of quizzes and questions.', 'chart-builder' ),
1666 3876 'wporg' => 'https://wordpress.org/plugins/quiz-maker/',
1667 3877 'buy_now' => 'https://ays-pro.com/wordpress/quiz-maker/',
1668 3878 'url' => $plugin_url_arr['quiz-maker'],
1669 3879 ),
@@ -1703,9 +3913,9 @@
1703 3913 'buy_now' => 'https://ays-pro.com/wordpress/secure-copy-content-protection/',
1704 3914 'url' => $plugin_url_arr['secure-copy-content-protection'],
1705 3915 ),
1706 3916 'gallery-photo-gallery/gallery-photo-gallery.php' => array(
1707 - 'icon' => $images_url . 'icon-gallery-128x128.jpg',
3917 + 'icon' => $images_url . 'icon-gallery-128x128.png',
1708 3918 'name' => __( 'Gallery Photo Gallery', 'chart-builder' ),
1709 3919 'desc' => __( 'Create unlimited galleries and include unlimited images in those galleries.', 'chart-builder' ),
1710 3920 'desc_hidden' => __( 'Represent images in an attractive way. Attract people with your own single and multiple free galleries from your photo library.', 'chart-builder' ),
1711 3921 'wporg' => 'https://wordpress.org/plugins/gallery-photo-gallery/',
@@ -1762,9 +3972,10 @@
1762 3972 if ( is_wp_error( $call_api ) ) {
1763 3973 $api_error = $call_api->get_error_message();
1764 3974 } else {
1765 3975
1766 - //echo $call_api; // everything ##
3976 + //echo $call_api;
3977 + // everything ##
1767 3978 if ( ! empty( $call_api->version ) ) {
1768 3979 $version_latest = $call_api->version;
1769 3980 }
1770 3981 }
@@ -1904,9 +4115,9 @@
1904 4115 <span aria-hidden="true" class="dashicons dashicons-external"></span>
1905 4116 </a>';
1906 4117 }
1907 4118 $content .='
1908 - <a target="_blank" href="'. esc_url( $plugin_data['details']['buy_now'] ) .'" class="ays-chart-card__btn-primary">'. __('Buy Now', $this->plugin_name) .'</a>
4119 + <a target="_blank" href="'. esc_url( $plugin_data['details']['buy_now'] ) .'" class="ays-chart-card__btn-primary">'. __('Buy Now', 'chart-builder') .'</a>
1909 4120 </div>
1910 4121 </div>';
1911 4122 }
1912 4123 $install_plugin_nonce = wp_create_nonce( $this->plugin_name . '-install-plugin-nonce' );
@@ -1912,9 +4123,9 @@
1912 4123 $install_plugin_nonce = wp_create_nonce( $this->plugin_name . '-install-plugin-nonce' );
1913 4124 $content.= '<input type="hidden" id="ays_chart_ajax_install_plugin_nonce" name="ays_chart_ajax_install_plugin_nonce" value="'. $install_plugin_nonce .'">';
1914 4125 $content.= '</div>';
1915 4126
1916 - echo $content;
4127 + echo html_entity_decode($content);
1917 4128 }
1918 4129
1919 4130 /**
1920 4131 * Returns the data from Quiz maker.
@@ -1923,9 +4134,9 @@
1923 4134 */
1924 4135 public function fetch_quiz_maker_data(){
1925 4136 check_ajax_referer( 'cbuilder-fetch-quiz-maker-data', 'security' );
1926 4137
1927 - $params = $_POST['params'];
4138 + $params = isset($_REQUEST['params']) ? $_REQUEST['params'] : array();
1928 4139 if ( !isset($params) || empty($params) ) {
1929 4140 return array(
1930 4141 'success' => false,
1931 4142 'data' => array(
@@ -2047,9 +4258,9 @@
2047 4258 */
2048 4259 public function save_quiz_maker_data() {
2049 4260 check_ajax_referer( 'cbuilder-save-quiz-maker-data', 'security' );
2050 4261
2051 - $params = $_POST['params'];
4262 + $params = isset($_REQUEST['params']) ? $_REQUEST['params'] : array();
2052 4263 if ( !isset($params) || empty($params) ) {
2053 4264 return array(
2054 4265 'success' => false,
2055 4266 'data' => array(
@@ -2163,9 +4374,9 @@
2163 4374 'data' => array(
2164 4375 'msg' => __( 'Data was successfully saved.', "chart-builder" )
2165 4376 )
2166 4377 );
2167 - }
4378 + }
2168 4379
2169 4380 /**
2170 4381 * Chart page action hooks
2171 4382 */
@@ -2209,9 +4420,9 @@
2209 4420
2210 4421 $sources[] = $content;
2211 4422 }
2212 4423 $content_for_escape = implode('' , $sources );
2213 - echo html_entity_decode(esc_html( $content_for_escape ));
4424 + echo html_entity_decode( esc_html($content_for_escape) );
2214 4425 }
2215 4426
2216 4427 public function source_contents_import_from_csv_settings( $sources, $args ){
2217 4428 $html_class_prefix = $args['html_class_prefix'];
@@ -2223,25 +4434,25 @@
2223 4434 <div class="ays-pro-features-v2-big-buttons-box">
2224 4435 <a href="https://www.youtube.com/watch?v=tZ8K3y0qOEY" target="_blank" class="ays-pro-features-v2-video-button">
2225 4436 <div class="ays-pro-features-v2-video-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24_Hover.svg"></div>
2226 4437 <div class="ays-pro-features-v2-video-text">
2227 - <?php echo __("Watch Video" , "chart-builder"); ?>
4438 + <?php echo esc_html__("Watch Video" , "chart-builder"); ?>
2228 4439 </div>
2229 4440 </a>
2230 4441 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
2231 4442 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
2232 4443 <div class="ays-pro-features-v2-upgrade-text">
2233 - <?php echo __("Upgrade" , "chart-builder"); ?>
4444 + <?php echo esc_html__("Upgrade" , "chart-builder"); ?>
2234 4445 </div>
2235 4446 </a>
2236 4447 </div>
2237 - <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main">
4448 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main ays-accordion-data-main-wrap">
2238 4449 <div class="<?php echo esc_attr($html_class_prefix) ?>file-import-form">
2239 - <h6><?php echo __("Choose what kind of data would you like to upload.", "chart-builder"); ?></h6>
4450 + <h6><?php echo esc_html__("Choose what kind of data would you like to upload.", "chart-builder"); ?></h6>
2240 4451 <select class="form-select" style="max-width: none;" id="<?php echo esc_attr($html_class_prefix) ?>import-files-file-type">
2241 4452 <option value="csv">CSV File</option>
2242 4453 </select>
2243 - <span style="display: block; font-style: italic; color: gray; font-size: 12px; margin: 5px 0;" class="<?php echo esc_attr($html_class_prefix) ?>small-hint-text"><?php echo __("Choose the format of the file you are going to import.", "chart-builder"); ?></span>
4454 + <span style="display: block; font-style: italic; color: gray; font-size: 12px; margin: 5px 0;" class="<?php echo esc_attr($html_class_prefix) ?>small-hint-text"><?php echo esc_html__("Choose the format of the file you are going to import.", "chart-builder"); ?></span>
2244 4455 <p class="<?php echo esc_attr($html_class_prefix) ?>csv-export-example" style="font-size: 15px; font-style: italic;">Example:
2245 4456 <a class="<?php echo esc_attr($html_class_prefix) ?>csv-export-example-link <?php echo esc_attr($html_class_prefix) ?>csv-export-example-link-other-types" style="cursor: pointer;">example.csv</a>
2246 4457 </p>
2247 4458 <div>
@@ -2250,16 +4461,16 @@
2250 4461 <div class='ays-chart-file-import-success'></div>
2251 4462 <div class='ays-chart-file-import-error'></div>
2252 4463 <div class="ays-chart-buttons-group">
2253 4464 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-file-import-fetch">
2254 - <?php echo __( 'Show Results', "chart-builder" ); ?>
4465 + <?php echo esc_html__( 'Show Results', "chart-builder" ); ?>
2255 4466 </button>
2256 4467 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-file-import-show-on-chart">
2257 4468 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.722 6.59785C12.2407 3.47754 10.0017 1.90723 7.00009 1.90723C3.99697 1.90723 1.75947 3.47754 0.278215 6.59941C0.218802 6.72522 0.187988 6.86263 0.187988 7.00176C0.187988 7.14089 0.218802 7.27829 0.278215 7.4041C1.75947 10.5244 3.99853 12.0947 7.00009 12.0947C10.0032 12.0947 12.2407 10.5244 13.722 7.40254C13.8423 7.14941 13.8423 6.85566 13.722 6.59785ZM7.00009 10.9697C4.47978 10.9697 2.63447 9.6916 1.3329 7.00098C2.63447 4.31035 4.47978 3.03223 7.00009 3.03223C9.5204 3.03223 11.3657 4.31035 12.6673 7.00098C11.3673 9.6916 9.52197 10.9697 7.00009 10.9697ZM6.93759 4.25098C5.41884 4.25098 4.18759 5.48223 4.18759 7.00098C4.18759 8.51973 5.41884 9.75098 6.93759 9.75098C8.45634 9.75098 9.68759 8.51973 9.68759 7.00098C9.68759 5.48223 8.45634 4.25098 6.93759 4.25098ZM6.93759 8.75098C5.9704 8.75098 5.18759 7.96816 5.18759 7.00098C5.18759 6.03379 5.9704 5.25098 6.93759 5.25098C7.90478 5.25098 8.68759 6.03379 8.68759 7.00098C8.68759 7.96816 7.90478 8.75098 6.93759 8.75098Z" fill="#14524A" /></svg>
2258 - <?php echo __( 'Preview', "chart-builder" ); ?>
4469 + <?php echo esc_html__( 'Preview', "chart-builder" ); ?>
2259 4470 </button>
2260 4471 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-file-import-save">
2261 - <?php echo __( 'Save data', "chart-builder" ); ?>
4472 + <?php echo esc_html__( 'Save data', "chart-builder" ); ?>
2262 4473 </button>
2263 4474 </div>
2264 4475 </div>
2265 4476 </div>
@@ -2289,38 +4500,38 @@
2289 4500 <div class="ays-pro-features-v2-big-buttons-box">
2290 4501 <a href="https://www.youtube.com/watch?v=tZ8K3y0qOEY" target="_blank" class="ays-pro-features-v2-video-button">
2291 4502 <div class="ays-pro-features-v2-video-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24_Hover.svg"></div>
2292 4503 <div class="ays-pro-features-v2-video-text">
2293 - <?php echo __("Watch Video" , "chart-builder"); ?>
4504 + <?php echo esc_html__("Watch Video" , "chart-builder"); ?>
2294 4505 </div>
2295 4506 </a>
2296 4507 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
2297 4508 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
2298 4509 <div class="ays-pro-features-v2-upgrade-text">
2299 - <?php echo __("Upgrade" , "chart-builder"); ?>
4510 + <?php echo esc_html__("Upgrade" , "chart-builder"); ?>
2300 4511 </div>
2301 4512 </a>
2302 4513 </div>
2303 - <div class="<?= $html_class_prefix ?>source-data-main-wrap">
2304 - <div class="<?= $html_class_prefix ?>chart-source-data-main">
4514 + <div class="<?php echo esc_attr( $html_class_prefix ) ?>source-data-main-wrap ays-accordion-data-main-wrap ">
4515 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main">
2305 4516 <div id="ays-chart-db-query">
2306 - <div class="<?= $html_class_prefix ?>-db-query-form">
4517 + <div class="<?php echo esc_attr($html_class_prefix) ?>-db-query-form">
2307 4518 <div id="db-query-form">
2308 4519 <input type="hidden" name="chart_id" value="1">
2309 - <textarea name="query" class="<?= $html_class_prefix ?>db-query" placeholder="<?php echo __( "Add your query here.", $this->plugin_name ); ?>"></textarea>
4520 + <textarea name="query" class="<?php echo esc_attr($html_class_prefix) ?>db-query" placeholder="<?php echo esc_html__( "Add your query here.", 'chart-builder' ); ?>"></textarea>
2310 4521 <div class='db-wizard-success'></div>
2311 4522 <div class='db-wizard-error'></div>
2312 4523 </div>
2313 4524 <div class="ays-chart-db-query-form-button ays-chart-buttons-group">
2314 4525 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-query-fetch">
2315 - <?php echo __( 'Show Results', "chart-builder" ); ?>
4526 + <?php echo esc_html__( 'Show Results', "chart-builder" ); ?>
2316 4527 </button>
2317 4528 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-query-show-on-chart">
2318 4529 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.722 6.59785C12.2407 3.47754 10.0017 1.90723 7.00009 1.90723C3.99697 1.90723 1.75947 3.47754 0.278215 6.59941C0.218802 6.72522 0.187988 6.86263 0.187988 7.00176C0.187988 7.14089 0.218802 7.27829 0.278215 7.4041C1.75947 10.5244 3.99853 12.0947 7.00009 12.0947C10.0032 12.0947 12.2407 10.5244 13.722 7.40254C13.8423 7.14941 13.8423 6.85566 13.722 6.59785ZM7.00009 10.9697C4.47978 10.9697 2.63447 9.6916 1.3329 7.00098C2.63447 4.31035 4.47978 3.03223 7.00009 3.03223C9.5204 3.03223 11.3657 4.31035 12.6673 7.00098C11.3673 9.6916 9.52197 10.9697 7.00009 10.9697ZM6.93759 4.25098C5.41884 4.25098 4.18759 5.48223 4.18759 7.00098C4.18759 8.51973 5.41884 9.75098 6.93759 9.75098C8.45634 9.75098 9.68759 8.51973 9.68759 7.00098C9.68759 5.48223 8.45634 4.25098 6.93759 4.25098ZM6.93759 8.75098C5.9704 8.75098 5.18759 7.96816 5.18759 7.00098C5.18759 6.03379 5.9704 5.25098 6.93759 5.25098C7.90478 5.25098 8.68759 6.03379 8.68759 7.00098C8.68759 7.96816 7.90478 8.75098 6.93759 8.75098Z" fill="#14524A" /></svg>
2319 - <?php echo __( 'Preview', "chart-builder" ); ?>
4530 + <?php echo esc_html__( 'Preview', "chart-builder" ); ?>
2320 4531 </button>
2321 4532 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-query-save">
2322 - <?php echo __( 'Save data', "chart-builder" ); ?>
4533 + <?php echo esc_html__( 'Save data', "chart-builder" ); ?>
2323 4534 </button>
2324 4535 </div>
2325 4536 </div>
2326 4537 <div class="db-wizard-hints">
@@ -2325,9 +4536,18 @@
2325 4536 </div>
2326 4537 <div class="db-wizard-hints">
2327 4538 <ul>
2328 4539 <!-- <li><//?php echo sprintf( __( 'For examples of queries and links to resources that you can use with this feature, please click %1$shere%2$s', $this->plugin_name ), '<a href="' . '#' . '" target="_blank">', '</a>' ); ?></li> -->
2329 - <li><?php echo sprintf( __( 'Use %1$sControl+Space%2$s for autocompleting keywords or table names.', $this->plugin_name ), '<span class="ays-chart-emboss">', '</span>' ); ?></li>
4540 + <li>
4541 + <?php
4542 + echo sprintf(
4543 + /* translators: %1$s and %2$s are HTML span tags for styling. */
4544 + esc_html__( 'Use %1$sControl+Space%2$s for autocompleting keywords or table names.', 'chart-builder' ),
4545 + '<span class="ays-chart-emboss">',
4546 + '</span>'
4547 + );
4548 + ?>
4549 + </li>
2330 4550 </ul>
2331 4551 </div>
2332 4552 </div>
2333 4553 </div>
@@ -2335,9 +4555,9 @@
2335 4555 </div>
2336 4556 <?php
2337 4557 $content = ob_get_clean();
2338 4558
2339 - $title = __( 'Connect to Database', $this->plugin_name ) . ' <a class="ays_help" data-bs-toggle="tooltip" title="' . __("Insert the Database query and the appropriate information from your Database will be displayed in the chart.",$this->plugin_name) . '">
4559 + $title = __( 'Connect to Database', 'chart-builder') . ' <a class="ays_help" data-bs-toggle="tooltip" title="' . __("Insert the Database query and the appropriate information from your Database will be displayed in the chart.", 'chart-builder') . '">
2340 4560 <i class="ays_fa ays_fa_info_circle"></i>
2341 4561 </a>';
2342 4562
2343 4563 $sources['import_from_db'] = array(
@@ -2358,16 +4578,16 @@
2358 4578 <div class="ays-pro-features-v2-big-buttons-box">
2359 4579 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
2360 4580 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
2361 4581 <div class="ays-pro-features-v2-upgrade-text">
2362 - <?php echo __("Upgrade" , "chart-builder"); ?>
4582 + <?php echo esc_html__("Upgrade" , "chart-builder"); ?>
2363 4583 </div>
2364 4584 </a>
2365 4585 </div>
2366 - <div class="<?= $html_class_prefix ?>source-data-main-wrap">
2367 - <div class="<?= $html_class_prefix ?>chart-source-data-main">
4586 + <div class="<?php echo esc_attr($html_class_prefix) ?>source-data-main-wrap ays-accordion-data-main-wrap ">
4587 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main">
2368 4588 <div class="form-group row mb-2">
2369 - <div class="col-sm-5 <?php echo esc_attr($html_class_prefix) ?>option-title">
4589 + <div class="col-sm-8 <?php echo esc_attr($html_class_prefix) ?>option-title">
2370 4590 <label class="form-label">
2371 4591 <?php echo esc_html(__('Use custom database settings for this chart', "chart-builder")); ?>
2372 4592 <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __(".","chart-builder") ); ?>">
2373 4593 <i class="ays_fa ays_fa_info_circle"></i>
@@ -2373,9 +4593,9 @@
2373 4593 <i class="ays_fa ays_fa_info_circle"></i>
2374 4594 </a>
2375 4595 </label>
2376 4596 </div>
2377 - <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
4597 + <div class="col-sm-3 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
2378 4598 <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
2379 4599 <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" type="checkbox" />
2380 4600 <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
2381 4601 </label>
@@ -2381,25 +4601,25 @@
2381 4601 </label>
2382 4602 </div>
2383 4603 </div>
2384 4604 <div id="ays-chart-external-db-query">
2385 - <div class="<?= $html_class_prefix ?>-db-query-form">
4605 + <div class="<?php echo esc_attr($html_class_prefix) ?>-db-query-form">
2386 4606 <div id="external-db-query-form">
2387 4607 <input type="hidden" name="chart_id" value="1">
2388 - <textarea name="query" class="<?= $html_class_prefix ?>external-db-query" placeholder="<?php echo __( "Add your query here.", $this->plugin_name ); ?>"></textarea>
4608 + <textarea name="query" class="<?php echo esc_attr($html_class_prefix) ?>external-db-query" placeholder="<?php echo esc_html__( "Add your query here.", 'chart-builder' ); ?>"></textarea>
2389 4609 <div class='db-wizard-success'></div>
2390 4610 <div class='db-wizard-error'></div>
2391 4611 </div>
2392 4612 <div class="ays-chart-db-query-form-button ays-chart-buttons-group">
2393 4613 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-external-query-fetch">
2394 - <?php echo __( 'Show Results', "chart-builder" ); ?>
4614 + <?php echo esc_html__( 'Show Results', "chart-builder" ); ?>
2395 4615 </button>
2396 4616 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-external-query-show-on-chart">
2397 4617 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.722 6.59785C12.2407 3.47754 10.0017 1.90723 7.00009 1.90723C3.99697 1.90723 1.75947 3.47754 0.278215 6.59941C0.218802 6.72522 0.187988 6.86263 0.187988 7.00176C0.187988 7.14089 0.218802 7.27829 0.278215 7.4041C1.75947 10.5244 3.99853 12.0947 7.00009 12.0947C10.0032 12.0947 12.2407 10.5244 13.722 7.40254C13.8423 7.14941 13.8423 6.85566 13.722 6.59785ZM7.00009 10.9697C4.47978 10.9697 2.63447 9.6916 1.3329 7.00098C2.63447 4.31035 4.47978 3.03223 7.00009 3.03223C9.5204 3.03223 11.3657 4.31035 12.6673 7.00098C11.3673 9.6916 9.52197 10.9697 7.00009 10.9697ZM6.93759 4.25098C5.41884 4.25098 4.18759 5.48223 4.18759 7.00098C4.18759 8.51973 5.41884 9.75098 6.93759 9.75098C8.45634 9.75098 9.68759 8.51973 9.68759 7.00098C9.68759 5.48223 8.45634 4.25098 6.93759 4.25098ZM6.93759 8.75098C5.9704 8.75098 5.18759 7.96816 5.18759 7.00098C5.18759 6.03379 5.9704 5.25098 6.93759 5.25098C7.90478 5.25098 8.68759 6.03379 8.68759 7.00098C8.68759 7.96816 7.90478 8.75098 6.93759 8.75098Z" fill="#14524A" /></svg>
2398 - <?php echo __( 'Preview', "chart-builder" ); ?>
4618 + <?php echo esc_html__( 'Preview', "chart-builder" ); ?>
2399 4619 </button>
2400 4620 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-external-query-save">
2401 - <?php echo __( 'Save data', "chart-builder" ); ?>
4621 + <?php echo esc_html__( 'Save data', "chart-builder" ); ?>
2402 4622 </button>
2403 4623 </div>
2404 4624 </div>
2405 4625 <div class="db-wizard-hints">
@@ -2404,9 +4624,18 @@
2404 4624 </div>
2405 4625 <div class="db-wizard-hints">
2406 4626 <ul>
2407 4627 <!-- <li><//?php echo sprintf( __( 'For examples of queries and links to resources that you can use with this feature, please click %1$shere%2$s', $this->plugin_name ), '<a href="' . '#' . '" target="_blank">', '</a>' ); ?></li> -->
2408 - <li><?php echo sprintf( __( 'Use %1$sControl+Space%2$s for autocompleting keywords or table names.', $this->plugin_name ), '<span class="ays-chart-emboss">', '</span>' ); ?></li>
4628 + <li>
4629 + <?php
4630 + echo sprintf(
4631 + /* translators: %1$s and %2$s are HTML span tags for styling. */
4632 + esc_html__( 'Use %1$sControl+Space%2$s for autocompleting keywords or table names.', 'chart-builder' ),
4633 + '<span class="ays-chart-emboss">',
4634 + '</span>'
4635 + );
4636 + ?>
4637 + </li>
2409 4638 </ul>
2410 4639 </div>
2411 4640 </div>
2412 4641 </div>
@@ -2414,9 +4643,9 @@
2414 4643 </div>
2415 4644 <?php
2416 4645 $content = ob_get_clean();
2417 4646
2418 - $title = __( 'Connect to External Database', $this->plugin_name ) . ' <a class="ays_help" data-bs-toggle="tooltip" title="' . __("Insert the Database query and fetch data from an external database.", $this->plugin_name) . '">
4647 + $title = __( 'Connect to External Database', 'chart-builder' ) . ' <a class="ays_help" data-bs-toggle="tooltip" title="' . __("Insert the Database query and fetch data from an external database.", 'chart-builder') . '">
2419 4648 <i class="ays_fa ays_fa_info_circle"></i>
2420 4649 </a>';
2421 4650
2422 4651 $sources['import_from_external_db'] = array(
@@ -2438,9 +4667,9 @@
2438 4667 $quiz_query_tooltips = $args['quiz_query_tooltips'];
2439 4668 $quiz_id = $args['quiz_id'];
2440 4669 $quiz_query = $args['quiz_query'];
2441 4670
2442 - if ( !is_plugin_active('quiz-maker/quiz-maker.php') ) {
4671 + if ( !is_plugin_active('quiz-maker/quiz-maker.php') && !is_plugin_active('quiz-maker-pro/quiz-maker-pro.php') ) {
2443 4672 // $title = sprintf( __( 'Get Quiz Maker data', "chart-builder" ) . ' <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="' . __("By using this option, you can display the quiz statistics by charts.%s %sNote:%s The Quiz Maker plugin must be active.","chart-builder") . '">
2444 4673 // <i class="ays_fa ays_fa_info_circle"></i>
2445 4674 // </a>', '<br>', '<b>', '</b>');
2446 4675 // $content = $this->blockquote_content_quiz;
@@ -2450,35 +4679,42 @@
2450 4679 // );
2451 4680
2452 4681 return $sources;
2453 4682 }
4683 + $quizes = $wpdb->get_results( // phpcs:ignore
4684 + $wpdb->prepare(
4685 + "SELECT `title`, `id` FROM {$wpdb->prefix}aysquiz_quizes
4686 + WHERE `published` = %d AND `question_ids` <> %s",
4687 + 1,
4688 + ''
4689 + ),
4690 + ARRAY_A
4691 + );
4692 +
2454 4693
2455 - $sql = "SELECT `title`, `id` FROM " . $wpdb->prefix . "aysquiz_quizes WHERE `published` = 1 AND `question_ids` <> ''";
2456 - $quizes = $wpdb->get_results($sql, "ARRAY_A");
2457 -
2458 4694 ob_start();
2459 4695 ?>
2460 4696 <div class="ays-accordion-data-main-wrap">
2461 4697 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main cb-changable-tab cb-pie_chart-tab cb-donut_chart-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
2462 4698 <div id="<?php echo esc_attr($html_class_prefix) ?>quiz-maker-form">
2463 - <input type="hidden" class="<?php echo esc_attr($html_class_prefix) ?>chart-id" value="<?= $chart_id ?>">
2464 - <div class="<?= $html_class_prefix ?>select-quiz-maker-data-query-container" id="<?= $html_class_prefix ?>quiz-queries">
2465 - <a class="ays_help <?= $html_class_prefix ?>quiz-query-tooltip" data-bs-toggle="tooltip" data-bs-html="true" title="<?php echo isset($quiz_query) ? $quiz_query_tooltips[$quiz_query] : __( 'Select a query to display quiz data.', $this->plugin_name ) ?>">
4699 + <input type="hidden" class="<?php echo esc_attr($html_class_prefix) ?>chart-id" value="<?php echo esc_attr($chart_id) ?>">
4700 + <div class="<?php echo esc_attr($html_class_prefix) ?>select-quiz-maker-data-query-container" id="<?php echo esc_attr($html_class_prefix) ?>quiz-queries">
4701 + <a class="ays_help <?php echo esc_attr($html_class_prefix) ?>quiz-query-tooltip" data-bs-toggle="tooltip" data-bs-html="true" title="<?php echo isset($quiz_query) ? esc_attr($quiz_query_tooltips[$quiz_query]) : esc_html__( 'Select a query to display quiz data.', 'chart-builder' ) ?>">
2466 4702 <i class="ays_fa ays_fa_info_circle"></i>
2467 4703 </a>
2468 - <select class="form-select" style="max-width: none;" id="<?php echo esc_attr($html_class_prefix) ?>select-quiz-maker-data-query" name="<?= $html_name_prefix ?>quiz_query">
2469 - <option value=""><?= __( "Select query", "chart-builder" ) ?></option>
4704 + <select class="form-select" style="max-width: none;" id="<?php echo esc_attr($html_class_prefix) ?>select-quiz-maker-data-query" name="<?php echo esc_attr($html_name_prefix) ?>quiz_query">
4705 + <option value=""><?php echo esc_html__( "Select query", "chart-builder" ) ?></option>
2470 4706 <?php foreach ( $quiz_queries as $id => $q):
2471 4707 $disabled = preg_replace('/[^0-9]/', '', $id) <= 6 ? "false" : "true" ; ?>
2472 - <option value="<?= $id ?>" <?= $quiz_query == $id ? 'selected' : '' ?> <?php echo 'is-pro="'.$disabled.'"'; ?>><?= $q ?></option>
4708 + <option value="<?php echo esc_attr($id) ?>" <?php echo $quiz_query == $id ? 'selected' : '' ?> <?php echo 'is-pro="'.esc_attr($disabled).'"'; ?>><?php echo esc_attr($q) ?></option>
2473 4709 <?php endforeach; ?>
2474 4710 </select>
2475 4711 </div>
2476 4712 <div class="<?php echo esc_attr($html_class_prefix) ?>select-quiz-maker-quiz-container">
2477 - <select class="form-select" style="max-width: none;" id="<?php echo esc_attr($html_class_prefix) ?>select-quiz-maker-quiz" name="<?= $html_name_prefix ?>quiz_id">
2478 - <option value="0"><?= __( "Select quiz", "chart-builder" ) ?></option>
4713 + <select class="form-select" style="max-width: none;" id="<?php echo esc_attr($html_class_prefix) ?>select-quiz-maker-quiz" name="<?php echo esc_attr($html_name_prefix) ?>quiz_id">
4714 + <option value="0"><?php echo esc_html__( "Select quiz", "chart-builder" ) ?></option>
2479 4715 <?php foreach ( $quizes as $quiz): ?>
2480 - <option value="<?= $quiz['id'] ?>" <?= $quiz_id == $quiz['id'] ? 'selected' : '' ?> ><?= $quiz['title'] ?></option>
4716 + <option value="<?php echo esc_attr($quiz['id']) ?>" <?php echo $quiz_id == $quiz['id'] ? 'selected' : '' ?> ><?php echo esc_html($quiz['title'] )?></option>
2481 4717 <?php endforeach; ?>
2482 4718 </select>
2483 4719 </div>
2484 4720 <div id="ays-chart-quiz-maker-success"></div>
@@ -2484,21 +4720,21 @@
2484 4720 <div id="ays-chart-quiz-maker-success"></div>
2485 4721 <div id="ays-chart-quiz-maker-error"></div>
2486 4722 <div class="ays-chart-buttons-group">
2487 4723 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-quiz-maker-fetch">
2488 - <?php echo __( 'Show Results', "chart-builder" ); ?>
4724 + <?php echo esc_html__( 'Show Results', "chart-builder" ); ?>
2489 4725 </button>
2490 4726 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-quiz-maker-show-on-chart">
2491 4727 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.722 6.59785C12.2407 3.47754 10.0017 1.90723 7.00009 1.90723C3.99697 1.90723 1.75947 3.47754 0.278215 6.59941C0.218802 6.72522 0.187988 6.86263 0.187988 7.00176C0.187988 7.14089 0.218802 7.27829 0.278215 7.4041C1.75947 10.5244 3.99853 12.0947 7.00009 12.0947C10.0032 12.0947 12.2407 10.5244 13.722 7.40254C13.8423 7.14941 13.8423 6.85566 13.722 6.59785ZM7.00009 10.9697C4.47978 10.9697 2.63447 9.6916 1.3329 7.00098C2.63447 4.31035 4.47978 3.03223 7.00009 3.03223C9.5204 3.03223 11.3657 4.31035 12.6673 7.00098C11.3673 9.6916 9.52197 10.9697 7.00009 10.9697ZM6.93759 4.25098C5.41884 4.25098 4.18759 5.48223 4.18759 7.00098C4.18759 8.51973 5.41884 9.75098 6.93759 9.75098C8.45634 9.75098 9.68759 8.51973 9.68759 7.00098C9.68759 5.48223 8.45634 4.25098 6.93759 4.25098ZM6.93759 8.75098C5.9704 8.75098 5.18759 7.96816 5.18759 7.00098C5.18759 6.03379 5.9704 5.25098 6.93759 5.25098C7.90478 5.25098 8.68759 6.03379 8.68759 7.00098C8.68759 7.96816 7.90478 8.75098 6.93759 8.75098Z" fill="#14524A" /></svg>
2492 - <?php echo __( 'Preview', "chart-builder" ); ?>
4728 + <?php echo esc_html__( 'Preview', "chart-builder" ); ?>
2493 4729 </button>
2494 4730 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-quiz-maker-save">
2495 - <?php echo __( 'Save data', "chart-builder" ); ?>
4731 + <?php echo esc_html__( 'Save data', "chart-builder" ); ?>
2496 4732 </button>
2497 4733 </div>
2498 4734 </div>
2499 4735 <div>
2500 - <a href="https://www.youtube.com/watch?v=vqx76dw6NC8" target="_blank" style="text-decoration:none;font-style:italic"><?php echo __('How to Connect Quizzes to Charts', 'chart-builder'); ?></a>
4736 + <a href="https://www.youtube.com/watch?v=vqx76dw6NC8" target="_blank" style="text-decoration:none;font-style:italic"><?php echo esc_html__('How to Connect Quizzes to Charts', 'chart-builder'); ?></a>
2501 4737 </div>
2502 4738 </div>
2503 4739 </div>
2504 4740 <?php
@@ -2503,11 +4739,18 @@
2503 4739 </div>
2504 4740 <?php
2505 4741 $content = ob_get_clean();
2506 4742
2507 - $title = sprintf( __( 'Get Quiz Maker data', $this->plugin_name ) . ' <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="' . __("By using this option, you can display the quiz statistics by charts.%s %sNote:%s The Quiz Maker plugin must be active.",$this->plugin_name) . '">
2508 - <i class="ays_fa ays_fa_info_circle"></i>
2509 - </a>', '<br>', '<b>', '</b>');
4743 + $title = sprintf(
4744 + /* translators: %1$s: Line break, %2$s: Opening bold tag, %3$s: Closing bold tag. */
4745 + __( 'Get Quiz Maker data', 'chart-builder' ) .
4746 + ' <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="' .
4747 + /* translators: %1$s: Line break, %2$s: Opening bold tag, %3$s: Closing bold tag. */
4748 + __( 'By using this option, you can display the quiz statistics by charts.%1$s %2$sNote:%3$s The Quiz Maker plugin must be active.', 'chart-builder' ) . '">
4749 + <i class="ays_fa ays_fa_info_circle"></i>
4750 + </a>',
4751 + '<br>', '<b>', '</b>'
4752 + );
2510 4753 $sources['quiz_maker'] = array(
2511 4754 'content' => $content,
2512 4755 'title' => $title
2513 4756 );
@@ -2530,23 +4773,23 @@
2530 4773 <div class="ays-pro-features-v2-video-button"></div>
2531 4774 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
2532 4775 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
2533 4776 <div class="ays-pro-features-v2-upgrade-text">
2534 - <?php echo __("Upgrade" , "chart-builder"); ?>
4777 + <?php echo esc_html__("Upgrade" , "chart-builder"); ?>
2535 4778 </div>
2536 4779 </a>
2537 4780 </div>
2538 - <div class="<?= $html_class_prefix ?>chart-source-data-main">
4781 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main ays-accordion-data-main-wrap ">
2539 4782 <div id="ays-chart-woocommerce-datas">
2540 - <div class="<?= $html_class_prefix ?>woocommerce-datas-form">
4783 + <div class="<?php echo esc_attr($html_class_prefix) ?>woocommerce-datas-form">
2541 4784 <div id="woocommerce-datas-form">
2542 - <input type="hidden" name="chart_id" value="<?= $chart_id ?>">
2543 - <div class="<?= $html_class_prefix ?>woocommerce-datas-query-container" id="<?= $html_class_prefix ?>woocommerce-datas-container-id" >
2544 - <a class="ays_help <?= $html_class_prefix ?>woocommerce-datas-tooltip" data-bs-toggle="tooltip" data-bs-html="true" title="<?php echo __( 'Select a query to display data.', $this->plugin_name ) ?>">
4785 + <input type="hidden" name="chart_id" value="<?php echo esc_attr( $chart_id )?>">
4786 + <div class="<?php echo esc_attr($html_class_prefix) ?>woocommerce-datas-query-container" id="<?php echo esc_attr($html_class_prefix) ?>woocommerce-datas-container-id" >
4787 + <a class="ays_help <?php echo esc_attr($html_class_prefix) ?>woocommerce-datas-tooltip" data-bs-toggle="tooltip" data-bs-html="true" title="<?php echo esc_html__( 'Select a query to display data.', 'chart-builder' ) ?>">
2545 4788 <i class="ays_fa ays_fa_info_circle"></i>
2546 4789 </a>
2547 - <select class="form-select" style="max-width: none;" id="<?= $html_class_prefix ?>woocommerce-datas-select" name="<?php echo esc_attr($html_name_prefix); ?>settings[woocommerce_data_id]">
2548 - <option value=""><?= __( 'Select query', $this->plugin_name ) ?></option>
4790 + <select class="form-select" style="max-width: none;" id="<?php echo esc_attr($html_class_prefix) ?>woocommerce-datas-select" name="<?php echo esc_attr($html_name_prefix); ?>settings[woocommerce_data_id]">
4791 + <option value=""><?php echo esc_html__( 'Select query', 'chart-builder') ?></option>
2549 4792 </select>
2550 4793 </div>
2551 4794 <div class='ays-chart-woocommerce-datas-success'></div>
2552 4795 <div class='ays-chart-woocommerce-datas-error'></div>
@@ -2552,16 +4795,16 @@
2552 4795 <div class='ays-chart-woocommerce-datas-error'></div>
2553 4796 </div>
2554 4797 <div class="ays-chart-buttons-group">
2555 4798 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-woocommerce-datas-fetch">
2556 - <?php echo __( 'Show Results', "chart-builder" ); ?>
4799 + <?php echo esc_html__( 'Show Results', "chart-builder" ); ?>
2557 4800 </button>
2558 4801 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-woocommerce-datas-show-on-chart">
2559 4802 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.722 6.59785C12.2407 3.47754 10.0017 1.90723 7.00009 1.90723C3.99697 1.90723 1.75947 3.47754 0.278215 6.59941C0.218802 6.72522 0.187988 6.86263 0.187988 7.00176C0.187988 7.14089 0.218802 7.27829 0.278215 7.4041C1.75947 10.5244 3.99853 12.0947 7.00009 12.0947C10.0032 12.0947 12.2407 10.5244 13.722 7.40254C13.8423 7.14941 13.8423 6.85566 13.722 6.59785ZM7.00009 10.9697C4.47978 10.9697 2.63447 9.6916 1.3329 7.00098C2.63447 4.31035 4.47978 3.03223 7.00009 3.03223C9.5204 3.03223 11.3657 4.31035 12.6673 7.00098C11.3673 9.6916 9.52197 10.9697 7.00009 10.9697ZM6.93759 4.25098C5.41884 4.25098 4.18759 5.48223 4.18759 7.00098C4.18759 8.51973 5.41884 9.75098 6.93759 9.75098C8.45634 9.75098 9.68759 8.51973 9.68759 7.00098C9.68759 5.48223 8.45634 4.25098 6.93759 4.25098ZM6.93759 8.75098C5.9704 8.75098 5.18759 7.96816 5.18759 7.00098C5.18759 6.03379 5.9704 5.25098 6.93759 5.25098C7.90478 5.25098 8.68759 6.03379 8.68759 7.00098C8.68759 7.96816 7.90478 8.75098 6.93759 8.75098Z" fill="#14524A" /></svg>
2560 - <?php echo __( 'Preview', "chart-builder" ); ?>
4803 + <?php echo esc_html__( 'Preview', "chart-builder" ); ?>
2561 4804 </button>
2562 4805 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns" id="ays-chart-woocommerce-datas-save">
2563 - <?php echo __( 'Save data', "chart-builder" ); ?>
4806 + <?php echo esc_html__( 'Save data', "chart-builder" ); ?>
2564 4807 </button>
2565 4808 </div>
2566 4809 </div>
2567 4810 </div>
@@ -2568,12 +4811,19 @@
2568 4811 </div>
2569 4812 </div>
2570 4813 <?php
2571 4814 $content = ob_get_clean();
2572 -
2573 - $title = sprintf( __( 'Get WooCommerce data', $this->plugin_name ) . ' <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="' . __("By using this option, you can display the WooCommerce statistics by charts.%s %sNote:%s The WooCommerce plugin must be active.",$this->plugin_name) . '">
2574 - <i class="ays_fa ays_fa_info_circle"></i>
2575 - </a>', '<br>', '<b>', '</b>');
4815 +
4816 + $title = sprintf(
4817 + /* translators: %1$s: Line break, %2$s: Opening bold tag, %3$s: Closing bold tag. */
4818 + esc_html__( 'Get WooCommerce data', 'chart-builder' ) .
4819 + ' <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="' .
4820 + /* translators: %1$s: Line break, %2$s: Opening bold tag, %3$s: Closing bold tag. */
4821 + __( 'By using this option, you can display the WooCommerce statistics by charts.%1$s %2$sNote:%3$s The WooCommerce plugin must be active.', 'chart-builder' ) . '">
4822 + <i class="ays_fa ays_fa_info_circle"></i>
4823 + </a>',
4824 + '<br>', '<b>', '</b>'
4825 + );
2576 4826 $sources['woocommerce'] = array(
2577 4827 'content' => $content,
2578 4828 'title' => $title
2579 4829 );
@@ -2587,9 +4837,10 @@
2587 4837 $source = $args['source'];
2588 4838 $source = isset($source["commonTypeCharts"]) ? $source["commonTypeCharts"] : $source;
2589 4839 $settings = $args['settings'];
2590 4840 $source_chart_type = $args['source_chart_type'];
2591 - $action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : 'add';
4841 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended
4842 + $action = isset($_GET['action']) ? sanitize_text_field(wp_unslash($_GET['action'])) : 'add';
2592 4843
2593 4844 if (isset($source) && !empty($source)) {
2594 4845 if ( !isset( $source[0] ) ) {
2595 4846 if (count($source[1]) > 2) {
@@ -2594,15 +4845,15 @@
2594 4845 if ( !isset( $source[0] ) ) {
2595 4846 if (count($source[1]) > 2) {
2596 4847 $titles = array();
2597 4848 for ($i = 0; $i < count($source[1]); $i++) {
2598 - array_push($titles, __("Title", $this->plugin_name).$i);
4849 + array_push($titles, __("Title", 'chart-builder').$i);
2599 4850 }
2600 4851 $source[0] = $titles;
2601 4852 } else {
2602 4853 $source[0] = array(
2603 - __("Country", $this->plugin_name),
2604 - __("Population", $this->plugin_name),
4854 + __("Country", 'chart-builder'),
4855 + __("Population", 'chart-builder'),
2605 4856 );
2606 4857 }
2607 4858
2608 4859 ksort($source);
@@ -2624,9 +4875,9 @@
2624 4875 ?>
2625 4876 <div class="ays-accordion-data-main-wrap">
2626 4877 <div class="<?php echo esc_attr($html_class_prefix) ?>source-data-main-wrap">
2627 4878 <?php if($source_chart_type != 'org_chart'): ?>
2628 - <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main <?= $html_class_prefix ?>chart-source-data-manual cb-changable-manual cb-pie_chart-manual cb-bar_chart-manual cb-column_chart-manual cb-line_chart-manual cb-donut_chart-manual display_none">
4879 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main <?php echo esc_attr( $html_class_prefix) ?>chart-source-data-manual cb-changable-manual cb-pie_chart-manual cb-bar_chart-manual cb-column_chart-manual cb-line_chart-manual cb-donut_chart-manual display_none">
2629 4880 <!-- <div class="<//?= $html_class_prefix ?>icons-box">
2630 4881 <img class="<//?= $html_class_prefix ?>add-new-row" src="<//?php echo CHART_BUILDER_ADMIN_URL; ?>/images/icons/add-circle-outline.svg">
2631 4882 </div> -->
2632 4883 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-content-container">
@@ -2637,14 +4888,14 @@
2637 4888 if ($source_id == 0): ?>
2638 4889 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-edit-block" data-source-id = "<?php echo esc_attr($source_id); ?>">
2639 4890 <div class="ays-chart-empty-data-table-cell"></div>
2640 4891 <?php foreach($source_value as $each_source_id => $each_source_value): ?>
2641 - <div class="<?= $html_class_prefix ?>chart-source-data-input-box <?= $html_class_prefix ?>chart-source-title-box" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
4892 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-box <?php echo esc_attr($html_class_prefix) ?>chart-source-title-box" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
2642 4893 <svg class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-remove-block <?php echo esc_attr($html_class_prefix) ?>chart-source-data-remove-col" data-trigger="hover" data-bs-toggle="tooltip" title="Delete column" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" width="10px">
2643 4894 <path d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z" style="fill: #b8b8b8;" />
2644 4895 </svg>
2645 4896 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-titles-box-item">
2646 - <input type="text" class="ays-text-input form-control <?= $html_class_prefix ?>chart-source-title-input" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo stripslashes(esc_attr($each_source_value)); ?>" <?php echo $each_source_id == 0 ? "style='min-width:100px'" : "" ?>>
4897 + <input type="text" class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>chart-source-title-input" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo esc_attr(stripslashes($each_source_value)); ?>" <?php echo $each_source_id == 0 ? "style='min-width:100px'" : "" ?>>
2647 4898 <?php if ($each_source_id !== 0): ?>
2648 4899 <svg class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-sort" data-sort-order="asc" xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 320 512">
2649 4900 <path d="M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z" style="fill: #b8b8b8;" />
2650 4901 </svg>
@@ -2666,14 +4917,14 @@
2666 4917 </svg>
2667 4918 </div>
2668 4919 <?php foreach($source_value as $each_source_id => $each_source_value): ?>
2669 4920 <?php if ($each_source_id == 0): ?>
2670 - <div class="<?= $html_class_prefix ?>chart-source-data-input-box <?= $html_class_prefix ?>chart-source-data-name-input-box" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
2671 - <input type="text" class="ays-text-input form-control" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo htmlspecialchars(esc_attr($each_source_value)); ?>">
4921 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-box <?php echo esc_attr($html_class_prefix) ?>chart-source-data-name-input-box" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
4922 + <input type="text" class="ays-text-input form-control" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo esc_attr(htmlspecialchars($each_source_value)); ?>">
2672 4923 </div>
2673 4924 <?php else: ?>
2674 4925 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-box <?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-number" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
2675 - <input type="number" class="ays-text-input form-control" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo stripslashes(esc_attr($each_source_value)); ?>" step="any">
4926 + <input type="number" class="ays-text-input form-control" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo esc_attr(stripslashes($each_source_value)); ?>" step="any">
2676 4927 </div>
2677 4928 <?php endif; ?>
2678 4929 <?php endforeach; ?>
2679 4930 </div>
@@ -2680,16 +4931,16 @@
2680 4931 <?php endif; ?>
2681 4932 <?php endif; ?>
2682 4933 <?php endforeach; ?>
2683 4934 <?php else:?>
2684 - <div class="<?= $html_class_prefix ?>chart-source-data-edit-block">
4935 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-edit-block">
2685 4936 <div style="height: 63.11px; padding: 0 15px;"></div>
2686 - <div class="<?= $html_class_prefix ?>chart-source-data-input-box <?= $html_class_prefix ?>chart-source-title-box">
4937 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-box <?php echo esc_attr($html_class_prefix) ?>chart-source-title-box">
2687 4938 <svg class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-remove-block <?php echo esc_attr($html_class_prefix) ?>chart-source-data-remove-col" data-trigger="hover" data-bs-toggle="tooltip" title="Delete column" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" width="10px">
2688 4939 <path d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z" style="fill: #b8b8b8;" />
2689 4940 </svg>
2690 4941 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-titles-box-item">
2691 - <input type="text" class="ays-text-input form-control <?= $html_class_prefix ?>chart-source-title-input" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[0][]" style='min-width:100px'>
4942 + <input type="text" class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>chart-source-title-input" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[0][]" style='min-width:100px'>
2692 4943 <svg class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-sort" data-sort-order="asc" xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 320 512">
2693 4944 <path d="M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z" style="fill: #b8b8b8;" />
2694 4945 </svg>
2695 4946 </div>
@@ -2716,30 +4967,30 @@
2716 4967 <?php endif; ?>
2717 4968 </div>
2718 4969 <div class="<?php echo esc_attr($html_class_prefix) ?>icons-box <?php echo esc_attr($html_class_prefix) ?>add-new-column-box cb-changable-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt display_none">
2719 4970 <img class="<?php echo esc_attr($html_class_prefix) ?>add-new-column" src="<?php echo esc_url(CHART_BUILDER_ADMIN_URL); ?>/images/icons/add-circle-outline.svg">
2720 - <?php echo __( 'Add column', "chart-builder" ); ?>
4971 + <?php echo esc_html__( 'Add column', "chart-builder" ); ?>
2721 4972 </div>
2722 4973 </div>
2723 4974 <div class="<?php echo esc_attr($html_class_prefix) ?>icons-box <?php echo esc_attr($html_class_prefix) ?>add-new-row-box">
2724 4975 <img class="<?php echo esc_attr($html_class_prefix) ?>add-new-row" src="<?php echo esc_url(CHART_BUILDER_ADMIN_URL); ?>/images/icons/add-circle-outline.svg">
2725 - <?php echo __( 'Add row', "chart-builder" ); ?>
4976 + <?php echo esc_html__( 'Add row', "chart-builder" ); ?>
2726 4977 </div>
2727 4978 <br>
2728 4979 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns <?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttn">
2729 4980 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.722 6.59785C12.2407 3.47754 10.0017 1.90723 7.00009 1.90723C3.99697 1.90723 1.75947 3.47754 0.278215 6.59941C0.218802 6.72522 0.187988 6.86263 0.187988 7.00176C0.187988 7.14089 0.218802 7.27829 0.278215 7.4041C1.75947 10.5244 3.99853 12.0947 7.00009 12.0947C10.0032 12.0947 12.2407 10.5244 13.722 7.40254C13.8423 7.14941 13.8423 6.85566 13.722 6.59785ZM7.00009 10.9697C4.47978 10.9697 2.63447 9.6916 1.3329 7.00098C2.63447 4.31035 4.47978 3.03223 7.00009 3.03223C9.5204 3.03223 11.3657 4.31035 12.6673 7.00098C11.3673 9.6916 9.52197 10.9697 7.00009 10.9697ZM6.93759 4.25098C5.41884 4.25098 4.18759 5.48223 4.18759 7.00098C4.18759 8.51973 5.41884 9.75098 6.93759 9.75098C8.45634 9.75098 9.68759 8.51973 9.68759 7.00098C9.68759 5.48223 8.45634 4.25098 6.93759 4.25098ZM6.93759 8.75098C5.9704 8.75098 5.18759 7.96816 5.18759 7.00098C5.18759 6.03379 5.9704 5.25098 6.93759 5.25098C7.90478 5.25098 8.68759 6.03379 8.68759 7.00098C8.68759 7.96816 7.90478 8.75098 6.93759 8.75098Z" fill="#14524A" /></svg>
2730 - <?php echo __( 'Preview', "chart-builder" ); ?>
4981 + <?php echo esc_html__( 'Preview', "chart-builder" ); ?>
2731 4982 </button>
2732 4983 </div>
2733 4984 <?php endif; ?>
2734 - <div class="<?= $html_class_prefix ?>chart-source-data-main-org-type display_none cb-changable-manual cb-org_chart-manual">
2735 - <div class="<?= $html_class_prefix ?>chart-source-data-content-org-type">
2736 - <ul id="<?= $html_class_prefix ?>chart-source-data-edit-tree-content">
4985 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main-org-type display_none cb-changable-manual cb-org_chart-manual">
4986 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-content-org-type">
4987 + <ul id="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-edit-tree-content">
2737 4988 </ul>
2738 4989 </div>
2739 4990 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns <?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttn">
2740 4991 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.722 6.59785C12.2407 3.47754 10.0017 1.90723 7.00009 1.90723C3.99697 1.90723 1.75947 3.47754 0.278215 6.59941C0.218802 6.72522 0.187988 6.86263 0.187988 7.00176C0.187988 7.14089 0.218802 7.27829 0.278215 7.4041C1.75947 10.5244 3.99853 12.0947 7.00009 12.0947C10.0032 12.0947 12.2407 10.5244 13.722 7.40254C13.8423 7.14941 13.8423 6.85566 13.722 6.59785ZM7.00009 10.9697C4.47978 10.9697 2.63447 9.6916 1.3329 7.00098C2.63447 4.31035 4.47978 3.03223 7.00009 3.03223C9.5204 3.03223 11.3657 4.31035 12.6673 7.00098C11.3673 9.6916 9.52197 10.9697 7.00009 10.9697ZM6.93759 4.25098C5.41884 4.25098 4.18759 5.48223 4.18759 7.00098C4.18759 8.51973 5.41884 9.75098 6.93759 9.75098C8.45634 9.75098 9.68759 8.51973 9.68759 7.00098C9.68759 5.48223 8.45634 4.25098 6.93759 4.25098ZM6.93759 8.75098C5.9704 8.75098 5.18759 7.96816 5.18759 7.00098C5.18759 6.03379 5.9704 5.25098 6.93759 5.25098C7.90478 5.25098 8.68759 6.03379 8.68759 7.00098C8.68759 7.96816 7.90478 8.75098 6.93759 8.75098Z" fill="#14524A" /></svg>
2741 - <?php echo __( 'Preview', "chart-builder" ); ?>
4992 + <?php echo esc_html__( 'Preview', "chart-builder" ); ?>
2742 4993 </button>
2743 4994 </div>
2744 4995 </div>
2745 4996 </div>
@@ -2764,15 +5015,16 @@
2764 5015 $source = $args['source'];
2765 5016 $source = isset($source["commonTypeCharts"]) ? $source["commonTypeCharts"] : $source;
2766 5017 $settings = $args['settings'];
2767 5018 $source_chart_type = $args['source_chart_type'];
2768 - $action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : 'add';
5019 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended
5020 + $action = isset($_GET['action']) ? sanitize_text_field((wp_unslash($_GET['action']))) : 'add';
2769 5021
2770 5022 ob_start();
2771 5023 ?>
2772 5024 <div class="ays-accordion-data-main-wrap">
2773 5025 <div class="<?php echo esc_attr($html_class_prefix) ?>source-data-main-wrap">
2774 - <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main <?= $html_class_prefix ?>chart-source-data-manual">
5026 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-main <?php echo esc_attr($html_class_prefix) ?>chart-source-data-manual">
2775 5027 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-content-container">
2776 5028 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-content">
2777 5029 <?php if(!empty($source)):
2778 5030 foreach($source as $source_id => $source_value):
@@ -2780,14 +5032,14 @@
2780 5032 if ($source_id == 0): ?>
2781 5033 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-edit-block" data-source-id = "<?php echo esc_attr($source_id); ?>">
2782 5034 <div class="ays-chart-empty-data-table-cell"></div>
2783 5035 <?php foreach($source_value as $each_source_id => $each_source_value): ?>
2784 - <div class="<?= $html_class_prefix ?>chart-source-data-input-box <?= $html_class_prefix ?>chart-source-title-box" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
5036 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-box <?php echo esc_attr($html_class_prefix) ?>chart-source-title-box" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
2785 5037 <svg class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-remove-block <?php echo esc_attr($html_class_prefix) ?>chart-source-data-remove-col" data-trigger="hover" data-bs-toggle="tooltip" title="Delete column" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" width="10px">
2786 5038 <path d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z" style="fill: #b8b8b8;" />
2787 5039 </svg>
2788 5040 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-titles-box-item">
2789 - <input type="text" class="ays-text-input form-control <?= $html_class_prefix ?>chart-source-title-input" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo stripslashes(esc_attr($each_source_value)); ?>" <?php echo $each_source_id == 0 ? "style='min-width:100px'" : "" ?>>
5041 + <input type="text" class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>chart-source-title-input" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo esc_attr(stripslashes($each_source_value)); ?>" <?php echo $each_source_id == 0 ? "style='min-width:100px'" : "" ?>>
2790 5042 <?php if ($each_source_id !== 0): ?>
2791 5043 <svg class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-sort" data-sort-order="asc" xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 320 512">
2792 5044 <path d="M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z" style="fill: #b8b8b8;" />
2793 5045 </svg>
@@ -2809,14 +5061,14 @@
2809 5061 </svg>
2810 5062 </div>
2811 5063 <?php foreach($source_value as $each_source_id => $each_source_value): ?>
2812 5064 <?php if ($each_source_id == 0): ?>
2813 - <div class="<?= $html_class_prefix ?>chart-source-data-input-box <?= $html_class_prefix ?>chart-source-data-name-input-box" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
2814 - <input type="text" class="ays-text-input form-control" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo htmlspecialchars(esc_attr($each_source_value)); ?>">
5065 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-box <?php echo esc_attr($html_class_prefix) ?>chart-source-data-name-input-box" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
5066 + <input type="text" class="ays-text-input form-control" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo esc_attr(htmlspecialchars($each_source_value)); ?>">
2815 5067 </div>
2816 5068 <?php else: ?>
2817 5069 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-box <?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-number" data-cell-id = "<?php echo esc_attr($each_source_id); ?>">
2818 - <input type="number" class="ays-text-input form-control" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo stripslashes(esc_attr($each_source_value)); ?>" step="any">
5070 + <input type="number" class="ays-text-input form-control" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[<?php echo esc_attr($source_id); ?>][]" value="<?php echo esc_attr(stripslashes($each_source_value)); ?>" step="any">
2819 5071 </div>
2820 5072 <?php endif; ?>
2821 5073 <?php endforeach; ?>
2822 5074 </div>
@@ -2823,16 +5075,16 @@
2823 5075 <?php endif; ?>
2824 5076 <?php endif; ?>
2825 5077 <?php endforeach; ?>
2826 5078 <?php else:?>
2827 - <div class="<?= $html_class_prefix ?>chart-source-data-edit-block">
5079 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-edit-block">
2828 5080 <div style="height: 63.11px; padding: 0 15px;"></div>
2829 - <div class="<?= $html_class_prefix ?>chart-source-data-input-box <?= $html_class_prefix ?>chart-source-title-box">
5081 + <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-input-box <?php echo esc_attr($html_class_prefix) ?>chart-source-title-box">
2830 5082 <svg class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-remove-block <?php echo esc_attr($html_class_prefix) ?>chart-source-data-remove-col" data-trigger="hover" data-bs-toggle="tooltip" title="Delete column" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" width="10px">
2831 5083 <path d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z" style="fill: #b8b8b8;" />
2832 5084 </svg>
2833 5085 <div class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-titles-box-item">
2834 - <input type="text" class="ays-text-input form-control <?= $html_class_prefix ?>chart-source-title-input" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[0][]" style='min-width:100px'>
5086 + <input type="text" class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>chart-source-title-input" name="<?php echo esc_attr($html_name_prefix); ?>chart_source_data[0][]" style='min-width:100px'>
2835 5087 <svg class="<?php echo esc_attr($html_class_prefix) ?>chart-source-data-sort" data-sort-order="asc" xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 320 512">
2836 5088 <path d="M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z" style="fill: #b8b8b8;" />
2837 5089 </svg>
2838 5090 </div>
@@ -2859,19 +5111,19 @@
2859 5111 <?php endif; ?>
2860 5112 </div>
2861 5113 <div class="<?php echo esc_attr($html_class_prefix) ?>icons-box <?php echo esc_attr($html_class_prefix) ?>add-new-column-box cb-changable-opt cb-bar_chart-opt cb-line_chart-opt display_none">
2862 5114 <img class="<?php echo esc_attr($html_class_prefix) ?>add-new-column" src="<?php echo esc_url(CHART_BUILDER_ADMIN_URL); ?>/images/icons/add-circle-outline.svg">
2863 - <?php echo __( 'Add column', "chart-builder" ); ?>
5115 + <?php echo esc_html__( 'Add column', "chart-builder" ); ?>
2864 5116 </div>
2865 5117 </div>
2866 5118 <div class="<?php echo esc_attr($html_class_prefix) ?>icons-box <?php echo esc_attr($html_class_prefix) ?>add-new-row-box">
2867 5119 <img class="<?php echo esc_attr($html_class_prefix) ?>add-new-row" src="<?php echo esc_url(CHART_BUILDER_ADMIN_URL); ?>/images/icons/add-circle-outline.svg">
2868 - <?php echo __( 'Add row', "chart-builder" ); ?>
5120 + <?php echo esc_html__( 'Add row', "chart-builder" ); ?>
2869 5121 </div>
2870 5122 <br>
2871 5123 <button class="<?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttns <?php echo esc_attr($html_class_prefix) ?>show-on-chart-bttn">
2872 5124 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.722 6.59785C12.2407 3.47754 10.0017 1.90723 7.00009 1.90723C3.99697 1.90723 1.75947 3.47754 0.278215 6.59941C0.218802 6.72522 0.187988 6.86263 0.187988 7.00176C0.187988 7.14089 0.218802 7.27829 0.278215 7.4041C1.75947 10.5244 3.99853 12.0947 7.00009 12.0947C10.0032 12.0947 12.2407 10.5244 13.722 7.40254C13.8423 7.14941 13.8423 6.85566 13.722 6.59785ZM7.00009 10.9697C4.47978 10.9697 2.63447 9.6916 1.3329 7.00098C2.63447 4.31035 4.47978 3.03223 7.00009 3.03223C9.5204 3.03223 11.3657 4.31035 12.6673 7.00098C11.3673 9.6916 9.52197 10.9697 7.00009 10.9697ZM6.93759 4.25098C5.41884 4.25098 4.18759 5.48223 4.18759 7.00098C4.18759 8.51973 5.41884 9.75098 6.93759 9.75098C8.45634 9.75098 9.68759 8.51973 9.68759 7.00098C9.68759 5.48223 8.45634 4.25098 6.93759 4.25098ZM6.93759 8.75098C5.9704 8.75098 5.18759 7.96816 5.18759 7.00098C5.18759 6.03379 5.9704 5.25098 6.93759 5.25098C7.90478 5.25098 8.68759 6.03379 8.68759 7.00098C8.68759 7.96816 7.90478 8.75098 6.93759 8.75098Z" fill="#14524A" /></svg>
2873 - <?php echo __( 'Preview', "chart-builder" ); ?>
5125 + <?php echo esc_html__( 'Preview', "chart-builder" ); ?>
2874 5126 </button>
2875 5127 </div>
2876 5128 </div>
2877 5129 </div>
@@ -2927,9 +5179,9 @@
2927 5179
2928 5180 $sources[] = $content;
2929 5181 }
2930 5182 $content_for_escape = implode('' , $sources );
2931 - echo html_entity_decode(esc_html( $content_for_escape ));
5183 + echo html_entity_decode( $content_for_escape );
2932 5184 }
2933 5185
2934 5186 public function settings_contents_general_settings( $sources, $args ){
2935 5187 $html_class_prefix = $args['html_class_prefix'];
@@ -3083,8 +5335,9 @@
3083 5335 $settings = $args['settings'];
3084 5336
3085 5337 $show_title = $settings['show_title'];
3086 5338 $show_description = $settings['show_description'];
5339 + $enable_interactivity = $settings['enable_interactivity'];
3087 5340
3088 5341 ob_start();
3089 5342 ?>
3090 5343 <div class="ays-accordion-data-main-wrap">
@@ -3167,8 +5420,24 @@
3167 5420 <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
3168 5421 </label>
3169 5422 </div>
3170 5423 </div> <!-- Show description -->
5424 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5425 + <div class="col-sm-5 <?php echo esc_attr($html_class_prefix) ?>option-title">
5426 + <label for="ays-chart-option-enable-interactivity" class="form-label">
5427 + <?php echo esc_html(__('Enable interactivity', "chart-builder")); ?>
5428 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Decide if the chart shows events based on user actions or responds to user interaction. If not, the chart won't generate 'select' or similar interaction-based events (but will generate ready or error events), and won't show hovertext or change based on user input.","chart-builder") ); ?>">
5429 + <i class="ays_fa ays_fa_info_circle"></i>
5430 + </a>
5431 + </label>
5432 + </div>
5433 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
5434 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
5435 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-enable-interactivity" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[enable_interactivity]" value="on" <?php echo esc_attr($enable_interactivity); ?> >
5436 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
5437 + </label>
5438 + </div>
5439 + </div> <!-- Enable interactivity -->
3171 5440 </div>
3172 5441 </div>
3173 5442 <?php
3174 5443 $content = ob_get_clean();
@@ -3204,9 +5473,9 @@
3204 5473 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3205 5474 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3206 5475 <label for="ays-chart-option-tooltip-trigger">
3207 5476 <?php echo esc_html(__( "Trigger", "chart-builder" )); ?>
3208 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Choose when to display the results on the chart.","chart-builder") ); ?>">
5477 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Choose when to display the results on the chart.","chart-builder") )); ?>">
3209 5478 <i class="ays_fa ays_fa_info_circle"></i>
3210 5479 </a>
3211 5480 </label>
3212 5481 </div>
@@ -3255,9 +5524,9 @@
3255 5524 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3256 5525 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3257 5526 <label for="ays-chart-option-tooltip-font-size" class="form-label">
3258 5527 <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
3259 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The font size for all text within the chart tooltip, specified in pixels. Please note that if an invalid value is entered, it will revert to the default global font size.","chart-builder") ); ?>">
5528 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("The font size for all text within the chart tooltip, specified in pixels. Please note that if an invalid value is entered, it will revert to the default global font size.","chart-builder") )); ?>">
3260 5529 <i class="ays_fa ays_fa_info_circle"></i>
3261 5530 </a>
3262 5531 </label>
3263 5532 </div>
@@ -3285,9 +5554,9 @@
3285 5554 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3286 5555 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3287 5556 <label for="ays-chart-option-tooltip-bold">
3288 5557 <?php echo esc_html(__( "Bold text", "chart-builder" )); ?>
3289 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Choose when to display the results on the chart.","chart-builder") ); ?>">
5558 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Make the tooltip text bold. Choose 'Enable' to apply bold formatting, 'Disable' for normal text, or 'Default' to use the chart's default font weight.","chart-builder") )); ?>">
3290 5559 <i class="ays_fa ays_fa_info_circle"></i>
3291 5560 </a>
3292 5561 </label>
3293 5562 </div>
@@ -3318,8 +5587,120 @@
3318 5587
3319 5588 return $sources;
3320 5589 }
3321 5590
5591 + public function settings_contents_tooltip_settings_chartjs( $sources, $args ){
5592 + $html_class_prefix = $args['html_class_prefix'];
5593 + $html_name_prefix = $args['html_name_prefix'];
5594 + $settings = $args['settings'];
5595 +
5596 + $tooltip_text_color = $settings['tooltip_text_color'];
5597 + $show_color_code = $settings['show_color_code'];
5598 + $tooltip_italic = $settings['tooltip_italic'];
5599 + $tooltip_font_size = $settings['tooltip_font_size'];
5600 + $tooltip_bold = $settings['tooltip_bold'];
5601 + $tooltip_bold_options = $settings['tooltip_bold_options'];
5602 +
5603 + ob_start();
5604 + ?>
5605 + <div class="ays-accordion-data-main-wrap ">
5606 + <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
5607 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5608 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5609 + <label for="ays-chart-option-show-color-code">
5610 + <?php echo esc_html(__( "Show Color Code", "chart-builder" )); ?>
5611 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color will be displayed while clicking on a particular part of the chart.","chart-builder") ); ?>">
5612 + <i class="ays_fa ays_fa_info_circle"></i>
5613 + </a>
5614 + </label>
5615 + </div>
5616 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
5617 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
5618 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-show-color-code" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[show_color_code]" value="on" <?php echo esc_attr($show_color_code); ?> >
5619 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
5620 + </label>
5621 + </div>
5622 + </div> <!-- Show Color Code -->
5623 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5624 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5625 + <label for="ays-chart-option-tooltip-text-color">
5626 + <?php echo esc_html(__( "Text color", "chart-builder" )); ?>
5627 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color of the tooltip text.","chart-builder") ); ?>">
5628 + <i class="ays_fa ays_fa_info_circle"></i>
5629 + </a>
5630 + </label>
5631 + </div>
5632 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
5633 + <input id="ays-chart-option-tooltip-text-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[tooltip_text_color]" value="<?php echo esc_attr($tooltip_text_color) ?>">
5634 + </div>
5635 + </div> <!-- Text color -->
5636 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5637 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5638 + <label for="ays-chart-option-tooltip-italic">
5639 + <?php echo esc_html(__( "Italic text", "chart-builder" )); ?>
5640 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Enable this option to make chart tooltip text italic.","chart-builder") ); ?>">
5641 + <i class="ays_fa ays_fa_info_circle"></i>
5642 + </a>
5643 + </label>
5644 + </div>
5645 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
5646 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
5647 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-tooltip-italic" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[tooltip_italic]" value="on" <?php echo esc_attr($tooltip_italic); ?> >
5648 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
5649 + </label>
5650 + </div>
5651 + </div> <!-- Italic text -->
5652 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5653 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5654 + <label for="ays-chart-option-tooltip-font-size" class="form-label">
5655 + <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
5656 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("The font size for all text within the chart tooltip, specified in pixels. Please note that if an invalid value is entered, it will revert to the default global font size.","chart-builder") )); ?>">
5657 + <i class="ays_fa ays_fa_info_circle"></i>
5658 + </a>
5659 + </label>
5660 + </div>
5661 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
5662 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-tooltip-font-size" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[tooltip_font_size]" value="<?php echo esc_attr($tooltip_font_size) ?>">
5663 + <div class="<?php echo esc_attr($html_class_prefix) ?>option-desc-box">px</div>
5664 + </div>
5665 + </div> <!-- Font size -->
5666 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5667 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5668 + <label for="ays-chart-option-tooltip-bold">
5669 + <?php echo esc_html(__( "Bold text", "chart-builder" )); ?>
5670 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Make the tooltip text bold. Choose 'Enable' to apply bold formatting, 'Disable' for normal text, or 'Default' to use the chart's default font weight.","chart-builder") )); ?>">
5671 + <i class="ays_fa ays_fa_info_circle"></i>
5672 + </a>
5673 + </label>
5674 + </div>
5675 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
5676 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-tooltip-bold" name="<?php echo esc_attr($html_name_prefix); ?>settings[tooltip_bold]">
5677 + <?php
5678 + foreach ( $tooltip_bold_options as $option_slug => $option ):
5679 + $selected = ( $tooltip_bold == $option_slug ) ? 'selected' : '';
5680 + ?>
5681 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
5682 + <?php
5683 + endforeach;
5684 + ?>
5685 + </select>
5686 + </div>
5687 + </div> <!-- Bold text -->
5688 + </div>
5689 + </div>
5690 + <?php
5691 + $content = ob_get_clean();
5692 +
5693 + $title = __( 'Tooltip', "chart-builder" );
5694 +
5695 + $sources['tooltip'] = array(
5696 + 'content' => $content,
5697 + 'title' => $title
5698 + );
5699 +
5700 + return $sources;
5701 + }
5702 +
3322 5703 public function settings_contents_legend_settings( $sources, $args ){
3323 5704 $html_class_prefix = $args['html_class_prefix'];
3324 5705 $html_name_prefix = $args['html_name_prefix'];
3325 5706 $settings = $args['settings'];
@@ -3339,9 +5720,9 @@
3339 5720 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3340 5721 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3341 5722 <label for="ays-chart-option-legend-position">
3342 5723 <?php echo esc_html(__( "Position", "chart-builder" )); ?>
3343 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Choose the appropriate position for the chart legend.","chart-builder") ); ?>">
5724 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Choose the appropriate position for the chart legend.","chart-builder") )); ?>">
3344 5725 <i class="ays_fa ays_fa_info_circle"></i>
3345 5726 </a>
3346 5727 </label>
3347 5728 </div>
@@ -3372,9 +5753,9 @@
3372 5753 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3373 5754 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3374 5755 <label for="ays-chart-option-legend-alignment">
3375 5756 <?php echo esc_html(__( "Alignment", "chart-builder" )); ?>
3376 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Choose the appropriate alignment for the chart legend.","chart-builder") ); ?>">
5757 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Choose the appropriate alignment for the chart legend.","chart-builder") )); ?>">
3377 5758 <i class="ays_fa ays_fa_info_circle"></i>
3378 5759 </a>
3379 5760 </label>
3380 5761 </div>
@@ -3394,9 +5775,9 @@
3394 5775 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3395 5776 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3396 5777 <label for="ays-chart-option-legend-font-color">
3397 5778 <?php echo esc_html(__( "Font Color", "chart-builder" )); ?>
3398 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Choose the font color for the chart legend.","chart-builder") ); ?>">
5779 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Choose the font color for the chart legend.","chart-builder") )); ?>">
3399 5780 <i class="ays_fa ays_fa_info_circle"></i>
3400 5781 </a>
3401 5782 </label>
3402 5783 </div>
@@ -3407,9 +5788,9 @@
3407 5788 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3408 5789 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3409 5790 <label for="ays-chart-option-legend-font-size" class="form-label">
3410 5791 <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
3411 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The font size for all text within the chart legend, specified in pixels. Please note that if an invalid value is entered, it will revert to the default global font size.","chart-builder") ); ?>">
5792 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("The font size for all text within the chart legend, specified in pixels. Please note that if an invalid value is entered, it will revert to the default global font size.","chart-builder") )); ?>">
3412 5793 <i class="ays_fa ays_fa_info_circle"></i>
3413 5794 </a>
3414 5795 </label>
3415 5796 </div>
@@ -3464,8 +5845,159 @@
3464 5845
3465 5846 return $sources;
3466 5847 }
3467 5848
5849 + public function settings_contents_legend_settings_chartjs( $sources, $args ){
5850 + $html_class_prefix = $args['html_class_prefix'];
5851 + $html_name_prefix = $args['html_name_prefix'];
5852 + $settings = $args['settings'];
5853 + $legend_positions = $settings['legend_positions'];
5854 + $legend_position = $settings['legend_position'];
5855 + $legend_alignments = $settings['legend_alignments'];
5856 + $legend_alignment = $settings['legend_alignment'];
5857 + $legend_color = $settings['legend_color'];
5858 + $legend_font_size = $settings['legend_font_size'];
5859 + $legend_reverse = $settings['legend_reverse'];
5860 + $legend_bold = $settings['legend_bold'];
5861 + $legend_italic = $settings['legend_italic'];
5862 + ob_start();
5863 + ?>
5864 + <div class="ays-accordion-data-main-wrap">
5865 + <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
5866 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5867 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5868 + <label for="ays-chart-option-legend-position">
5869 + <?php echo esc_html(__( "Position", "chart-builder" )); ?>
5870 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Choose the appropriate position for the chart legend.","chart-builder") )); ?>">
5871 + <i class="ays_fa ays_fa_info_circle"></i>
5872 + </a>
5873 + </label>
5874 + </div>
5875 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
5876 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-legend-position" name="<?php echo esc_attr($html_name_prefix); ?>settings[legend_position]">
5877 + <?php
5878 + foreach ( $legend_positions as $option_slug => $option ):
5879 + $selected = ( $legend_position == $option_slug ) ? 'selected' : '';
5880 + ?>
5881 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?> ><?php echo esc_html($option); ?></option>
5882 + <?php
5883 + endforeach;
5884 + ?>
5885 + </select>
5886 + </div>
5887 + </div> <!-- Legend position -->
5888 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5889 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5890 + <label for="ays-chart-option-legend-alignment">
5891 + <?php echo esc_html(__( "Alignment", "chart-builder" )); ?>
5892 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Choose the appropriate alignment for the chart legend.","chart-builder") )); ?>">
5893 + <i class="ays_fa ays_fa_info_circle"></i>
5894 + </a>
5895 + </label>
5896 + </div>
5897 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
5898 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-legend-alignment" name="<?php echo esc_attr($html_name_prefix); ?>settings[legend_alignment]">
5899 + <?php
5900 + foreach ( $legend_alignments as $option_slug => $option ):
5901 + $selected = ( $legend_alignment == $option_slug ) ? 'selected' : '';
5902 + ?>
5903 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
5904 + <?php
5905 + endforeach;
5906 + ?>
5907 + </select>
5908 + </div>
5909 + </div> <!-- Legend alignment -->
5910 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5911 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5912 + <label for="ays-chart-option-legend-font-color">
5913 + <?php echo esc_html(__( "Font Color", "chart-builder" )); ?>
5914 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("Choose the font color for the chart legend.","chart-builder") )); ?>">
5915 + <i class="ays_fa ays_fa_info_circle"></i>
5916 + </a>
5917 + </label>
5918 + </div>
5919 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
5920 + <input id="ays-chart-option-legend-font-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[legend_color]" value="<?php echo esc_attr($legend_color) ?>">
5921 + </div>
5922 + </div> <!-- Legend font color -->
5923 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5924 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5925 + <label for="ays-chart-option-legend-font-size" class="form-label">
5926 + <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
5927 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr(htmlspecialchars( __("The font size for all text within the chart legend, specified in pixels. Please note that if an invalid value is entered, it will revert to the default global font size.","chart-builder") )); ?>">
5928 + <i class="ays_fa ays_fa_info_circle"></i>
5929 + </a>
5930 + </label>
5931 + </div>
5932 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
5933 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-legend-font-size" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[legend_font_size]" value="<?php echo esc_attr($legend_font_size) ?>">
5934 + <div class="<?php echo esc_attr($html_class_prefix) ?>option-desc-box">px</div>
5935 + </div>
5936 + </div> <!-- Font size -->
5937 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5938 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5939 + <label for="ays-chart-option-legend-italic">
5940 + <?php echo esc_html(__( "Italic text", "chart-builder" )); ?>
5941 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Enable this option to make chart legend text italic.","chart-builder") ); ?>">
5942 + <i class="ays_fa ays_fa_info_circle"></i>
5943 + </a>
5944 + </label>
5945 + </div>
5946 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
5947 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
5948 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-legend-italic" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[legend_italic]" value="on" <?php echo esc_attr($legend_italic); ?> >
5949 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
5950 + </label>
5951 + </div>
5952 + </div> <!-- Italic text -->
5953 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5954 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5955 + <label for="ays-chart-option-legend-bold">
5956 + <?php echo esc_html(__( "Bold text", "chart-builder" )); ?>
5957 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Enable this option to make chart legend text bold.","chart-builder") ); ?>">
5958 + <i class="ays_fa ays_fa_info_circle"></i>
5959 + </a>
5960 + </label>
5961 + </div>
5962 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
5963 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
5964 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-legend-bold" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[legend_bold]" value="on" <?php echo esc_attr($legend_bold); ?> >
5965 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
5966 + </label>
5967 + </div>
5968 + </div> <!-- Bold text -->
5969 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt">
5970 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5971 + <label for="ays-chart-option-legend-revers">
5972 + <?php echo esc_html(__( "Show datasets in reverse order", "chart-builder" )); ?>
5973 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Enable this toggle to show datasets in reverse ordering.","chart-builder") ); ?>">
5974 + <i class="ays_fa ays_fa_info_circle"></i>
5975 + </a>
5976 + </label>
5977 + </div>
5978 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
5979 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
5980 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-legend-reverse" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[legend_reverse]" value="on" <?php echo esc_attr($legend_reverse); ?> >
5981 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
5982 + </label>
5983 + </div>
5984 + </div> <!-- reverse datasets -->
5985 + </div>
5986 + </div>
5987 + <?php
5988 + $content = ob_get_clean();
5989 +
5990 + $title = __( 'Legend', "chart-builder" );
5991 +
5992 + $sources['legend'] = array(
5993 + 'content' => $content,
5994 + 'title' => $title
5995 + );
5996 +
5997 + return $sources;
5998 + }
5999 +
3468 6000 public function settings_contents_horizontal_axis_settings( $sources, $args ){
3469 6001 $html_class_prefix = $args['html_class_prefix'];
3470 6002 $html_name_prefix = $args['html_name_prefix'];
3471 6003 $settings = $args['settings'];
@@ -3481,8 +6013,9 @@
3481 6013 $haxis_slanted_text_angle = $settings['haxis_slanted_text_angle'];
3482 6014 $haxis_show_text_every = $settings['haxis_show_text_every'];
3483 6015 $haxis_format_options = $settings['axes_format_options'];
3484 6016 $haxis_format = $settings['haxis_format'];
6017 + $haxis_enable_divide_percent = $settings['haxis_enable_divide_percent'];
3485 6018 $haxis_label_font_size = $settings['haxis_label_font_size'];
3486 6019 $haxis_max_value = $settings['haxis_max_value'];
3487 6020 $haxis_min_value = $settings['haxis_min_value'];
3488 6021 $haxis_text_font_size = $settings['haxis_text_font_size'];
@@ -3496,9 +6029,9 @@
3496 6029 $haxis_minor_gridlines_color = $settings['haxis_minor_gridlines_color'];
3497 6030
3498 6031 ob_start();
3499 6032 ?>
3500 - <div class="ays-accordion-data-main-wrap <?= $html_class_prefix ?>options-haxis-settings-tab cb-changable-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
6033 + <div class="ays-accordion-data-main-wrap <?php echo esc_attr($html_class_prefix) ?>options-haxis-settings-tab cb-changable-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
3501 6034 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
3502 6035 <h6>Label</h6>
3503 6036 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3504 6037 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -3503,9 +6036,9 @@
3503 6036 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3504 6037 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3505 6038 <label for="ays-chart-option-haxis-title" class="form-label">
3506 6039 <?php echo esc_html(__( "Label", "chart-builder" )); ?>
3507 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The title of the horizontal axis","chart-builder") ); ?>">
6040 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The title of the horizontal axis","chart-builder") ); ?>">
3508 6041 <i class="ays_fa ays_fa_info_circle"></i>
3509 6042 </a>
3510 6043 </label>
3511 6044 </div>
@@ -3590,9 +6123,9 @@
3590 6123 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3591 6124 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3592 6125 <label for="ays-chart-option-haxis-text-position" class="form-label">
3593 6126 <?php echo esc_html(__( "Position", "chart-builder" )); ?>
3594 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Position of the horizontal axis text, relative to the chart area.","chart-builder") ); ?>">
6127 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Position of the horizontal axis text, relative to the chart area.","chart-builder") ); ?>">
3595 6128 <i class="ays_fa ays_fa_info_circle"></i>
3596 6129 </a>
3597 6130 </label>
3598 6131 </div>
@@ -3773,32 +6306,40 @@
3773 6306 <input id="ays-chart-option-haxis-baseline-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[haxis_baseline_color]" value="<?php echo esc_attr($haxis_baseline_color) ?>">
3774 6307 </div>
3775 6308 </div> <!-- Horizontal axis baseline color -->
3776 6309
3777 - <br>
3778 - <h6>Format</h6>
3779 - <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6310 + <br class="cb-changable-opt cb-bar_chart-opt " >
6311 + <h6 class="cb-changable-opt cb-bar_chart-opt">Format</h6>
6312 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-bar_chart-opt " >
3780 6313 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3781 6314 <label for="ays-chart-option-haxis-format" class="form-label">
3782 6315 <?php echo esc_html(__( "Format", "chart-builder" )); ?>
3783 6316 <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="<?php
3784 - echo htmlspecialchars( sprintf (
3785 - "<p>" . __('A format string for numeric axis labels. You can choose any of the following:', "chart-builder") . "</p><ul class='ays_tooltop_ul'><li>" .
3786 - __('%sNone:%s Displays numbers with no formatting (e.g., 8000000)', "chart-builder") . "</li><li>" .
3787 - __('%sDecimal:%s Displays numbers with thousands separators (e.g., 8,000,000)', "chart-builder") . "</li><li>" .
3788 - __('%sScientific:%s Displays numbers in scientific notation (e.g., 8e6)', "chart-builder") . "</li><li>" .
3789 - __('%sCurrency:%s Displays numbers in the local currency (e.g., $8,000,000.00)', "chart-builder") . "</li><li>" .
3790 - __('%sPercent:%s Displays numbers as percentages (e.g., 800,000,000%%)', "chart-builder") . "</li><li>" .
3791 - __('%sShort:%s Displays abbreviated numbers (e.g., 8M)', "chart-builder") . "</li><li>" .
3792 - __('%sLong:%s Displays numbers as full words (e.g., 8 million)', "chart-builder") . "</li></ul>",
3793 - '<em>', '</em>',
3794 - '<em>', '</em>',
3795 - '<em>', '</em>',
3796 - '<em>', '</em>',
3797 - '<em>', '</em>',
3798 - '<em>', '</em>',
3799 - '<em>', '</em>'
3800 - ) );
6317 + echo esc_attr( sprintf(
6318 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6319 + "<p>" . __('A format string for numeric axis labels. You can choose any of the following:', "chart-builder") . "</p><ul class='ays_tooltop_ul'><li>" .
6320 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6321 + __('%1$sNone:%2$s Displays numbers with no formatting (e.g., 8000000)', "chart-builder") . "</li><li>" .
6322 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6323 + __('%1$sDecimal:%2$s Displays numbers with thousands separators (e.g., 8,000,000)', "chart-builder") . "</li><li>" .
6324 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6325 + __('%1$sScientific:%2$s Displays numbers in scientific notation (e.g., 8e6)', "chart-builder") . "</li><li>" .
6326 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6327 + __('%1$sCurrency:%2$s Displays numbers in the local currency (e.g., $8,000,000.00)', "chart-builder") . "</li><li>" .
6328 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6329 + __('%1$sPercent:%2$s Displays numbers as percentages (e.g., 800,000,000%%)', "chart-builder") . "</li><li>" .
6330 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6331 + __('%1$sShort:%2$s Displays abbreviated numbers (e.g., 8M)', "chart-builder") . "</li><li>" .
6332 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6333 + __('%1$sLong:%2$s Displays numbers as full words (e.g., 8 million)', "chart-builder") . "</li></ul>",
6334 + '<em>', '</em>',
6335 + '<em>', '</em>',
6336 + '<em>', '</em>',
6337 + '<em>', '</em>',
6338 + '<em>', '</em>',
6339 + '<em>', '</em>',
6340 + '<em>', '</em>'
6341 + ));
3801 6342 ?>">
3802 6343 <i class="ays_fa ays_fa_info_circle"></i>
3803 6344 </a>
3804 6345 </label>
@@ -3815,10 +6356,26 @@
3815 6356 ?>
3816 6357 </select>
3817 6358 </div>
3818 6359 </div> <!-- Horizontal axis format -->
3819 - <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6360 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section option-haxis-enable-divide-percent cb-changable-opt cb-bar_chart-opt" style="<?php echo ($haxis_format == 'percent') ? '' : 'display: none;'; ?>">
3820 6361 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6362 + <label for="ays-chart-option-haxis-enable-divide-percent">
6363 + <?php echo esc_html(__( "Remove Extra Zeros ", "chart-builder" )); ?>
6364 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Enable this option to hide extra 00's from the axis text if the Format option is set to 'Percent'. Note: Make sure to save chart, to see changes.","chart-builder") ); ?>">
6365 + <i class="ays_fa ays_fa_info_circle"></i>
6366 + </a>
6367 + </label>
6368 + </div>
6369 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
6370 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
6371 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-haxis-enable-divide-percent" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[haxis_enable_divide_percent]" value="on" <?php echo esc_attr($haxis_enable_divide_percent); ?> >
6372 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
6373 + </label>
6374 + </div>
6375 + </div> <!--Remove Extra Zeros"-->
6376 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-bar_chart-opt" >
6377 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3821 6378 <label for="ays-chart-option-haxis-max-value" class="form-label">
3822 6379 <?php echo esc_html(__( "Max value", "chart-builder" )); ?>
3823 6380 <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The maximum value of the axis.","chart-builder") ); ?>">
3824 6381 <i class="ays_fa ays_fa_info_circle"></i>
@@ -3828,9 +6385,9 @@
3828 6385 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input <?php echo esc_attr($html_class_prefix) ?>input-align-right">
3829 6386 <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-haxis-max-value" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[haxis_max_value]" value="<?php echo esc_attr($haxis_max_value) ?>">
3830 6387 </div>
3831 6388 </div> <!-- Horizontal axis max value -->
3832 - <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6389 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-bar_chart-opt" >
3833 6390 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3834 6391 <label for="ays-chart-option-haxis-min-value" class="form-label">
3835 6392 <?php echo esc_html(__( "Min value", "chart-builder" )); ?>
3836 6393 <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The minimum value of the axis.","chart-builder") ); ?>">
@@ -3869,8 +6426,9 @@
3869 6426 $vaxis_text_color = $settings['vaxis_text_color'];
3870 6427 $vaxis_baseline_color = $settings['vaxis_baseline_color'];
3871 6428 $vaxis_format_options = $settings['axes_format_options'];
3872 6429 $vaxis_format = $settings['vaxis_format'];
6430 + $vaxis_enable_divide_percent = $settings['vaxis_enable_divide_percent'];
3873 6431 $vaxis_label_font_size = $settings['vaxis_label_font_size'];
3874 6432 $vaxis_max_value = $settings['vaxis_max_value'];
3875 6433 $vaxis_min_value = $settings['vaxis_min_value'];
3876 6434 $vaxis_text_font_size = $settings['vaxis_text_font_size'];
@@ -3884,9 +6442,9 @@
3884 6442 $vaxis_minor_gridlines_color = $settings['vaxis_minor_gridlines_color'];
3885 6443
3886 6444 ob_start();
3887 6445 ?>
3888 - <div class="ays-accordion-data-main-wrap <?= $html_class_prefix ?>options-vaxis-settings-tab cb-changable-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
6446 + <div class="ays-accordion-data-main-wrap <?php echo esc_attr($html_class_prefix) ?>options-vaxis-settings-tab cb-changable-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
3889 6447 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
3890 6448 <h6>Label</h6>
3891 6449 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3892 6450 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -3891,9 +6449,9 @@
3891 6449 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3892 6450 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3893 6451 <label for="ays-chart-option-vaxis-title" class="form-label">
3894 6452 <?php echo esc_html(__( "Label", "chart-builder" )); ?>
3895 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The title of the vertical axis","chart-builder") ); ?>">
6453 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The title of the vertical axis","chart-builder") ); ?>">
3896 6454 <i class="ays_fa ays_fa_info_circle"></i>
3897 6455 </a>
3898 6456 </label>
3899 6457 </div>
@@ -3965,9 +6523,9 @@
3965 6523 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
3966 6524 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
3967 6525 <label for="ays-chart-option-vaxis-text-position" class="form-label">
3968 6526 <?php echo esc_html(__( "Position", "chart-builder" )); ?>
3969 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Position of the vertical axis text, relative to the chart area.","chart-builder") ); ?>">
6527 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Position of the vertical axis text, relative to the chart area.","chart-builder") ); ?>">
3970 6528 <i class="ays_fa ays_fa_info_circle"></i>
3971 6529 </a>
3972 6530 </label>
3973 6531 </div>
@@ -4113,24 +6671,32 @@
4113 6671 <input id="ays-chart-option-vaxis-baseline-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[vaxis_baseline_color]" value="<?php echo esc_attr($vaxis_baseline_color) ?>">
4114 6672 </div>
4115 6673 </div> <!-- Vertical axis baseline color -->
4116 6674
4117 - <br>
4118 - <h6>Format</h6>
4119 - <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6675 + <br class="cb-changable-opt cb-column_chart-opt cb-line_chart-opt">
6676 + <h6 class="cb-changable-opt cb-column_chart-opt cb-line_chart-opt">Format</h6>
6677 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-column_chart-opt cb-line_chart-opt">
4120 6678 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4121 6679 <label for="ays-chart-option-vaxis-format" class="form-label">
4122 6680 <?php echo esc_html(__( "Format", "chart-builder" )); ?>
4123 6681 <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="<?php
4124 - echo htmlspecialchars( sprintf (
6682 + echo esc_attr( sprintf(
6683 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
4125 6684 "<p>" . __('A format string for numeric axis labels. You can choose any of the following:', "chart-builder") . "</p><ul class='ays_tooltop_ul'><li>" .
4126 - __('%sNone:%s Displays numbers with no formatting (e.g., 8000000)', "chart-builder") . "</li><li>" .
4127 - __('%sDecimal:%s Displays numbers with thousands separators (e.g., 8,000,000)', "chart-builder") . "</li><li>" .
4128 - __('%sScientific:%s Displays numbers in scientific notation (e.g., 8e6)', "chart-builder") . "</li><li>" .
4129 - __('%sCurrency:%s Displays numbers in the local currency (e.g., $8,000,000.00)', "chart-builder") . "</li><li>" .
4130 - __('%sPercent:%s Displays numbers as percentages (e.g., 800,000,000%%)', "chart-builder") . "</li><li>" .
4131 - __('%sShort:%s Displays abbreviated numbers (e.g., 8M)', "chart-builder") . "</li><li>" .
4132 - __('%sLong:%s Displays numbers as full words (e.g., 8 million)', "chart-builder") . "</li></ul>",
6685 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6686 + __('%1$sNone:%2$s Displays numbers with no formatting (e.g., 8000000)', "chart-builder") . "</li><li>" .
6687 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6688 + __('%1$sDecimal:%2$s Displays numbers with thousands separators (e.g., 8,000,000)', "chart-builder") . "</li><li>" .
6689 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6690 + __('%1$sScientific:%2$s Displays numbers in scientific notation (e.g., 8e6)', "chart-builder") . "</li><li>" .
6691 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6692 + __('%1$sCurrency:%2$s Displays numbers in the local currency (e.g., $8,000,000.00)', "chart-builder") . "</li><li>" .
6693 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6694 + __('%1$sPercent:%2$s Displays numbers as percentages (e.g., 800,000,000%%)', "chart-builder") . "</li><li>" .
6695 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6696 + __('%1$sShort:%2$s Displays abbreviated numbers (e.g., 8M)', "chart-builder") . "</li><li>" .
6697 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6698 + __('%1$sLong:%2$s Displays numbers as full words (e.g., 8 million)', "chart-builder") . "</li></ul>",
4133 6699 '<em>', '</em>',
4134 6700 '<em>', '</em>',
4135 6701 '<em>', '</em>',
4136 6702 '<em>', '</em>',
@@ -4136,9 +6702,9 @@
4136 6702 '<em>', '</em>',
4137 6703 '<em>', '</em>',
4138 6704 '<em>', '</em>',
4139 6705 '<em>', '</em>'
4140 - ) );
6706 + ));
4141 6707 ?>">
4142 6708 <i class="ays_fa ays_fa_info_circle"></i>
4143 6709 </a>
4144 6710 </label>
@@ -4155,10 +6721,26 @@
4155 6721 ?>
4156 6722 </select>
4157 6723 </div>
4158 6724 </div> <!-- Vertical axis format -->
4159 - <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6725 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section option-vaxis-enable-divide-percent cb-changable-opt cb-column_chart-opt cb-line_chart-opt" style="<?php echo ($vaxis_format == 'percent') ? '' : 'display: none;'; ?>">
4160 6726 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6727 + <label for="ays-chart-option-vaxis-enable-divide-percent">
6728 + <?php echo esc_html(__( "Remove Extra Zeros", "chart-builder" )); ?>
6729 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Enable this option to hide extra 00's from the axis text if the Format option is set to 'Percent'. Note: Make sure to save chart, to see changes.","chart-builder") ); ?>">
6730 + <i class="ays_fa ays_fa_info_circle"></i>
6731 + </a>
6732 + </label>
6733 + </div>
6734 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
6735 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
6736 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-vaxis-enable-divide-percent" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[vaxis_enable_divide_percent]" value="on" <?php echo esc_attr($vaxis_enable_divide_percent); ?> >
6737 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
6738 + </label>
6739 + </div>
6740 + </div> <!--Remove Extra Zeros-->
6741 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-column_chart-opt cb-line_chart-opt">
6742 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4161 6743 <label for="ays-chart-option-vaxis-max-value" class="form-label">
4162 6744 <?php echo esc_html(__( "Max value", "chart-builder" )); ?>
4163 6745 <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The maximum value of the axis.","chart-builder") ); ?>">
4164 6746 <i class="ays_fa ays_fa_info_circle"></i>
@@ -4168,9 +6750,9 @@
4168 6750 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input <?php echo esc_attr($html_class_prefix) ?>input-align-right">
4169 6751 <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-vaxis-max-value" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[vaxis_max_value]" value="<?php echo esc_attr($vaxis_max_value) ?>">
4170 6752 </div>
4171 6753 </div> <!-- Vertical axis max value -->
4172 - <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6754 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-column_chart-opt cb-line_chart-opt">
4173 6755 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4174 6756 <label for="ays-chart-option-vaxis-min-value" class="form-label">
4175 6757 <?php echo esc_html(__( "Min value", "chart-builder" )); ?>
4176 6758 <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The minimum value of the axis.","chart-builder") ); ?>">
@@ -4209,9 +6791,9 @@
4209 6791 $animation_easing = $settings['animation_easing'];
4210 6792
4211 6793 ob_start();
4212 6794 ?>
4213 - <div class="ays-accordion-data-main-wrap <?= $html_class_prefix ?>options-animation-settings-tab cb-changable-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
6795 + <div class="ays-accordion-data-main-wrap <?php echo esc_attr($html_class_prefix) ?>options-animation-settings-tab cb-changable-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
4214 6796 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
4215 6797 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4216 6798 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4217 6799 <label for="ays-chart-option-enable-animation">
@@ -4262,23 +6844,24 @@
4262 6844 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4263 6845 <label for="ays-chart-option-animation-easing" class="form-label">
4264 6846 <?php echo esc_html(__( "Easing", "chart-builder" )); ?>
4265 6847 <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="<?php
4266 - echo htmlspecialchars( sprintf(
6848 + echo esc_attr( sprintf(
6849 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
4267 6850 "<p>" . __('The easing function applied to the chart animation. The following options are available:', "chart-builder") . "</p><ul class='ays_tooltop_ul'><li>" .
4268 - __('%sLinear:%s Constant speed.', "chart-builder") . "</li><li>" .
4269 - __('%sEase in:%s Start slow and speed up.', "chart-builder") . "</li><li>" .
4270 - __('%sEase out:%s Start fast and slow down.', "chart-builder") . "</li><li>" .
4271 - __('%sEase in and out:%s Start slow, speed up, then slow down.', "chart-builder") . "</li></ul>",
4272 - '<em>',
4273 - '</em>',
4274 - '<em>',
4275 - '</em>',
4276 - '<em>',
4277 - '</em>',
4278 - '<em>',
4279 - '</em>'
4280 - ) );
6851 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6852 + __('%1$sLinear:%2$s Constant speed.', "chart-builder") . "</li><li>" .
6853 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6854 + __('%1$sEase in:%2$s Start slow and speed up.', "chart-builder") . "</li><li>" .
6855 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6856 + __('%1$sEase out:%2$s Start fast and slow down.', "chart-builder") . "</li><li>" .
6857 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6858 + __('%1$sEase in and out:%2$s Start slow, speed up, then slow down.', "chart-builder") . "</li></ul>",
6859 + '<em>', '</em>',
6860 + '<em>', '</em>',
6861 + '<em>', '</em>',
6862 + '<em>', '</em>'
6863 + ));
4281 6864 ?>">
4282 6865 <i class="ays_fa ays_fa_info_circle"></i>
4283 6866 </a>
4284 6867 </label>
@@ -4317,9 +6900,9 @@
4317 6900 $html_name_prefix = $args['html_name_prefix'];
4318 6901
4319 6902 ob_start();
4320 6903 ?>
4321 - <div class="ays-accordion-data-main-wrap <?= $html_class_prefix ?>options-live-chart-settings-tab">
6904 + <div class="ays-accordion-data-main-wrap <?php echo esc_attr($html_class_prefix) ?>options-live-chart-settings-tab">
4322 6905 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
4323 6906 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section ays-pro-features-v2-main-box">
4324 6907 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
4325 6908 <a href="https://www.youtube.com/watch?v=lhTqZmFUNz4" target="_blank" class="ays-pro-features-v2-video-button">
@@ -4324,15 +6907,15 @@
4324 6907 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
4325 6908 <a href="https://www.youtube.com/watch?v=lhTqZmFUNz4" target="_blank" class="ays-pro-features-v2-video-button">
4326 6909 <div class="ays-pro-features-v2-video-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24_Hover.svg"></div>
4327 6910 <div class="ays-pro-features-v2-video-text">
4328 - <?php echo __("Watch Video" , "chart-builder"); ?>
6911 + <?php echo esc_html(__("Watch Video" , "chart-builder")); ?>
4329 6912 </div>
4330 6913 </a>
4331 6914 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
4332 6915 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
4333 6916 <div class="ays-pro-features-v2-upgrade-text">
4334 - <?php echo __("Upgrade" , "chart-builder"); ?>
6917 + <?php echo esc_html(__("Upgrade" , "chart-builder")); ?>
4335 6918 </div>
4336 6919 </a>
4337 6920 </div>
4338 6921 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -4354,15 +6937,15 @@
4354 6937 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
4355 6938 <a href="https://www.youtube.com/watch?v=lhTqZmFUNz4" target="_blank" class="ays-pro-features-v2-video-button">
4356 6939 <div class="ays-pro-features-v2-video-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24_Hover.svg"></div>
4357 6940 <div class="ays-pro-features-v2-video-text">
4358 - <?php echo __("Watch Video" , "chart-builder"); ?>
6941 + <?php echo esc_html(__("Watch Video" , "chart-builder")); ?>
4359 6942 </div>
4360 6943 </a>
4361 6944 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
4362 6945 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
4363 6946 <div class="ays-pro-features-v2-upgrade-text">
4364 - <?php echo __("Upgrade" , "chart-builder"); ?>
6947 + <?php echo esc_html(__("Upgrade" , "chart-builder")); ?>
4365 6948 </div>
4366 6949 </a>
4367 6950 </div>
4368 6951 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -4402,9 +6985,9 @@
4402 6985 $enable_img = $settings['enable_img'];
4403 6986
4404 6987 ob_start();
4405 6988 ?>
4406 - <div class="ays-accordion-data-main-wrap <?= $html_class_prefix ?>options-export-tab cb-changable-tab cb-pie_chart-tab cb-donut_chart-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
6989 + <div class="ays-accordion-data-main-wrap <?php echo esc_attr($html_class_prefix) ?>options-export-tab cb-changable-tab cb-pie_chart-tab cb-donut_chart-tab cb-bar_chart-tab cb-column_chart-tab cb-line_chart-tab">
4407 6990 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
4408 6991 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section ays-pro-features-v2-main-box">
4409 6992 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
4410 6993 <a href="https://www.youtube.com/watch?v=9UqLXG5NU_I" target="_blank" class="ays-pro-features-v2-video-button">
@@ -4409,15 +6992,15 @@
4409 6992 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
4410 6993 <a href="https://www.youtube.com/watch?v=9UqLXG5NU_I" target="_blank" class="ays-pro-features-v2-video-button">
4411 6994 <div class="ays-pro-features-v2-video-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24_Hover.svg"></div>
4412 6995 <div class="ays-pro-features-v2-video-text">
4413 - <?php echo __("Watch Video" , "chart-builder"); ?>
6996 + <?php echo esc_html(__("Watch Video" , "chart-builder")); ?>
4414 6997 </div>
4415 6998 </a>
4416 6999 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
4417 7000 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
4418 7001 <div class="ays-pro-features-v2-upgrade-text">
4419 - <?php echo __("Upgrade" , "chart-builder"); ?>
7002 + <?php echo esc_html(__("Upgrade" , "chart-builder")); ?>
4420 7003 </div>
4421 7004 </a>
4422 7005 </div>
4423 7006 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -4439,15 +7022,15 @@
4439 7022 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
4440 7023 <a href="https://www.youtube.com/watch?v=9UqLXG5NU_I" target="_blank" class="ays-pro-features-v2-video-button">
4441 7024 <div class="ays-pro-features-v2-video-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24_Hover.svg"></div>
4442 7025 <div class="ays-pro-features-v2-video-text">
4443 - <?php echo __("Watch Video" , "chart-builder"); ?>
7026 + <?php echo esc_html(__("Watch Video" , "chart-builder")); ?>
4444 7027 </div>
4445 7028 </a>
4446 7029 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
4447 7030 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
4448 7031 <div class="ays-pro-features-v2-upgrade-text">
4449 - <?php echo __("Upgrade" , "chart-builder"); ?>
7032 + <?php echo esc_html(__("Upgrade" , "chart-builder")); ?>
4450 7033 </div>
4451 7034 </a>
4452 7035 </div>
4453 7036 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -4469,15 +7052,15 @@
4469 7052 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
4470 7053 <a href="https://www.youtube.com/watch?v=9UqLXG5NU_I" target="_blank" class="ays-pro-features-v2-video-button">
4471 7054 <div class="ays-pro-features-v2-video-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24_Hover.svg"></div>
4472 7055 <div class="ays-pro-features-v2-video-text">
4473 - <?php echo __("Watch Video" , "chart-builder"); ?>
7056 + <?php echo esc_html(__("Watch Video" , "chart-builder")); ?>
4474 7057 </div>
4475 7058 </a>
4476 7059 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
4477 7060 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
4478 7061 <div class="ays-pro-features-v2-upgrade-text">
4479 - <?php echo __("Upgrade" , "chart-builder"); ?>
7062 + <?php echo esc_html(__("Upgrade" , "chart-builder")); ?>
4480 7063 </div>
4481 7064 </a>
4482 7065 </div>
4483 7066 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -4499,15 +7082,15 @@
4499 7082 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
4500 7083 <a href="https://www.youtube.com/watch?v=9UqLXG5NU_I" target="_blank" class="ays-pro-features-v2-video-button">
4501 7084 <div class="ays-pro-features-v2-video-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Video_24x24_Hover.svg"></div>
4502 7085 <div class="ays-pro-features-v2-video-text">
4503 - <?php echo __("Watch Video" , "chart-builder"); ?>
7086 + <?php echo esc_html(__("Watch Video" , "chart-builder")); ?>
4504 7087 </div>
4505 7088 </a>
4506 7089 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
4507 7090 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
4508 7091 <div class="ays-pro-features-v2-upgrade-text">
4509 - <?php echo __("Upgrade" , "chart-builder"); ?>
7092 + <?php echo esc_html(__("Upgrade" , "chart-builder")); ?>
4510 7093 </div>
4511 7094 </a>
4512 7095 </div>
4513 7096 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -4535,9 +7118,9 @@
4535 7118 </label>
4536 7119 </div>
4537 7120 <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
4538 7121 <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
4539 - <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-export-img" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[enable_img]" value="on" <?php echo $enable_img?> >
7122 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-export-img" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[enable_img]" value="on" <?php echo esc_attr($enable_img)?> >
4540 7123 <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
4541 7124 </label>
4542 7125 </div>
4543 7126 </div> <!-- IMG option end -->
@@ -4594,9 +7177,9 @@
4594 7177
4595 7178 $sources[] = $content;
4596 7179 }
4597 7180 $content_for_escape = implode('' , $sources );
4598 - echo html_entity_decode(esc_html( $content_for_escape ));
7181 + echo html_entity_decode( esc_html($content_for_escape) );
4599 7182 }
4600 7183
4601 7184 public function settings_contents_chart_styles_settings( $sources, $args ){
4602 7185 $html_class_prefix = $args['html_class_prefix'];
@@ -4616,12 +7199,19 @@
4616 7199 $org_chart_font_size = $settings['org_chart_font_size'];
4617 7200 $background_color = $settings['background_color'];
4618 7201 $transparent_background = $settings['transparent_background'];
4619 7202 $border_width = $settings['border_width'];
7203 + $border_width_with_title = $settings['border_width_with_title'];
7204 + $border_radius_with_title = $settings['border_radius_with_title'];
7205 + $border_color_with_title = $settings['border_color_with_title'];
7206 + $border_style_with_title = $settings['border_style_with_title'];
7207 + $border_style = $settings['border_style'];
7208 + $border_styles = $settings['border_styles'];
4620 7209 $border_radius = $settings['border_radius'];
4621 7210 $border_color = $settings['border_color'];
4622 7211 $box_shadow = $settings['box_shadow'];
4623 7212 $box_shadow_color = $settings['box_shadow_color'];
7213 + $padding_outer = $settings['padding_outer'];
4624 7214 ob_start();
4625 7215 ?>
4626 7216 <div class="ays-accordion-data-main-wrap">
4627 7217 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
@@ -4628,9 +7218,9 @@
4628 7218 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4629 7219 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4630 7220 <label for="ays-chart-option-width" class="form-label">
4631 7221 <?php echo esc_html(__( "Width", "chart-builder" )); ?>
4632 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The width of the chart container, in percents.","chart-builder") ); ?>">
7222 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The width of the chart container, in percents.","chart-builder") ); ?>">
4633 7223 <i class="ays_fa ays_fa_info_circle"></i>
4634 7224 </a>
4635 7225 </label>
4636 7226 </div>
@@ -4651,9 +7241,9 @@
4651 7241 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4652 7242 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4653 7243 <label for="ays-chart-option-responsive-width" class="form-label">
4654 7244 <?php echo esc_html(__( "Responsive Width", "chart-builder" )); ?>
4655 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to keep the chart's width fixed at 100%, no matter what is set for the Width option. This makes the chart more responsive.","chart-builder") ); ?>">
7245 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to keep the chart's width fixed at 100%, no matter what is set for the Width option. This makes the chart more responsive.","chart-builder") ); ?>">
4656 7246 <i class="ays_fa ays_fa_info_circle"></i>
4657 7247 </a>
4658 7248 </label>
4659 7249 </div>
@@ -4667,9 +7257,9 @@
4667 7257 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4668 7258 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4669 7259 <label for="ays-chart-option-position">
4670 7260 <?php echo esc_html(__( "Position", "chart-builder" )); ?>
4671 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The position of the chart. Note: The changes will be visible when the width option is not set to 100%","chart-builder") ); ?>">
7261 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The position of the chart. Note: The changes will be visible when the width option is not set to 100%","chart-builder") ); ?>">
4672 7262 <i class="ays_fa ays_fa_info_circle"></i>
4673 7263 </a>
4674 7264 </label>
4675 7265 </div>
@@ -4684,14 +7274,14 @@
4684 7274 endforeach;
4685 7275 ?>
4686 7276 </select>
4687 7277 </div>
4688 - </div> <!-- Title position -->
7278 + </div> <!-- Position -->
4689 7279 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4690 7280 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4691 7281 <label for="ays-chart-option-height" class="form-label">
4692 7282 <?php echo esc_html(__( "Height", "chart-builder" )); ?>
4693 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The height of the chart container, in pixels.","chart-builder") ); ?>">
7283 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The height of the chart container, in pixels.","chart-builder") ); ?>">
4694 7284 <i class="ays_fa ays_fa_info_circle"></i>
4695 7285 </a>
4696 7286 </label>
4697 7287 </div>
@@ -4712,9 +7302,9 @@
4712 7302 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
4713 7303 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4714 7304 <label for="ays-chart-option-font-size" class="form-label">
4715 7305 <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
4716 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The font size of the chart text.","chart-builder") ); ?>">
7306 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The font size of the chart text.","chart-builder") ); ?>">
4717 7307 <i class="ays_fa ays_fa_info_circle"></i>
4718 7308 </a>
4719 7309 </label>
4720 7310 </div>
@@ -4722,24 +7312,24 @@
4722 7312 <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-font-size" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[font_size]" value="<?php echo esc_attr($font_size) ?>">
4723 7313 <div class="<?php echo esc_attr($html_class_prefix) ?>option-desc-box">px</div>
4724 7314 </div>
4725 7315 </div> <!-- Font size -->
4726 - <div class="form-group row mb-2 <?= $html_class_prefix ?>options-section cb-changable-opt cb-org_chart-opt display_none">
4727 - <div class="col-sm-5 d-flex align-items-center <?= $html_class_prefix ?>option-title">
7316 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-org_chart-opt display_none">
7317 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4728 7318 <label for="ays-chart-option-org-chart-font-size" class="form-label">
4729 - <?php echo __( "Element size", $this->plugin_name ); ?>
4730 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The size of the chart element.","chart-builder") ); ?>">
7319 + <?php echo esc_html(__( "Element size", 'chart-builder' )); ?>
7320 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The size of the chart element.","chart-builder") ); ?>">
4731 7321 <i class="ays_fa ays_fa_info_circle"></i>
4732 7322 </a>
4733 7323 </label>
4734 7324 </div>
4735 7325 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
4736 - <select class="<?= $html_class_prefix ?>option-select-input form-select" id="ays-chart-option-org-chart-font-size" name="<?php echo $html_name_prefix; ?>settings[org_chart_font_size]">
7326 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-org-chart-font-size" name="<?php echo esc_attr($html_name_prefix); ?>settings[org_chart_font_size]">
4737 7327 <?php
4738 7328 foreach ( $org_chart_font_size_options as $option_slug => $option ):
4739 7329 $selected = ( $org_chart_font_size == $option_slug ) ? 'selected' : '';
4740 7330 ?>
4741 - <option value="<?php echo $option_slug; ?>" <?php echo $selected; ?>><?php echo $option; ?></option>
7331 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_attr($option); ?></option>
4742 7332 <?php
4743 7333 endforeach;
4744 7334 ?>
4745 7335 </select>
@@ -4748,9 +7338,9 @@
4748 7338 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
4749 7339 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4750 7340 <label for="ays-chart-option-background-color">
4751 7341 <?php echo esc_html(__( "Background Color", "chart-builder" )); ?>
4752 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The background color of the chart container.","chart-builder") ); ?>">
7342 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The background color of the chart container.","chart-builder") ); ?>">
4753 7343 <i class="ays_fa ays_fa_info_circle"></i>
4754 7344 </a>
4755 7345 </label>
4756 7346 </div>
@@ -4761,9 +7351,9 @@
4761 7351 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
4762 7352 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4763 7353 <label for="ays-chart-option-transparent-background" class="form-label">
4764 7354 <?php echo esc_html(__( "Transparent background", "chart-builder" )); ?>
4765 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart's background transparent. When enabled, both Background Color and Chart Area Background Color options will not work","chart-builder") ); ?>">
7355 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart's background transparent. When enabled, both Background Color and Chart Area Background Color options will not work","chart-builder") ); ?>">
4766 7356 <i class="ays_fa ays_fa_info_circle"></i>
4767 7357 </a>
4768 7358 </label>
4769 7359 </div>
@@ -4777,9 +7367,9 @@
4777 7367 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
4778 7368 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4779 7369 <label for="ays-chart-option-border-width">
4780 7370 <?php echo esc_html(__( "Border Width", "chart-builder" )); ?>
4781 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The width of the chart container border.","chart-builder") ); ?>">
7371 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The width of the chart container border.","chart-builder") ); ?>">
4782 7372 <i class="ays_fa ays_fa_info_circle"></i>
4783 7373 </a>
4784 7374 </label>
4785 7375 </div>
@@ -4790,9 +7380,9 @@
4790 7380 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
4791 7381 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4792 7382 <label for="ays-chart-option-border-color">
4793 7383 <?php echo esc_html(__( "Border Color", "chart-builder" )); ?>
4794 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The border color of the chart container.","chart-builder") ); ?>">
7384 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The border color of the chart container.","chart-builder") ); ?>">
4795 7385 <i class="ays_fa ays_fa_info_circle"></i>
4796 7386 </a>
4797 7387 </label>
4798 7388 </div>
@@ -4803,9 +7393,9 @@
4803 7393 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
4804 7394 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4805 7395 <label for="ays-chart-option-border-radius">
4806 7396 <?php echo esc_html(__( "Border Radius", "chart-builder" )); ?>
4807 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The border radius of the chart container.","chart-builder") ); ?>">
7397 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The border radius of the chart container.","chart-builder") ); ?>">
4808 7398 <i class="ays_fa ays_fa_info_circle"></i>
4809 7399 </a>
4810 7400 </label>
4811 7401 </div>
@@ -4814,11 +7404,33 @@
4814 7404 </div>
4815 7405 </div> <!-- Border radius -->
4816 7406 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
4817 7407 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7408 + <label for="ays-chart-option-border-style">
7409 + <?php echo esc_html(__( "Border Style", "chart-builder" )); ?>
7410 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The style of the chart container border.","chart-builder") ); ?>">
7411 + <i class="ays_fa ays_fa_info_circle"></i>
7412 + </a>
7413 + </label>
7414 + </div>
7415 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7416 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-border-style" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_style]">
7417 + <?php
7418 + foreach ( $border_styles as $option_slug => $option ):
7419 + $selected = ( $border_style == $option_slug ) ? 'selected' : '';
7420 + ?>
7421 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
7422 + <?php
7423 + endforeach;
7424 + ?>
7425 + </select>
7426 + </div>
7427 + </div> <!-- Border style -->
7428 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7429 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4818 7430 <label for="ays-chart-option-box-shadow" class="form-label">
4819 7431 <?php echo esc_html(__( "Box Shadow", "chart-builder" )); ?>
4820 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to add shadow to chart's container.","chart-builder") ); ?>">
7432 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to add shadow to chart's container.","chart-builder") ); ?>">
4821 7433 <i class="ays_fa ays_fa_info_circle"></i>
4822 7434 </a>
4823 7435 </label>
4824 7436 </div>
@@ -4832,9 +7444,9 @@
4832 7444 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
4833 7445 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4834 7446 <label for="ays-chart-option-box-shadow-color" class="form-label">
4835 7447 <?php echo esc_html(__( "Box Shadow Color", "chart-builder" )); ?>
4836 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Choose chart container's box shadow color.","chart-builder") ); ?>">
7448 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Choose chart container's box shadow color.","chart-builder") ); ?>">
4837 7449 <i class="ays_fa ays_fa_info_circle"></i>
4838 7450 </a>
4839 7451 </label>
4840 7452 </div>
@@ -4841,8 +7453,82 @@
4841 7453 <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
4842 7454 <input id="ays-chart-option-box-shadow-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[box_shadow_color]" value="<?php echo esc_attr($box_shadow_color) ?>">
4843 7455 </div>
4844 7456 </div> <!-- box shadow color -->
7457 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7458 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7459 + <label for="ays-chart-option-border-width-with-title">
7460 + <?php echo esc_html(__( "Border Width (including title)", "chart-builder" )); ?>
7461 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The width of the chart container border including chart title and description.","chart-builder") ); ?>">
7462 + <i class="ays_fa ays_fa_info_circle"></i>
7463 + </a>
7464 + </label>
7465 + </div>
7466 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7467 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-border-width-with-title" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_width_with_title]" value="<?php echo esc_attr($border_width_with_title) ?>">
7468 + </div>
7469 + </div> <!-- Border Width with title -->
7470 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7471 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7472 + <label for="ays-chart-option-border-radius-with-title">
7473 + <?php echo esc_html(__( "Border radius (including title)", "chart-builder" )); ?>
7474 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The radius of the chart container border including chart title and description.","chart-builder") ); ?>">
7475 + <i class="ays_fa ays_fa_info_circle"></i>
7476 + </a>
7477 + </label>
7478 + </div>
7479 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7480 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-border-radius-with-title" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_radius_with_title]" value="<?php echo esc_attr($border_radius_with_title) ?>">
7481 + </div>
7482 + </div> <!-- Border radius with title -->
7483 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7484 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7485 + <label for="ays-chart-option-border-color-with-title">
7486 + <?php echo esc_html(__( "Border Color (including title)", "chart-builder" )); ?>
7487 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color of the chart container border including chart title and description.","chart-builder") ); ?>">
7488 + <i class="ays_fa ays_fa_info_circle"></i>
7489 + </a>
7490 + </label>
7491 + </div>
7492 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7493 + <input id="ays-chart-option-border-color-with-title" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_color_with_title]" value="<?php echo esc_attr($border_color_with_title) ?>">
7494 + </div>
7495 + </div> <!-- Border color with title -->
7496 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7497 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7498 + <label for="ays-chart-option-border-style-with-title">
7499 + <?php echo esc_html(__( "Border Style (including title)", "chart-builder" )); ?>
7500 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The style of the chart container border including chart title and description.","chart-builder") ); ?>">
7501 + <i class="ays_fa ays_fa_info_circle"></i>
7502 + </a>
7503 + </label>
7504 + </div>
7505 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7506 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-border-style-with-title" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_style_with_title]">
7507 + <?php
7508 + foreach ( $border_styles as $option_slug => $option ):
7509 + $selected = ( $border_style_with_title == $option_slug ) ? 'selected' : '';
7510 + ?>
7511 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
7512 + <?php
7513 + endforeach;
7514 + ?>
7515 + </select>
7516 + </div>
7517 + </div> <!-- Border style with title -->
7518 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7519 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7520 + <label for="ays-chart-option-padding-outer">
7521 + <?php echo esc_html(__( "Padding", "chart-builder" )); ?>
7522 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The padding of the chart container.","chart-builder") ); ?>">
7523 + <i class="ays_fa ays_fa_info_circle"></i>
7524 + </a>
7525 + </label>
7526 + </div>
7527 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7528 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-padding-outer" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[padding_outer]" value="<?php echo esc_attr($padding_outer) ?>">
7529 + </div>
7530 + </div> <!-- Padding outer -->
4845 7531 </div>
4846 7532 </div>
4847 7533 <?php
4848 7534 $content = ob_get_clean();
@@ -4856,8 +7542,273 @@
4856 7542
4857 7543 return $sources;
4858 7544 }
4859 7545
7546 + public function settings_contents_chart_styles_settings_chartjs( $sources, $args ){
7547 + $html_class_prefix = $args['html_class_prefix'];
7548 + $html_name_prefix = $args['html_name_prefix'];
7549 + $settings = $args['settings'];
7550 + $border_width_with_title = $settings['border_width_with_title'];
7551 + $border_radius_with_title = $settings['border_radius_with_title'];
7552 + $border_color_with_title = $settings['border_color_with_title'];
7553 + $border_style_with_title = $settings['border_style_with_title'];
7554 + $width = $settings['width'];
7555 + $width_format = $settings['width_format'];
7556 + $height = $settings['height'];
7557 + $height_format = $settings['height_format'];
7558 + $width_format_options = $settings['width_format_options'];
7559 + $border_width = $settings['border_width'];
7560 + $border_radius = $settings['border_radius'];
7561 + $border_color = $settings['border_color'];
7562 + $background_color_chart = $settings['background_color_chart'];
7563 + $border_style = $settings['border_style'];
7564 + $border_styles = $settings['border_styles'];
7565 + $box_shadow = $settings['box_shadow'];
7566 + $box_shadow_color = $settings['box_shadow_color'];
7567 + $padding_outer = $settings['padding_outer'];
7568 + ob_start();
7569 + ?>
7570 + <div class="ays-accordion-data-main-wrap">
7571 + <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
7572 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7573 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7574 + <label for="ays-chart-option-width" class="form-label">
7575 + <?php echo esc_html(__( "Width", "chart-builder" )); ?>
7576 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The width of the chart container, in percents.","chart-builder") ); ?>">
7577 + <i class="ays_fa ays_fa_info_circle"></i>
7578 + </a>
7579 + </label>
7580 + </div>
7581 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7582 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-width" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[width]" value="<?php echo esc_attr($width) ?>">
7583 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-width-format-change <?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-width-format" name="<?php echo esc_attr($html_name_prefix); ?>settings[width_format]">
7584 + <?php
7585 + foreach ( $width_format_options as $option_slug => $option ):
7586 + $selected = ( $width_format == $option_slug ) ? 'selected' : '';
7587 + ?>
7588 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
7589 + <?php
7590 + endforeach;
7591 + ?>
7592 + </select>
7593 + </div>
7594 + </div> <!-- Width -->
7595 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7596 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7597 + <label for="ays-chart-option-height" class="form-label">
7598 + <?php echo esc_html(__( "Height", "chart-builder" )); ?>
7599 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The height of the chart container, in pixels.","chart-builder") ); ?>">
7600 + <i class="ays_fa ays_fa_info_circle"></i>
7601 + </a>
7602 + </label>
7603 + </div>
7604 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7605 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-height" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[height]" value="<?php echo esc_attr($height) ?>">
7606 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-width-format-change <?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-height-format" name="<?php echo esc_attr($html_name_prefix); ?>settings[height_format]">
7607 + <?php
7608 + foreach ( $width_format_options as $option_slug => $option ):
7609 + $selected = ( $height_format == $option_slug ) ? 'selected' : '';
7610 + ?>
7611 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
7612 + <?php
7613 + endforeach;
7614 + ?>
7615 + </select>
7616 + </div>
7617 + </div> <!-- Height -->
7618 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7619 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7620 + <label for="ays-chart-option-border-width">
7621 + <?php echo esc_html(__( "Border Width", "chart-builder" )); ?>
7622 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The width of the chart container border.","chart-builder") ); ?>">
7623 + <i class="ays_fa ays_fa_info_circle"></i>
7624 + </a>
7625 + </label>
7626 + </div>
7627 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7628 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-border-width" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_width]" value="<?php echo esc_attr($border_width) ?>">
7629 + </div>
7630 + </div> <!-- Border Width -->
7631 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7632 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7633 + <label for="ays-chart-option-border-radius">
7634 + <?php echo esc_html(__( "Border Radius", "chart-builder" )); ?>
7635 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The radius of the chart container border.","chart-builder") ); ?>">
7636 + <i class="ays_fa ays_fa_info_circle"></i>
7637 + </a>
7638 + </label>
7639 + </div>
7640 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7641 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-border-radius" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_radius]" value="<?php echo esc_attr($border_radius) ?>">
7642 + </div>
7643 + </div> <!-- Border Radius -->
7644 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7645 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7646 + <label for="ays-chart-option-border-color">
7647 + <?php echo esc_html(__( "Border Color", "chart-builder" )); ?>
7648 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The border color of the chart container.","chart-builder") ); ?>">
7649 + <i class="ays_fa ays_fa_info_circle"></i>
7650 + </a>
7651 + </label>
7652 + </div>
7653 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7654 + <input id="ays-chart-option-border-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_color]" value="<?php echo esc_attr($border_color) ?>">
7655 + </div>
7656 + </div> <!-- Border color -->
7657 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7658 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7659 + <label for="ays-chart-option-border-style">
7660 + <?php echo esc_html(__( "Border Style", "chart-builder" )); ?>
7661 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The style of the chart container border.","chart-builder") ); ?>">
7662 + <i class="ays_fa ays_fa_info_circle"></i>
7663 + </a>
7664 + </label>
7665 + </div>
7666 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7667 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-border-style" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_style]">
7668 + <?php
7669 + foreach ( $border_styles as $option_slug => $option ):
7670 + $selected = ( $border_style == $option_slug ) ? 'selected' : '';
7671 + ?>
7672 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
7673 + <?php
7674 + endforeach;
7675 + ?>
7676 + </select>
7677 + </div>
7678 + </div> <!-- Border style -->
7679 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7680 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7681 + <label for="ays-chart-option-backgorund-color">
7682 + <?php echo esc_html(__( "Background Color", "chart-builder" )); ?>
7683 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("With the help of this feature, you will be able to add background color for the Chart JS.","chart-builder") ); ?>">
7684 + <i class="ays_fa ays_fa_info_circle"></i>
7685 + </a>
7686 + </label>
7687 + </div>
7688 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7689 + <input id="ays-chart-option-background-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[background_color_chart]" value="<?php echo esc_attr($background_color_chart) ?>">
7690 + </div>
7691 + </div><!-- Background color -->
7692 +
7693 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7694 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7695 + <label for="ays-chart-option-box-shadow" class="form-label">
7696 + <?php echo esc_html(__( "Box Shadow", "chart-builder" )); ?>
7697 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to add shadow to chart's container.","chart-builder") ); ?>">
7698 + <i class="ays_fa ays_fa_info_circle"></i>
7699 + </a>
7700 + </label>
7701 + </div>
7702 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7703 + <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
7704 + <input class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch" id="ays-chart-option-box-shadow" type="checkbox" name="<?php echo esc_attr($html_name_prefix); ?>settings[box_shadow]" value="on" <?php echo esc_attr($box_shadow); ?> >
7705 + <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
7706 + </label>
7707 + </div>
7708 + </div> <!-- box shadow -->
7709 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7710 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7711 + <label for="ays-chart-option-box-shadow-color" class="form-label">
7712 + <?php echo esc_html(__( "Box Shadow Color", "chart-builder" )); ?>
7713 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Choose chart container's box shadow color.","chart-builder") ); ?>">
7714 + <i class="ays_fa ays_fa_info_circle"></i>
7715 + </a>
7716 + </label>
7717 + </div>
7718 + <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7719 + <input id="ays-chart-option-box-shadow-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[box_shadow_color]" value="<?php echo esc_attr($box_shadow_color) ?>">
7720 + </div>
7721 + </div> <!-- box shadow color -->
7722 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7723 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7724 + <label for="ays-chart-option-border-width-with-title">
7725 + <?php echo esc_html(__( "Border Width (including title)", "chart-builder" )); ?>
7726 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The width of the chart container border including chart title and description.","chart-builder") ); ?>">
7727 + <i class="ays_fa ays_fa_info_circle"></i>
7728 + </a>
7729 + </label>
7730 + </div>
7731 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7732 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-border-width-with-title" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_width_with_title]" value="<?php echo esc_attr($border_width_with_title) ?>">
7733 + </div>
7734 + </div> <!-- Border Width with title -->
7735 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7736 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7737 + <label for="ays-chart-option-border-radius-with-title">
7738 + <?php echo esc_html(__( "Border Radius (including title)", "chart-builder" )); ?>
7739 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The radius of the chart container border including chart title and description.","chart-builder") ); ?>">
7740 + <i class="ays_fa ays_fa_info_circle"></i>
7741 + </a>
7742 + </label>
7743 + </div>
7744 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7745 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-border-radius-with-title" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_radius_with_title]" value="<?php echo esc_attr($border_radius_with_title) ?>">
7746 + </div>
7747 + </div> <!-- Border radius with title -->
7748 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7749 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7750 + <label for="ays-chart-option-border-color-with-title">
7751 + <?php echo esc_html(__( "Border Color (including title)", "chart-builder" )); ?>
7752 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color of the chart container border including chart title and description.","chart-builder") ); ?>">
7753 + <i class="ays_fa ays_fa_info_circle"></i>
7754 + </a>
7755 + </label>
7756 + </div>
7757 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7758 + <input id="ays-chart-option-border-color-with-title" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_color_with_title]" value="<?php echo esc_attr($border_color_with_title) ?>">
7759 + </div>
7760 + </div> <!-- Border colro with title -->
7761 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7762 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7763 + <label for="ays-chart-option-border-style-with-title">
7764 + <?php echo esc_html(__( "Border Style (including title)", "chart-builder" )); ?>
7765 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The style of the chart container border including chart title and description.","chart-builder") ); ?>">
7766 + <i class="ays_fa ays_fa_info_circle"></i>
7767 + </a>
7768 + </label>
7769 + </div>
7770 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7771 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-border-style-with-title" name="<?php echo esc_attr($html_name_prefix); ?>settings[border_style_with_title]">
7772 + <?php
7773 + foreach ( $border_styles as $option_slug => $option ):
7774 + $selected = ( $border_style_with_title == $option_slug ) ? 'selected' : '';
7775 + ?>
7776 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
7777 + <?php
7778 + endforeach;
7779 + ?>
7780 + </select>
7781 + </div>
7782 + </div> <!-- Border style with title -->
7783 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt cb-donut_chart-opt">
7784 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
7785 + <label for="ays-chart-option-padding-outer">
7786 + <?php echo esc_html(__( "Padding", "chart-builder" )); ?>
7787 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The padding of the chart container.","chart-builder") ); ?>">
7788 + <i class="ays_fa ays_fa_info_circle"></i>
7789 + </a>
7790 + </label>
7791 + </div>
7792 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
7793 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-padding-outer" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[padding_outer]" value="<?php echo esc_attr($padding_outer) ?>">
7794 + </div>
7795 + </div> <!-- Padding outer -->
7796 + </div>
7797 + </div>
7798 + <?php
7799 + $content = ob_get_clean();
7800 +
7801 + $title = __( 'Chart', "chart-builder" );
7802 +
7803 + $sources['chart'] = array(
7804 + 'content' => $content,
7805 + 'title' => $title
7806 + );
7807 +
7808 + return $sources;
7809 + }
7810 +
4860 7811 public function settings_contents_chart_area_styles_settings( $sources, $args ){
4861 7812 $html_class_prefix = $args['html_class_prefix'];
4862 7813 $html_name_prefix = $args['html_name_prefix'];
4863 7814 $settings = $args['settings'];
@@ -4876,9 +7827,9 @@
4876 7827 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt">
4877 7828 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4878 7829 <label for="ays-chart-option-chart-background-color">
4879 7830 <?php echo esc_html(__( "Background Color", "chart-builder" )); ?>
4880 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The background color of the chart area.","chart-builder") ); ?>">
7831 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The background color of the chart area.","chart-builder") ); ?>">
4881 7832 <i class="ays_fa ays_fa_info_circle"></i>
4882 7833 </a>
4883 7834 </label>
4884 7835 </div>
@@ -4889,9 +7840,9 @@
4889 7840 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt">
4890 7841 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4891 7842 <label for="ays-chart-option-chart-border-width">
4892 7843 <?php echo esc_html(__( "Border Width", "chart-builder" )); ?>
4893 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The border width of the chart area.","chart-builder") ); ?>">
7844 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The border width of the chart area.","chart-builder") ); ?>">
4894 7845 <i class="ays_fa ays_fa_info_circle"></i>
4895 7846 </a>
4896 7847 </label>
4897 7848 </div>
@@ -4902,9 +7853,9 @@
4902 7853 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-bar_chart-opt cb-column_chart-opt cb-line_chart-opt">
4903 7854 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4904 7855 <label for="ays-chart-option-chart-border-color">
4905 7856 <?php echo esc_html(__( "Border Color", "chart-builder" )); ?>
4906 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The border color of the chart area.","chart-builder") ); ?>">
7857 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The border color of the chart area.","chart-builder") ); ?>">
4907 7858 <i class="ays_fa ays_fa_info_circle"></i>
4908 7859 </a>
4909 7860 </label>
4910 7861 </div>
@@ -4915,9 +7866,9 @@
4915 7866 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4916 7867 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4917 7868 <label for="ays-chart-option-chart-left-margin">
4918 7869 <?php echo esc_html(__( "Left Margin", "chart-builder" )); ?>
4919 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the chart's distance from the left border. Leave blank for auto-positioning.","chart-builder") ); ?>">
7870 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the chart's distance from the left border. Leave blank for auto-positioning.","chart-builder") ); ?>">
4920 7871 <i class="ays_fa ays_fa_info_circle"></i>
4921 7872 </a>
4922 7873 </label>
4923 7874 </div>
@@ -4928,9 +7879,9 @@
4928 7879 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4929 7880 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4930 7881 <label for="ays-chart-option-chart-right-margin">
4931 7882 <?php echo esc_html(__( "Right Margin", "chart-builder" )); ?>
4932 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the chart's distance from the right border. Leave blank for auto-positioning.","chart-builder") ); ?>">
7883 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the chart's distance from the right border. Leave blank for auto-positioning.","chart-builder") ); ?>">
4933 7884 <i class="ays_fa ays_fa_info_circle"></i>
4934 7885 </a>
4935 7886 </label>
4936 7887 </div>
@@ -4941,9 +7892,9 @@
4941 7892 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4942 7893 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4943 7894 <label for="ays-chart-option-chart-top-margin">
4944 7895 <?php echo esc_html(__( "Top Margin", "chart-builder" )); ?>
4945 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the chart's distance from the top border. Leave blank for auto-positioning.","chart-builder") ); ?>">
7896 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the chart's distance from the top border. Leave blank for auto-positioning.","chart-builder") ); ?>">
4946 7897 <i class="ays_fa ays_fa_info_circle"></i>
4947 7898 </a>
4948 7899 </label>
4949 7900 </div>
@@ -4954,9 +7905,9 @@
4954 7905 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
4955 7906 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
4956 7907 <label for="ays-chart-option-chart-bottom-margin">
4957 7908 <?php echo esc_html(__( "Bottom Margin", "chart-builder" )); ?>
4958 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the chart's distance from the bottom border. Leave blank for auto-positioning.","chart-builder") ); ?>">
7909 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the chart's distance from the bottom border. Leave blank for auto-positioning.","chart-builder") ); ?>">
4959 7910 <i class="ays_fa ays_fa_info_circle"></i>
4960 7911 </a>
4961 7912 </label>
4962 7913 </div>
@@ -5006,9 +7957,9 @@
5006 7957 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5007 7958 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5008 7959 <label for="ays-chart-option-title-color">
5009 7960 <?php echo esc_html(__( "Color", "chart-builder" )); ?>
5010 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The color of the chart title.","chart-builder") ); ?>">
7961 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color of the chart title.","chart-builder") ); ?>">
5011 7962 <i class="ays_fa ays_fa_info_circle"></i>
5012 7963 </a>
5013 7964 </label>
5014 7965 </div>
@@ -5019,9 +7970,9 @@
5019 7970 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5020 7971 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5021 7972 <label for="ays-chart-option-title-font-size" class="form-label">
5022 7973 <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
5023 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The font size of the chart title.","chart-builder") ); ?>">
7974 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The font size of the chart title.","chart-builder") ); ?>">
5024 7975 <i class="ays_fa ays_fa_info_circle"></i>
5025 7976 </a>
5026 7977 </label>
5027 7978 </div>
@@ -5033,9 +7984,9 @@
5033 7984 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5034 7985 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5035 7986 <label for="ays-chart-option-title-bold" class="form-label">
5036 7987 <?php echo esc_html(__( "Bold text", "chart-builder" )); ?>
5037 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart title text bold.","chart-builder") ); ?>">
7988 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart title text bold.","chart-builder") ); ?>">
5038 7989 <i class="ays_fa ays_fa_info_circle"></i>
5039 7990 </a>
5040 7991 </label>
5041 7992 </div>
@@ -5049,9 +8000,9 @@
5049 8000 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5050 8001 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5051 8002 <label for="ays-chart-option-title-italic" class="form-label">
5052 8003 <?php echo esc_html(__( "Italic text", "chart-builder" )); ?>
5053 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart title text italic.","chart-builder") ); ?>">
8004 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart title text italic.","chart-builder") ); ?>">
5054 8005 <i class="ays_fa ays_fa_info_circle"></i>
5055 8006 </a>
5056 8007 </label>
5057 8008 </div>
@@ -5065,9 +8016,9 @@
5065 8016 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5066 8017 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5067 8018 <label for="ays-chart-option-title-position">
5068 8019 <?php echo esc_html(__( "Position", "chart-builder" )); ?>
5069 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The position of the chart title.","chart-builder") ); ?>">
8020 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The position of the chart title.","chart-builder") ); ?>">
5070 8021 <i class="ays_fa ays_fa_info_circle"></i>
5071 8022 </a>
5072 8023 </label>
5073 8024 </div>
@@ -5087,9 +8038,9 @@
5087 8038 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5088 8039 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5089 8040 <label for="ays-chart-option-title-gap" class="form-label">
5090 8041 <?php echo esc_html(__( "Gap", "chart-builder" )); ?>
5091 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the space between the chart title and the chart container.","chart-builder") ); ?>">
8042 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the space between the chart title and the chart container.","chart-builder") ); ?>">
5092 8043 <i class="ays_fa ays_fa_info_circle"></i>
5093 8044 </a>
5094 8045 </label>
5095 8046 </div>
@@ -5101,9 +8052,9 @@
5101 8052 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5102 8053 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5103 8054 <label for="ays-chart-option-title-gap-description" class="form-label">
5104 8055 <?php echo esc_html(__( "Distance from description", "chart-builder" )); ?>
5105 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the space between the chart title and the chart description.","chart-builder") ); ?>">
8056 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the space between the chart title and the chart description.","chart-builder") ); ?>">
5106 8057 <i class="ays_fa ays_fa_info_circle"></i>
5107 8058 </a>
5108 8059 </label>
5109 8060 </div>
@@ -5115,9 +8066,9 @@
5115 8066 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5116 8067 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5117 8068 <label for="ays-chart-option-title-text-transform">
5118 8069 <?php echo esc_html(__( "Text-transform", "chart-builder" )); ?>
5119 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify how to capitalize the text of the chart title.","chart-builder") ); ?>">
8070 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify how to capitalize the text of the chart title.","chart-builder") ); ?>">
5120 8071 <i class="ays_fa ays_fa_info_circle"></i>
5121 8072 </a>
5122 8073 </label>
5123 8074 </div>
@@ -5137,9 +8088,9 @@
5137 8088 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5138 8089 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5139 8090 <label for="ays-chart-option-title-letter-spacing" class="form-label">
5140 8091 <?php echo esc_html(__( "Letter spacing", "chart-builder" )); ?>
5141 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the space between the chart title letters.","chart-builder") ); ?>">
8092 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the space between the chart title letters.","chart-builder") ); ?>">
5142 8093 <i class="ays_fa ays_fa_info_circle"></i>
5143 8094 </a>
5144 8095 </label>
5145 8096 </div>
@@ -5151,9 +8102,9 @@
5151 8102 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5152 8103 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5153 8104 <label for="ays-chart-option-title-text-decoration">
5154 8105 <?php echo esc_html(__( "Text-decoration", "chart-builder" )); ?>
5155 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify how to capitalize the text of the chart title.","chart-builder") ); ?>">
8106 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify how to capitalize the text of the chart title.","chart-builder") ); ?>">
5156 8107 <i class="ays_fa ays_fa_info_circle"></i>
5157 8108 </a>
5158 8109 </label>
5159 8110 </div>
@@ -5173,9 +8124,9 @@
5173 8124 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5174 8125 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5175 8126 <label for="ays-chart-option-title-text-shadow" class="form-label">
5176 8127 <?php echo esc_html(__( "Text shadow", "chart-builder" )); ?>
5177 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to add a text shadow to chart title.","chart-builder") ); ?>">
8128 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to add a text shadow to chart title.","chart-builder") ); ?>">
5178 8129 <i class="ays_fa ays_fa_info_circle"></i>
5179 8130 </a>
5180 8131 </label>
5181 8132 </div>
@@ -5189,9 +8140,9 @@
5189 8140 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5190 8141 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5191 8142 <label for="ays-chart-option-title-shadow-color">
5192 8143 <?php echo esc_html(__( "Text Shadow Color", "chart-builder" )); ?>
5193 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The text shadow color of the chart title.","chart-builder") ); ?>">
8144 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The text shadow color of the chart title.","chart-builder") ); ?>">
5194 8145 <i class="ays_fa ays_fa_info_circle"></i>
5195 8146 </a>
5196 8147 </label>
5197 8148 </div>
@@ -5241,9 +8192,9 @@
5241 8192 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5242 8193 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5243 8194 <label for="ays-chart-option-title-color">
5244 8195 <?php echo esc_html(__( "Color", "chart-builder" )); ?>
5245 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The color of the chart title.","chart-builder") ); ?>">
8196 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color of the chart title.","chart-builder") ); ?>">
5246 8197 <i class="ays_fa ays_fa_info_circle"></i>
5247 8198 </a>
5248 8199 </label>
5249 8200 </div>
@@ -5254,9 +8205,9 @@
5254 8205 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5255 8206 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5256 8207 <label for="ays-chart-option-title-font-size" class="form-label">
5257 8208 <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
5258 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The font size of the chart title.","chart-builder") ); ?>">
8209 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The font size of the chart title.","chart-builder") ); ?>">
5259 8210 <i class="ays_fa ays_fa_info_circle"></i>
5260 8211 </a>
5261 8212 </label>
5262 8213 </div>
@@ -5268,9 +8219,9 @@
5268 8219 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5269 8220 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5270 8221 <label for="ays-chart-option-title-bold" class="form-label">
5271 8222 <?php echo esc_html(__( "Bold text", "chart-builder" )); ?>
5272 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart title text bold.","chart-builder") ); ?>">
8223 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart title text bold.","chart-builder") ); ?>">
5273 8224 <i class="ays_fa ays_fa_info_circle"></i>
5274 8225 </a>
5275 8226 </label>
5276 8227 </div>
@@ -5284,9 +8235,9 @@
5284 8235 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5285 8236 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5286 8237 <label for="ays-chart-option-title-italic" class="form-label">
5287 8238 <?php echo esc_html(__( "Italic text", "chart-builder" )); ?>
5288 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart title text italic.","chart-builder") ); ?>">
8239 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart title text italic.","chart-builder") ); ?>">
5289 8240 <i class="ays_fa ays_fa_info_circle"></i>
5290 8241 </a>
5291 8242 </label>
5292 8243 </div>
@@ -5300,9 +8251,9 @@
5300 8251 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5301 8252 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5302 8253 <label for="ays-chart-option-title-position">
5303 8254 <?php echo esc_html(__( "Position", "chart-builder" )); ?>
5304 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The position of the chart title.","chart-builder") ); ?>">
8255 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The position of the chart title.","chart-builder") ); ?>">
5305 8256 <i class="ays_fa ays_fa_info_circle"></i>
5306 8257 </a>
5307 8258 </label>
5308 8259 </div>
@@ -5322,9 +8273,9 @@
5322 8273 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5323 8274 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5324 8275 <label for="ays-chart-option-title-gap" class="form-label">
5325 8276 <?php echo esc_html(__( "Gap", "chart-builder" )); ?>
5326 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the space between the chart title and the chart container.","chart-builder") ); ?>">
8277 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the space between the chart title and the chart container.","chart-builder") ); ?>">
5327 8278 <i class="ays_fa ays_fa_info_circle"></i>
5328 8279 </a>
5329 8280 </label>
5330 8281 </div>
@@ -5336,9 +8287,9 @@
5336 8287 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5337 8288 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5338 8289 <label for="ays-chart-option-title-gap-description" class="form-label">
5339 8290 <?php echo esc_html(__( "Distance from description", "chart-builder" )); ?>
5340 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the space between the chart title and the chart description.","chart-builder") ); ?>">
8291 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the space between the chart title and the chart description.","chart-builder") ); ?>">
5341 8292 <i class="ays_fa ays_fa_info_circle"></i>
5342 8293 </a>
5343 8294 </label>
5344 8295 </div>
@@ -5350,9 +8301,9 @@
5350 8301 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5351 8302 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5352 8303 <label for="ays-chart-option-title-text-transform">
5353 8304 <?php echo esc_html(__( "Text-transform", "chart-builder" )); ?>
5354 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify how to capitalize the text of the chart title.","chart-builder") ); ?>">
8305 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify how to capitalize the text of the chart title.","chart-builder") ); ?>">
5355 8306 <i class="ays_fa ays_fa_info_circle"></i>
5356 8307 </a>
5357 8308 </label>
5358 8309 </div>
@@ -5372,9 +8323,9 @@
5372 8323 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5373 8324 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5374 8325 <label for="ays-chart-option-title-letter-spacing" class="form-label">
5375 8326 <?php echo esc_html(__( "Letter spacing", "chart-builder" )); ?>
5376 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the space between the chart title letters.","chart-builder") ); ?>">
8327 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the space between the chart title letters.","chart-builder") ); ?>">
5377 8328 <i class="ays_fa ays_fa_info_circle"></i>
5378 8329 </a>
5379 8330 </label>
5380 8331 </div>
@@ -5386,9 +8337,9 @@
5386 8337 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5387 8338 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5388 8339 <label for="ays-chart-option-title-text-decoration">
5389 8340 <?php echo esc_html(__( "Text-decoration", "chart-builder" )); ?>
5390 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify how to capitalize the text of the chart title.","chart-builder") ); ?>">
8341 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify how to capitalize the text of the chart title.","chart-builder") ); ?>">
5391 8342 <i class="ays_fa ays_fa_info_circle"></i>
5392 8343 </a>
5393 8344 </label>
5394 8345 </div>
@@ -5408,9 +8359,9 @@
5408 8359 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5409 8360 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5410 8361 <label for="ays-chart-option-title-text-shadow" class="form-label">
5411 8362 <?php echo esc_html(__( "Text shadow", "chart-builder" )); ?>
5412 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to add a text shadow to chart title.","chart-builder") ); ?>">
8363 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to add a text shadow to chart title.","chart-builder") ); ?>">
5413 8364 <i class="ays_fa ays_fa_info_circle"></i>
5414 8365 </a>
5415 8366 </label>
5416 8367 </div>
@@ -5424,9 +8375,9 @@
5424 8375 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5425 8376 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5426 8377 <label for="ays-chart-option-title-shadow-color">
5427 8378 <?php echo esc_html(__( "Text Shadow Color", "chart-builder" )); ?>
5428 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The text shadow color of the chart title.","chart-builder") ); ?>">
8379 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The text shadow color of the chart title.","chart-builder") ); ?>">
5429 8380 <i class="ays_fa ays_fa_info_circle"></i>
5430 8381 </a>
5431 8382 </label>
5432 8383 </div>
@@ -5475,9 +8426,9 @@
5475 8426 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5476 8427 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5477 8428 <label for="ays-chart-option-description-color">
5478 8429 <?php echo esc_html(__( "Color", "chart-builder" )); ?>
5479 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The color of the chart description.","chart-builder") ); ?>">
8430 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color of the chart description.","chart-builder") ); ?>">
5480 8431 <i class="ays_fa ays_fa_info_circle"></i>
5481 8432 </a>
5482 8433 </label>
5483 8434 </div>
@@ -5488,9 +8439,9 @@
5488 8439 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5489 8440 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5490 8441 <label for="ays-chart-option-description-font-size" class="form-label">
5491 8442 <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
5492 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The font size of the chart description.","chart-builder") ); ?>">
8443 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The font size of the chart description.","chart-builder") ); ?>">
5493 8444 <i class="ays_fa ays_fa_info_circle"></i>
5494 8445 </a>
5495 8446 </label>
5496 8447 </div>
@@ -5502,9 +8453,9 @@
5502 8453 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5503 8454 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5504 8455 <label for="ays-chart-option-description-bold" class="form-label">
5505 8456 <?php echo esc_html(__( "Bold text", "chart-builder" )); ?>
5506 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart description text bold.","chart-builder") ); ?>">
8457 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart description text bold.","chart-builder") ); ?>">
5507 8458 <i class="ays_fa ays_fa_info_circle"></i>
5508 8459 </a>
5509 8460 </label>
5510 8461 </div>
@@ -5518,9 +8469,9 @@
5518 8469 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5519 8470 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5520 8471 <label for="ays-chart-option-description-italic" class="form-label">
5521 8472 <?php echo esc_html(__( "Italic text", "chart-builder" )); ?>
5522 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart description text italic.","chart-builder") ); ?>">
8473 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart description text italic.","chart-builder") ); ?>">
5523 8474 <i class="ays_fa ays_fa_info_circle"></i>
5524 8475 </a>
5525 8476 </label>
5526 8477 </div>
@@ -5534,9 +8485,9 @@
5534 8485 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5535 8486 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5536 8487 <label for="ays-chart-option-description-position">
5537 8488 <?php echo esc_html(__( "Position", "chart-builder" )); ?>
5538 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The position of the chart description.","chart-builder") ); ?>">
8489 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The position of the chart description.","chart-builder") ); ?>">
5539 8490 <i class="ays_fa ays_fa_info_circle"></i>
5540 8491 </a>
5541 8492 </label>
5542 8493 </div>
@@ -5556,9 +8507,9 @@
5556 8507 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5557 8508 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5558 8509 <label for="ays-chart-option-description-text-transform">
5559 8510 <?php echo esc_html(__( "Text-transform", "chart-builder" )); ?>
5560 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify how to capitalize the text of the chart description.","chart-builder") ); ?>">
8511 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify how to capitalize the text of the chart description.","chart-builder") ); ?>">
5561 8512 <i class="ays_fa ays_fa_info_circle"></i>
5562 8513 </a>
5563 8514 </label>
5564 8515 </div>
@@ -5578,9 +8529,9 @@
5578 8529 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5579 8530 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5580 8531 <label for="ays-chart-option-description-letter-spacing" class="form-label">
5581 8532 <?php echo esc_html(__( "Letter spacing", "chart-builder" )); ?>
5582 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the space between the chart description letters.","chart-builder") ); ?>">
8533 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the space between the chart description letters.","chart-builder") ); ?>">
5583 8534 <i class="ays_fa ays_fa_info_circle"></i>
5584 8535 </a>
5585 8536 </label>
5586 8537 </div>
@@ -5592,9 +8543,9 @@
5592 8543 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5593 8544 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5594 8545 <label for="ays-chart-option-description-text-decoration">
5595 8546 <?php echo esc_html(__( "Text-decoration", "chart-builder" )); ?>
5596 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify how to capitalize the text of the chart description.","chart-builder") ); ?>">
8547 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify how to capitalize the text of the chart description.","chart-builder") ); ?>">
5597 8548 <i class="ays_fa ays_fa_info_circle"></i>
5598 8549 </a>
5599 8550 </label>
5600 8551 </div>
@@ -5614,9 +8565,9 @@
5614 8565 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5615 8566 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5616 8567 <label for="ays-chart-option-description-text-shadow" class="form-label">
5617 8568 <?php echo esc_html(__( "Text shadow", "chart-builder" )); ?>
5618 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to add a text shadow to chart description.","chart-builder") ); ?>">
8569 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to add a text shadow to chart description.","chart-builder") ); ?>">
5619 8570 <i class="ays_fa ays_fa_info_circle"></i>
5620 8571 </a>
5621 8572 </label>
5622 8573 </div>
@@ -5630,9 +8581,9 @@
5630 8581 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5631 8582 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5632 8583 <label for="ays-chart-option-description-shadow-color">
5633 8584 <?php echo esc_html(__( "Text Shadow Color", "chart-builder" )); ?>
5634 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The text shadow color of the chart description.","chart-builder") ); ?>">
8585 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The text shadow color of the chart description.","chart-builder") ); ?>">
5635 8586 <i class="ays_fa ays_fa_info_circle"></i>
5636 8587 </a>
5637 8588 </label>
5638 8589 </div>
@@ -5681,9 +8632,9 @@
5681 8632 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5682 8633 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5683 8634 <label for="ays-chart-option-description-color">
5684 8635 <?php echo esc_html(__( "Color", "chart-builder" )); ?>
5685 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The color of the chart description.","chart-builder") ); ?>">
8636 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color of the chart description.","chart-builder") ); ?>">
5686 8637 <i class="ays_fa ays_fa_info_circle"></i>
5687 8638 </a>
5688 8639 </label>
5689 8640 </div>
@@ -5694,9 +8645,9 @@
5694 8645 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5695 8646 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5696 8647 <label for="ays-chart-option-description-font-size" class="form-label">
5697 8648 <?php echo esc_html(__( "Font size", "chart-builder" )); ?>
5698 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The font size of the chart description.","chart-builder") ); ?>">
8649 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The font size of the chart description.","chart-builder") ); ?>">
5699 8650 <i class="ays_fa ays_fa_info_circle"></i>
5700 8651 </a>
5701 8652 </label>
5702 8653 </div>
@@ -5708,9 +8659,9 @@
5708 8659 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5709 8660 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5710 8661 <label for="ays-chart-option-description-bold" class="form-label">
5711 8662 <?php echo esc_html(__( "Bold text", "chart-builder" )); ?>
5712 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart description text bold.","chart-builder") ); ?>">
8663 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart description text bold.","chart-builder") ); ?>">
5713 8664 <i class="ays_fa ays_fa_info_circle"></i>
5714 8665 </a>
5715 8666 </label>
5716 8667 </div>
@@ -5724,9 +8675,9 @@
5724 8675 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5725 8676 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5726 8677 <label for="ays-chart-option-description-italic" class="form-label">
5727 8678 <?php echo esc_html(__( "Italic text", "chart-builder" )); ?>
5728 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to make the chart description text italic.","chart-builder") ); ?>">
8679 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to make the chart description text italic.","chart-builder") ); ?>">
5729 8680 <i class="ays_fa ays_fa_info_circle"></i>
5730 8681 </a>
5731 8682 </label>
5732 8683 </div>
@@ -5740,9 +8691,9 @@
5740 8691 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5741 8692 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5742 8693 <label for="ays-chart-option-description-position">
5743 8694 <?php echo esc_html(__( "Position", "chart-builder" )); ?>
5744 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The position of the chart description.","chart-builder") ); ?>">
8695 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The position of the chart description.","chart-builder") ); ?>">
5745 8696 <i class="ays_fa ays_fa_info_circle"></i>
5746 8697 </a>
5747 8698 </label>
5748 8699 </div>
@@ -5762,9 +8713,9 @@
5762 8713 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5763 8714 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5764 8715 <label for="ays-chart-option-description-text-transform">
5765 8716 <?php echo esc_html(__( "Text-transform", "chart-builder" )); ?>
5766 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify how to capitalize the text of the chart description.","chart-builder") ); ?>">
8717 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify how to capitalize the text of the chart description.","chart-builder") ); ?>">
5767 8718 <i class="ays_fa ays_fa_info_circle"></i>
5768 8719 </a>
5769 8720 </label>
5770 8721 </div>
@@ -5784,9 +8735,9 @@
5784 8735 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5785 8736 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5786 8737 <label for="ays-chart-option-description-letter-spacing" class="form-label">
5787 8738 <?php echo esc_html(__( "Letter spacing", "chart-builder" )); ?>
5788 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify the space between the chart description letters.","chart-builder") ); ?>">
8739 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify the space between the chart description letters.","chart-builder") ); ?>">
5789 8740 <i class="ays_fa ays_fa_info_circle"></i>
5790 8741 </a>
5791 8742 </label>
5792 8743 </div>
@@ -5798,9 +8749,9 @@
5798 8749 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5799 8750 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5800 8751 <label for="ays-chart-option-description-text-decoration">
5801 8752 <?php echo esc_html(__( "Text-decoration", "chart-builder" )); ?>
5802 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Specify how to capitalize the text of the chart description.","chart-builder") ); ?>">
8753 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Specify how to capitalize the text of the chart description.","chart-builder") ); ?>">
5803 8754 <i class="ays_fa ays_fa_info_circle"></i>
5804 8755 </a>
5805 8756 </label>
5806 8757 </div>
@@ -5820,9 +8771,9 @@
5820 8771 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5821 8772 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5822 8773 <label for="ays-chart-option-description-text-shadow" class="form-label">
5823 8774 <?php echo esc_html(__( "Text shadow", "chart-builder" )); ?>
5824 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Tick this option to add a text shadow to chart description.","chart-builder") ); ?>">
8775 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Tick this option to add a text shadow to chart description.","chart-builder") ); ?>">
5825 8776 <i class="ays_fa ays_fa_info_circle"></i>
5826 8777 </a>
5827 8778 </label>
5828 8779 </div>
@@ -5836,9 +8787,9 @@
5836 8787 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
5837 8788 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
5838 8789 <label for="ays-chart-option-description-shadow-color">
5839 8790 <?php echo esc_html(__( "Text Shadow Color", "chart-builder" )); ?>
5840 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The text shadow color of the chart description.","chart-builder") ); ?>">
8791 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The text shadow color of the chart description.","chart-builder") ); ?>">
5841 8792 <i class="ays_fa ays_fa_info_circle"></i>
5842 8793 </a>
5843 8794 </label>
5844 8795 </div>
@@ -5899,9 +8850,9 @@
5899 8850
5900 8851 $sources[] = $content;
5901 8852 }
5902 8853 $content_for_escape = implode('' , $sources );
5903 - echo html_entity_decode(esc_html( $content_for_escape ));
8854 + echo html_entity_decode( esc_html($content_for_escape) );
5904 8855 }
5905 8856
5906 8857 public function settings_contents_advanced_settings( $sources, $args ){
5907 8858 $html_class_prefix = $args['html_class_prefix'];
@@ -6006,9 +8957,9 @@
6006 8957 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-donut_chart-opt display_none">
6007 8958 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6008 8959 <label for="ays-chart-option-slice-text">
6009 8960 <?php echo esc_html(__( "Slice text", "chart-builder" )); ?>
6010 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Choose the content of the text to be displayed on the pie slice.","chart-builder") ); ?>">
8961 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Choose the content of the text to be displayed on the pie slice.","chart-builder") ); ?>">
6011 8962 <i class="ays_fa ays_fa_info_circle"></i>
6012 8963 </a>
6013 8964 </label>
6014 8965 </div>
@@ -6028,9 +8979,9 @@
6028 8979 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-donut_chart-opt display_none">
6029 8980 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6030 8981 <label for="ays-chart-option-tooltip-text">
6031 8982 <?php echo esc_html(__( "Slice tooltip text", "chart-builder" )); ?>
6032 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("Choose how to display the text in the chart tooltip.","chart-builder") ); ?>">
8983 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Choose how to display the text in the chart tooltip.","chart-builder") ); ?>">
6033 8984 <i class="ays_fa ays_fa_info_circle"></i>
6034 8985 </a>
6035 8986 </label>
6036 8987 </div>
@@ -6063,9 +9014,9 @@
6063 9014 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-donut_chart-opt display_none">
6064 9015 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6065 9016 <label for="ays-chart-option-data-grouping-label" class="form-label">
6066 9017 <?php echo esc_html(__( "Chart Data Grouping Label", "chart-builder" )); ?>
6067 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("A label for the combination slice that holds all slices below chart data grouping limit.","chart-builder") ); ?>">
9018 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("A label for the combination slice that holds all slices below chart data grouping limit.","chart-builder") ); ?>">
6068 9019 <i class="ays_fa ays_fa_info_circle"></i>
6069 9020 </a>
6070 9021 </label>
6071 9022 </div>
@@ -6106,17 +9057,18 @@
6106 9057 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6107 9058 <label for="ays-chart-option-focus-target">
6108 9059 <?php echo esc_html(__( "Focus target", "chart-builder" )); ?>
6109 9060 <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="<?php
6110 - echo htmlspecialchars( sprintf(
9061 + echo esc_html( sprintf(
9062 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6111 9063 "<p>" . __('There are two ways to focus the data table elements.', "chart-builder") . "</p><ul class='ays_tooltop_ul'><li>" .
6112 - __('%sSingle data:%s If you choose the Single Data option, the focus will be on the single data point. By this, the particular cell of the data table will be focused.', "chart-builder") . "</li><li>" .
6113 - __('%sGroup data:%s If you choose the Group Data option, the focus will be on the grouped data points. By this, a row of the data table will be focused.', "chart-builder") . "</li></ul>",
6114 - '<em>',
6115 - '</em>',
6116 - '<em>',
6117 - '</em>'
6118 - ) );
9064 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
9065 + __('%1$sSingle data:%2$s If you choose the Single Data option, the focus will be on the single data point. By this, the particular cell of the data table will be focused.', "chart-builder") . "</li><li>" .
9066 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
9067 + __('%1$sGroup data:%2$s If you choose the Group Data option, the focus will be on the grouped data points. By this, a row of the data table will be focused.', "chart-builder") . "</li></ul>",
9068 + '<em>', '</em>',
9069 + '<em>', '</em>'
9070 + ));
6119 9071 ?>">
6120 9072 <i class="ays_fa ays_fa_info_circle"></i>
6121 9073 </a>
6122 9074 </label>
@@ -6151,17 +9103,18 @@
6151 9103 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6152 9104 <label for="ays-chart-option-group-width">
6153 9105 <?php echo esc_html(__( "Bar width", "chart-builder" )); ?>
6154 9106 <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="<?php
6155 - echo htmlspecialchars( sprintf(
9107 + echo esc_html( sprintf(
9108 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6156 9109 "<p>" . __('The width of the bars, specified in either of these formats:', "chart-builder") . "</p><ul class='ays_tooltop_ul'><li>" .
6157 - __('%sPixels:%s Set the width of the bars in pixels.', "chart-builder") . "</li><li>" .
6158 - __('%sPercentage:%s Set the width of the bars in percentage.', "chart-builder") . "</li></ul>",
6159 - '<em>',
6160 - '</em>',
6161 - '<em>',
6162 - '</em>'
6163 - ) );
9110 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
9111 + __('%1$sPixels:%2$s Set the width of the bars in pixels.', "chart-builder") . "</li><li>" .
9112 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
9113 + __('%1$sPercentage:%2$s Set the width of the bars in percentage.', "chart-builder") . "</li></ul>",
9114 + '<em>', '</em>',
9115 + '<em>', '</em>'
9116 + ));
6164 9117 ?>">
6165 9118 <i class="ays_fa ays_fa_info_circle"></i>
6166 9119 </a>
6167 9120 </label>
@@ -6213,23 +9166,24 @@
6213 9166 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6214 9167 <label for="ays-chart-option-multiple-data-format">
6215 9168 <?php echo esc_html(__( "Multiple data format", "chart-builder" )); ?>
6216 9169 <a class="ays_help" data-bs-toggle="tooltip" data-bs-html="true" title="<?php
6217 - echo htmlspecialchars( sprintf(
9170 + echo esc_html( sprintf(
9171 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
6218 9172 "<p>" . __('How multiple data selections are rolled up into tooltips:', "chart-builder") . "</p><ul class='ays_tooltop_ul'><li>" .
6219 - __('%sCategory:%s Group selected data by row titles.', "chart-builder") . "</li><li>" .
6220 - __('%sSeries:%s Group selected data by column titles.', "chart-builder") . "</li><li>" .
6221 - __('%sAuto:%s Group selected data by row titles, if they have the same titles or by column titles', "chart-builder") . "</li><li>" .
6222 - __('%sNone:%s Show only one tooltip per selection.', "chart-builder") . "</li></ul>",
6223 - '<em>',
6224 - '</em>',
6225 - '<em>',
6226 - '</em>',
6227 - '<em>',
6228 - '</em>',
6229 - '<em>',
6230 - '</em>'
6231 - ) );
9173 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
9174 + __('%1$sCategory:%2$s Group selected data by row titles.', "chart-builder") . "</li><li>" .
9175 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
9176 + __('%1$sSeries:%2$s Group selected data by column titles.', "chart-builder") . "</li><li>" .
9177 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
9178 + __('%1$sAuto:%2$s Group selected data by row titles, if they have the same titles or by column titles', "chart-builder") . "</li><li>" .
9179 + /* translators: %1$s: Opening <em> tag, %2$s: Closing <em> tag */
9180 + __('%1$sNone:%2$s Show only one tooltip per selection.', "chart-builder") . "</li></ul>",
9181 + '<em>', '</em>',
9182 + '<em>', '</em>',
9183 + '<em>', '</em>',
9184 + '<em>', '</em>'
9185 + ));
6232 9186 ?>">
6233 9187 <i class="ays_fa ays_fa_info_circle"></i>
6234 9188 </a>
6235 9189 </label>
@@ -6384,15 +9338,15 @@
6384 9338 <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-dash-style" type="text" name="<?php echo esc_attr($html_name_prefix); ?>settings[dash_style]" value="<?php echo esc_attr($dash_style) ?>">
6385 9339 </div>
6386 9340 </div> <!-- Line dash pattern -->
6387 9341 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-donut_chart-opt display_none">
6388 - <div class="col-sm-5 d-flex align-items-center <?= $html_class_prefix ?>option-title">
9342 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6389 9343 <label for="ays-chart-option-donut-hole-size">
6390 - <?php echo __( "Hole size", $this->plugin_name ); ?>
9344 + <?php echo esc_html(__( "Hole size", 'chart-builder' )); ?>
6391 9345 </label>
6392 9346 </div>
6393 - <div class="col-sm-7 <?= $html_class_prefix ?>input-align-right <?= $html_class_prefix ?>option-input">
6394 - <input class="ays-text-input form-control <?= $html_class_prefix ?>option-text-input" id="ays-chart-option-donut-hole-size" type="number" min="0" max="1" step=".1" name="<?php echo $html_name_prefix; ?>settings[donut_hole_size]" value="<?= $donut_hole_size ?>">
9347 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right <?php echo esc_attr($html_class_prefix) ?>option-input">
9348 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-donut-hole-size" type="number" min="0" max="1" step=".1" name="<?php echo esc_attr($html_name_prefix); ?>settings[donut_hole_size]" value="<?php echo esc_attr($donut_hole_size) ?>">
6395 9349 </div>
6396 9350 </div> <!-- Donut hole size -->
6397 9351 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-line_chart-opt display_none ays-pro-features-v2-main-box">
6398 9352 <div class="ays-pro-features-v2-small-buttons-box-middle ays-pro-features-v2-big-buttons-box">
@@ -6399,20 +9353,20 @@
6399 9353 <div class="ays-pro-features-v2-video-button"></div>
6400 9354 <a href="https://ays-pro.com/wordpress/chart-builder" target="_blank" class="ays-pro-features-v2-upgrade-button">
6401 9355 <div class="ays-pro-features-v2-upgrade-icon" style="background-image: url('<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg');" data-img-src="<?php echo esc_attr(CHART_BUILDER_ADMIN_URL); ?>/images/icons/pro-features-icons/Locked_24x24.svg"></div>
6402 9356 <div class="ays-pro-features-v2-upgrade-text">
6403 - <?php echo __("Upgrade" , "chart-builder"); ?>
9357 + <?php echo esc_html(__("Upgrade" , "chart-builder")); ?>
6404 9358 </div>
6405 9359 </a>
6406 9360 </div>
6407 - <div class="col-sm-5 d-flex align-items-center <?= $html_class_prefix ?>option-title">
9361 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix )?>option-title">
6408 9362 <label for="ays-chart-option-curve-type">
6409 - <?php echo __( "Line curve type", "chart-builder" ); ?>
9363 + <?php echo esc_html(__( "Line curve type", "chart-builder" )); ?>
6410 9364 </label>
6411 9365 </div>
6412 9366 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
6413 - <select class="<?= $html_class_prefix ?>option-select-input form-select" id="ays-chart-option-line-curve-type" name="<?php echo $html_name_prefix; ?>settings[line_curve_type]">
6414 - <option><?php echo __( "Straight", "chart-builder" ); ?></option>
9367 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-line-curve-type" name="<?php echo esc_attr($html_name_prefix); ?>settings[line_curve_type]">
9368 + <option><?php echo esc_html(__( "Straight", "chart-builder" )); ?></option>
6415 9369 </select>
6416 9370 </div>
6417 9371 </div> <!-- Line curve type -->
6418 9372 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-org_chart-opt display_none">
@@ -6460,9 +9414,9 @@
6460 9414 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-org_chart-opt display_none">
6461 9415 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6462 9416 <label for="ays-chart-option-org-classname" class="form-label">
6463 9417 <?php echo esc_html(__( "Custom CSS class", "chart-builder" )); ?>
6464 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("A class name to assign to node elements to specify styles for the chart elements.","chart-builder") ); ?>">
9418 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("A class name to assign to node elements to specify styles for the chart elements.","chart-builder") ); ?>">
6465 9419 <i class="ays_fa ays_fa_info_circle"></i>
6466 9420 </a>
6467 9421 </label>
6468 9422 </div>
@@ -6473,9 +9427,11 @@
6473 9427 <div class="form-group mb-2 cb-changable-opt cb-org_chart-opt display_none">
6474 9428 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-org_chart-opt display_none" style="background:transparent;box-shadow:unset;padding:10px 0">
6475 9429 <br>
6476 9430 <blockquote>
6477 - <?php echo sprintf(__( "%sNote:%s Custom CSS class must be set for the options below to take effect.", $this->plugin_name ), '<strong>', '</strong>'); ?>
9431 + <?php echo sprintf(
9432 + /* translators: %1$s: Opening <strong> tag, %2$s: Closing </strong> tag */
9433 + esc_html(__( '%1$sNote:%2$s Custom CSS class must be set for the options below to take effect.', 'chart-builder' )), '<strong>', '</strong>'); ?>
6478 9434 </blockquote>
6479 9435 <br>
6480 9436 </div>
6481 9437 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-org_chart-opt display_none">
@@ -6573,9 +9529,9 @@
6573 9529 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-org_chart-opt display_none">
6574 9530 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6575 9531 <label for="ays-chart-option-org-selected-classname" class="form-label">
6576 9532 <?php echo esc_html(__( "Selected node custom CSS class", "chart-builder" )); ?>
6577 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("A class name to assign to node elements to specify styles for the selected chart elements.","chart-builder") ); ?>">
9533 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("A class name to assign to node elements to specify styles for the selected chart elements.","chart-builder") ); ?>">
6578 9534 <i class="ays_fa ays_fa_info_circle"></i>
6579 9535 </a>
6580 9536 </label>
6581 9537 </div>
@@ -6586,9 +9542,14 @@
6586 9542 <div class="form-group mb-2 cb-changable-opt cb-org_chart-opt display_none">
6587 9543 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-org_chart-opt display_none" style="background:transparent;box-shadow:unset;padding:10px 0">
6588 9544 <br>
6589 9545 <blockquote>
6590 - <?php echo sprintf(__( "%sNote:%s Selected node custom CSS class must be set for the options below to take effect.", $this->plugin_name ), '<strong>', '</strong>'); ?>
9546 + <?php echo sprintf(
9547 + /* translators: %1$s: Opening <strong> tag, %2$s: Closing </strong> tag */
9548 + esc_html(__( '%1$sNote:%2$s Selected node custom CSS class must be set for the options below to take effect. Add the Custom CSS Class so that the Selected node custom CSS class can operate correctly for you.', 'chart-builder' )),
9549 + '<strong>',
9550 + '</strong>'
9551 + ); ?>
6591 9552 </blockquote>
6592 9553 <br>
6593 9554 </div>
6594 9555 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-org_chart-opt display_none">
@@ -6640,8 +9601,16 @@
6640 9601 $outer_radius = $settings['outer_radius'];
6641 9602 $slice_spacing = $settings['slice_spacing'];
6642 9603 $circumference = $settings['circumference'];
6643 9604 $start_angle = $settings['start_angle'];
9605 + $rotation_degree = $settings['rotation_degree'];
9606 + $slice_border_color = $settings['slice_border_color'];
9607 + $slice_border_width = $settings['slice_border_width'];
9608 + $tooltip_text_options = $settings['tooltip_text_options'];
9609 + $tooltip_text = $settings['tooltip_text'];
9610 + $data_grouping_limit = $settings['data_grouping_limit'];
9611 + $data_grouping_label = $settings['data_grouping_label'];
9612 + $data_grouping_color = $settings['data_grouping_color'];
6644 9613 // $index_axis = $settings['index_axis'];
6645 9614
6646 9615 ob_start();
6647 9616 ?>
@@ -6702,8 +9671,108 @@
6702 9671 <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-start-angle" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[start_angle]" value="<?php echo esc_attr($start_angle) ?>">
6703 9672 <div class="<?php echo esc_attr($html_class_prefix) ?>option-desc-box">°</div>
6704 9673 </div>
6705 9674 </div> <!-- Start Angle -->
9675 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt display_none">
9676 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
9677 + <label for="ays-chart-option-rotation-degree" class="form-label">
9678 + <?php echo esc_html(__( "Degree of chart rotation", "chart-builder" )); ?>
9679 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The angle, in degrees, to rotate the chart by. The default of 0 will orient the leftmost edge of the first slice directly up.","chart-builder") ); ?>">
9680 + <i class="ays_fa ays_fa_info_circle"></i>
9681 + </a>
9682 + </label>
9683 + </div>
9684 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input <?php echo esc_attr($html_class_prefix) ?>input-align-right">
9685 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-rotation-degree" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[rotation_degree]" value="<?php echo esc_attr($rotation_degree) ?>">
9686 + </div>
9687 + </div> <!-- Rotation degree -->
9688 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt ">
9689 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
9690 + <label for="ays-chart-option-slice-border-width">
9691 + <?php echo esc_html(__( "Border Width", "chart-builder" )); ?>
9692 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The width of the slice borders.","chart-builder") ); ?>">
9693 + <i class="ays_fa ays_fa_info_circle"></i>
9694 + </a>
9695 + </label>
9696 + </div>
9697 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
9698 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-slice-border-width" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_border_width]" value="<?php echo esc_attr($slice_border_width) ?>">
9699 + </div>
9700 + </div> <!-- Border Width -->
9701 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt ">
9702 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
9703 + <label for="ays-chart-option-slice-border-color">
9704 + <?php echo esc_html(__( "Border Color", "chart-builder" )); ?>
9705 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color of the slice borders.","chart-builder") ); ?>">
9706 + <i class="ays_fa ays_fa_info_circle"></i>
9707 + </a>
9708 + </label>
9709 + </div>
9710 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
9711 + <input id="ays-chart-option-slice-border-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_border_color]" value="<?php echo esc_attr($slice_border_color) ?>">
9712 + </div>
9713 + </div> <!-- Slice border color -->
9714 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-donut_chart-opt">
9715 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
9716 + <label for="ays-chart-option-tooltip-text">
9717 + <?php echo esc_html(__( "Slice tooltip text", "chart-builder" )); ?>
9718 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("Choose how to display the text in the chart tooltip.","chart-builder") ); ?>">
9719 + <i class="ays_fa ays_fa_info_circle"></i>
9720 + </a>
9721 + </label>
9722 + </div>
9723 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
9724 + <select class="<?php echo esc_attr($html_class_prefix) ?>option-select-input form-select" id="ays-chart-option-tooltip-text" name="<?php echo esc_attr($html_name_prefix); ?>settings[tooltip_text]">
9725 + <?php
9726 + foreach ( $tooltip_text_options as $option_slug => $option ):
9727 + $selected = ( $tooltip_text == $option_slug ) ? 'selected' : '';
9728 + ?>
9729 + <option value="<?php echo esc_attr($option_slug); ?>" <?php echo esc_attr($selected); ?>><?php echo esc_html($option); ?></option>
9730 + <?php
9731 + endforeach;
9732 + ?>
9733 + </select>
9734 + </div>
9735 + </div> <!-- Slice tooltip Text -->
9736 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt display_none">
9737 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
9738 + <label for="ays-chart-option-data-grouping-limit" class="form-label">
9739 + <?php echo esc_html(__( "Chart Data Grouping Limit", "chart-builder" )); ?>
9740 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __( "The percentage value of the pie, below which a slice will not show individually. All slices that have not passed this value will be combined to a single 'Other' slice, whose size is the sum of all their sizes. Default is not to show individually any slice which is smaller than half a degree.", "chart-builder" ) ); ?>">
9741 + <i class="ays_fa ays_fa_info_circle"></i>
9742 + </a>
9743 + </label>
9744 + </div>
9745 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input <?php echo esc_attr($html_class_prefix) ?>input-align-right">
9746 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-data-grouping-limit" type="number" name="<?php echo esc_attr($html_name_prefix); ?>settings[data_grouping_limit]" value="<?php echo esc_attr($data_grouping_limit) ?>" step=".1" min="0" max="360">
9747 + </div>
9748 + </div> <!-- Data Grouping Limit -->
9749 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt display_none">
9750 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
9751 + <label for="ays-chart-option-data-grouping-label" class="form-label">
9752 + <?php echo esc_html(__( "Chart Data Grouping Label", "chart-builder" )); ?>
9753 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __( "A label for the combination slice that holds all slices below chart data grouping limit.", "chart-builder" ) ); ?>">
9754 + <i class="ays_fa ays_fa_info_circle"></i>
9755 + </a>
9756 + </label>
9757 + </div>
9758 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input">
9759 + <input class="ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input" id="ays-chart-option-data-grouping-label" type="text" name="<?php echo esc_attr($html_name_prefix); ?>settings[data_grouping_label]" value="<?php echo esc_attr($data_grouping_label) ?>">
9760 + </div>
9761 + </div> <!-- Data Grouping Label -->
9762 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt display_none">
9763 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
9764 + <label for="ays-chart-option-data-grouping-color">
9765 + <?php echo esc_html(__( "Chart Data Grouping Color", "chart-builder" )); ?>
9766 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __( "Color for the combination slice that holds all slices below chart data grouping limit.", "chart-builder" ) ); ?>">
9767 + <i class="ays_fa ays_fa_info_circle"></i>
9768 + </a>
9769 + </label>
9770 + </div>
9771 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
9772 + <input id="ays-chart-option-data-grouping-color" class="form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker" type="color" name="<?php echo esc_attr($html_name_prefix); ?>settings[data_grouping_color]" value="<?php echo esc_attr($data_grouping_color) ?>">
9773 + </div>
9774 + </div> <!-- Data Grouping Color -->
6706 9775 <!-- <div class="form-group row mb-2 <?php // echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-pie_chart-opt cb-donut_chart-opt display_none">
6707 9776 <div class="col-sm-5 d-flex align-items-center <?php // echo esc_attr($html_class_prefix) ?>option-title">
6708 9777 <label for="ays-chart-option-index-axis">
6709 9778 <?php // echo esc_html(__( "Horizontal ", "chart-builder" )); ?>
@@ -6746,15 +9815,15 @@
6746 9815 if ( !isset( $source[0] ) ) {
6747 9816 if (count($source[1]) > 2) {
6748 9817 $titles = array();
6749 9818 for ($i = 0; $i < count($source[1]); $i++) {
6750 - array_push($titles, __("Title", $this->plugin_name).$i);
9819 + array_push($titles, __("Title", 'chart-builder').$i);
6751 9820 }
6752 9821 $source[0] = $titles;
6753 9822 } else {
6754 9823 $source[0] = array(
6755 - __("Country", $this->plugin_name),
6756 - __("Population", $this->plugin_name),
9824 + __("Country", 'chart-builder'),
9825 + __("Population", 'chart-builder'),
6757 9826 );
6758 9827 }
6759 9828
6760 9829 ksort($source);
@@ -6787,9 +9856,9 @@
6787 9856 <g>
6788 9857 <path xmlns:default="http://www.w3.org/2000/svg" d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z" style="fill: #c4c4c4;" vector-effect="non-scaling-stroke" />
6789 9858 </g>
6790 9859 </svg>
6791 - <span><?php echo $val[0]; ?></span>
9860 + <span><?php echo esc_html($val[0]); ?></span>
6792 9861 </legend>
6793 9862 <div class="ays-slices-accordion-options-content ays-slices-accordion-options-content">
6794 9863 <div class="ays-slices-accordion-data-main-wrap">
6795 9864 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
@@ -6796,9 +9865,9 @@
6796 9865 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6797 9866 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6798 9867 <label for="ays-chart-option-slice-color">
6799 9868 <?php echo esc_html(__( "Color", "chart-builder" )); ?>
6800 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The color to use for this slice.","chart-builder") ); ?>">
9869 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color to use for this slice.","chart-builder") ); ?>">
6801 9870 <i class="ays_fa ays_fa_info_circle"></i>
6802 9871 </a>
6803 9872 </label>
6804 9873 </div>
@@ -6803,13 +9872,13 @@
6803 9872 </label>
6804 9873 </div>
6805 9874 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
6806 9875 <input type="color"
6807 - id="ays-chart-option-slice-color-<?php echo $key; ?>"
9876 + id="ays-chart-option-slice-color-<?php echo esc_attr($key); ?>"
6808 9877 class="ays-chart-option-slice-color form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker"
6809 - name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_color][<?php echo $key; ?>]"
6810 - value="<?php echo isset($slice_color[$key]) ? esc_attr($slice_color[$key]) : $slice_colors_default[$key]; ?>"
6811 - data-slice-id="<?php echo $key; ?>">
9878 + name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_color][<?php echo esc_attr($key); ?>]"
9879 + value="<?php echo isset($slice_color[$key]) ? esc_attr($slice_color[$key]) : esc_attr($slice_colors_default[$key]); ?>"
9880 + data-slice-id="<?php echo esc_attr($key); ?>">
6812 9881 </div>
6813 9882 </div> <!-- Slice color -->
6814 9883 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6815 9884 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -6821,13 +9890,13 @@
6821 9890 </label>
6822 9891 </div>
6823 9892 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>option-input <?php echo esc_attr($html_class_prefix) ?>input-align-right">
6824 9893 <input type="number"
6825 - id="ays-chart-option-slice-offset-<?php echo $key; ?>"
9894 + id="ays-chart-option-slice-offset-<?php echo esc_attr($key); ?>"
6826 9895 class="ays-chart-option-slice-offset ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input"
6827 - name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_offset][<?php echo $key; ?>]"
9896 + name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_offset][<?php echo esc_attr($key); ?>]"
6828 9897 value="<?php echo isset($slice_offset[$key]) ? esc_attr($slice_offset[$key]) : 0 ; ?>"
6829 - data-slice-id="<?php echo $key; ?>"
9898 + data-slice-id="<?php echo esc_attr($key); ?>"
6830 9899 step=".01" min="0.0" max="1.0">
6831 9900 </div>
6832 9901 </div> <!-- Slice offset -->
6833 9902 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
@@ -6833,9 +9902,9 @@
6833 9902 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6834 9903 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6835 9904 <label for="ays-chart-option-slice-text-color">
6836 9905 <?php echo esc_html(__( "Text color", "chart-builder" )); ?>
6837 - <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The color to use for the text of this slice.","chart-builder") ); ?>">
9906 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color to use for the text of this slice.","chart-builder") ); ?>">
6838 9907 <i class="ays_fa ays_fa_info_circle"></i>
6839 9908 </a>
6840 9909 </label>
6841 9910 </div>
@@ -6840,13 +9909,13 @@
6840 9909 </label>
6841 9910 </div>
6842 9911 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
6843 9912 <input type="color"
6844 - id="ays-chart-option-slice-text-color-<?php echo $key; ?>"
9913 + id="ays-chart-option-slice-text-color-<?php echo esc_attr($key); ?>"
6845 9914 class="ays-chart-option-slice-text-color form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker"
6846 - name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_text_color][<?php echo $key; ?>]"
9915 + name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_text_color][<?php echo esc_attr($key); ?>]"
6847 9916 value="<?php echo isset($slice_text_color[$key]) ? esc_attr($slice_text_color[$key]) : '#ffffff'; ?>"
6848 - data-slice-id="<?php echo $key; ?>">
9917 + data-slice-id="<?php echo esc_attr($key); ?>">
6849 9918 </div>
6850 9919 </div> <!-- Slice color -->
6851 9920 </div>
6852 9921 </div>
@@ -6858,9 +9927,9 @@
6858 9927 </div>
6859 9928 </div>
6860 9929 <br>
6861 9930 <blockquote>
6862 - <?php echo __( "Save the chart to update the data.", $this->plugin_name ); ?>
9931 + <?php echo esc_html(__( "Save the chart to update the data.", "chart-builder" )); ?>
6863 9932 </blockquote>
6864 9933 </div>
6865 9934 <?php
6866 9935
@@ -6871,9 +9940,9 @@
6871 9940 }
6872 9941
6873 9942 $content = ob_get_clean();
6874 9943
6875 - $title = __( 'Slices settings', "chart-builder" );
9944 + $title = esc_html(__( 'Slices settings', 'chart-builder' ));
6876 9945
6877 9946 $sources['slices_settings'] = array(
6878 9947 'content' => $content,
6879 9948 'title' => $title
@@ -6880,9 +9949,139 @@
6880 9949 );
6881 9950
6882 9951 return $sources;
6883 9952 }
9953 +
9954 + public function settings_contents_slices_settings_chartjs( $sources, $args ){
9955 + $html_class_prefix = $args['html_class_prefix'];
9956 + $html_name_prefix = $args['html_name_prefix'];
9957 + $settings = $args['settings'];
9958 + $source = $args['source'];
9959 + $source = isset($source["commonTypeCharts"]) ? $source["commonTypeCharts"] : $source;
9960 + $source_chart_type = $args['source_chart_type'];
9961 + $settings = $args['settings'];
9962 + $title_row = array_shift($source);
6884 9963
9964 + if (isset($source) && !empty($source)) {
9965 + if ( !isset( $source[0] ) ) {
9966 + if (count($source[1]) > 2) {
9967 + $titles = array();
9968 + for ($i = 0; $i < count($source[1]); $i++) {
9969 + array_push($titles, __("Title", 'chart-builder').$i);
9970 + }
9971 + $source[0] = $titles;
9972 + } else {
9973 + $source[0] = array(
9974 + __("Country", 'chart-builder'),
9975 + __("Population", 'chart-builder'),
9976 + );
9977 + }
9978 +
9979 + ksort($source);
9980 + }
9981 + }
9982 +
9983 + if ($source_chart_type == 'pie_chart') {
9984 + foreach ($source as $key => $row) {
9985 + $source[$key] = array_slice($row, 0, 2);
9986 + }
9987 + }
9988 +
9989 + ob_start();
9990 + if ($source_chart_type == 'pie_chart') {
9991 + $slice_color = $settings['slice_color'];
9992 + $slices_border_color = $settings['slices_border_color'];
9993 + $slice_colors_default = $settings['slice_colors_default'];
9994 +
9995 + ?>
9996 + <div class="ays-accordion-data-main-wrap <?php echo esc_attr($html_class_prefix) ?>options-slices-settings-tab cb-changable-tab cb-pie_chart-tab cb-donut_chart-tab">
9997 + <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
9998 + <div class="<?php echo esc_attr($html_class_prefix) ?>slices-settings">
9999 + <?php
10000 + foreach ( $source as $key => $val ):
10001 + ?>
10002 + <fieldset class="ays-slices-accordion-options-container <?php echo esc_attr($html_class_prefix) ?>options-slices-<?php echo esc_attr($key); ?>" data-collapsed="true">
10003 + <legend class="ays-slices-accordion-options-header">
10004 + <svg class="ays-slices-accordion-arrow ays-slices-accordion-arrow-right" version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 24 24" width="20" height="20">
10005 + <g>
10006 + <path xmlns:default="http://www.w3.org/2000/svg" d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z" style="fill: #c4c4c4;" vector-effect="non-scaling-stroke" />
10007 + </g>
10008 + </svg>
10009 + <span><?php echo esc_html($val[0]); ?></span>
10010 + </legend>
10011 + <div class="ays-slices-accordion-options-content ays-slices-accordion-options-content">
10012 + <div class="ays-slices-accordion-data-main-wrap">
10013 + <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
10014 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
10015 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
10016 + <label for="ays-chart-option-slice-color">
10017 + <?php echo esc_html(__( "Color", "chart-builder" )); ?>
10018 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color to use for this slice.","chart-builder") ); ?>">
10019 + <i class="ays_fa ays_fa_info_circle"></i>
10020 + </a>
10021 + </label>
10022 + </div>
10023 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
10024 + <input type="color"
10025 + id="ays-chart-option-slice-color-<?php echo esc_attr($key); ?>"
10026 + class="ays-chart-option-slice-color form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker"
10027 + name="<?php echo esc_attr($html_name_prefix); ?>settings[slice_color][<?php echo esc_attr($key); ?>]"
10028 + value="<?php echo isset($slice_color[$key]) ? esc_attr($slice_color[$key]) : esc_attr($slice_colors_default[$key]); ?>"
10029 + data-slice-id="<?php echo esc_attr($key); ?>">
10030 + </div>
10031 + </div> <!-- Slice color -->
10032 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
10033 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
10034 + <label for="ays-chart-option-slice-border-color">
10035 + <?php echo esc_html(__( "Border Color", "chart-builder" )); ?>
10036 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo esc_attr( __("The color to use for this slice border.","chart-builder") ); ?>">
10037 + <i class="ays_fa ays_fa_info_circle"></i>
10038 + </a>
10039 + </label>
10040 + </div>
10041 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
10042 + <input type="color"
10043 + id="ays-chart-option-slice-border-color-<?php echo esc_attr($key); ?>"
10044 + class="ays-chart-option-slice-border-color form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker"
10045 + name="<?php echo esc_attr($html_name_prefix); ?>settings[slices_border_color][<?php echo esc_attr($key); ?>]"
10046 + value="<?php echo isset($slices_border_color[$key]) ? esc_attr($slices_border_color[$key]) : esc_attr($settings['slice_border_color']); ?>"
10047 + data-slice-id="<?php echo esc_attr($key); ?>">
10048 + </div>
10049 + </div> <!-- Slice border color -->
10050 + </div>
10051 + </div>
10052 + </div>
10053 + </fieldset>
10054 + <?php
10055 + endforeach;
10056 + ?>
10057 + </div>
10058 + </div>
10059 + <br>
10060 + <blockquote>
10061 + <?php echo esc_html(__( "Save the chart to update the data.", "chart-builder" )); ?>
10062 + </blockquote>
10063 + </div>
10064 + <?php
10065 +
10066 + } else {
10067 + ?>
10068 + <div class="ays-accordion-data-main-wrap <?php echo esc_attr($html_class_prefix) ?>options-slices-settings-tab cb-changable-tab cb-pie_chart-tab cb-donut_chart-tab"></div>
10069 + <?php
10070 + }
10071 +
10072 + $content = ob_get_clean();
10073 +
10074 + $title = esc_html(__( 'Slices settings', 'chart-builder' ));
10075 +
10076 + $sources['slices_settings'] = array(
10077 + 'content' => $content,
10078 + 'title' => $title
10079 + );
10080 +
10081 + return $sources;
10082 + }
10083 +
6885 10084 public function settings_contents_series_settings( $sources, $args ){
6886 10085 $html_class_prefix = $args['html_class_prefix'];
6887 10086 $html_name_prefix = $args['html_name_prefix'];
6888 10087 $settings = $args['settings'];
@@ -6899,15 +10098,15 @@
6899 10098 if ( !isset( $source[0] ) ) {
6900 10099 if (count($source[1]) > 2) {
6901 10100 $titles = array();
6902 10101 for ($i = 0; $i < count($source[1]); $i++) {
6903 - array_push($titles, __("Title", $this->plugin_name).$i);
10102 + array_push($titles, __("Title", "chart-builder").$i);
6904 10103 }
6905 10104 $source[0] = $titles;
6906 10105 } else {
6907 10106 $source[0] = array(
6908 - __("Country", $this->plugin_name),
6909 - __("Population", $this->plugin_name),
10107 + __("Country", "chart-builder"),
10108 + __("Population", "chart-builder"),
6910 10109 );
6911 10110 }
6912 10111
6913 10112 ksort($source);
@@ -6925,8 +10124,9 @@
6925 10124 $series_row = array_shift($source);
6926 10125 $title = array_shift($series_row);
6927 10126 $series_color = $settings['series_color'];
6928 10127 $series_colors_default = $settings['series_colors_default'];
10128 + $series_format = $settings['series_format'];
6929 10129 $series_visible_in_legend = $settings['series_visible_in_legend'];
6930 10130 $series_line_width = $settings['series_line_width'];
6931 10131 $series_point_size = $settings['series_point_size'];
6932 10132 $series_point_shape = $settings['series_point_shape'];
@@ -6944,9 +10144,9 @@
6944 10144 <g>
6945 10145 <path xmlns:default="http://www.w3.org/2000/svg" d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z" style="fill: #c4c4c4;" vector-effect="non-scaling-stroke" />
6946 10146 </g>
6947 10147 </svg>
6948 - <span><?php echo $val; ?></span>
10148 + <span><?php echo esc_attr($val); ?></span>
6949 10149 </legend>
6950 10150 <div class="ays-series-accordion-options-content ays-series-accordion-options-content">
6951 10151 <div class="ays-series-accordion-data-main-wrap">
6952 10152 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
@@ -6957,13 +10157,13 @@
6957 10157 </label>
6958 10158 </div>
6959 10159 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
6960 10160 <input type="color"
6961 - id="ays-chart-option-series-color-<?php echo $key; ?>"
10161 + id="ays-chart-option-series-color-<?php echo esc_attr($key); ?>"
6962 10162 class="ays-chart-option-series-color form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker"
6963 - name="<?php echo esc_attr($html_name_prefix); ?>settings[series_color][<?php echo $key; ?>]"
6964 - value="<?php echo isset($series_color[$key]) ? esc_attr($series_color[$key]) : $series_colors_default[$key]; ?>"
6965 - data-series-id="<?php echo $key; ?>">
10163 + name="<?php echo esc_attr($html_name_prefix); ?>settings[series_color][<?php echo esc_attr($key); ?>]"
10164 + value="<?php echo isset($series_color[$key]) ? esc_attr($series_color[$key]) : esc_attr($series_colors_default[$key]); ?>"
10165 + data-series-id="<?php echo esc_attr($key); ?>">
6966 10166 </div>
6967 10167 </div> <!-- series color -->
6968 10168 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
6969 10169 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -6976,18 +10176,36 @@
6976 10176 </div>
6977 10177 <div class="col-sm-7 py-1 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
6978 10178 <label class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-switch">
6979 10179 <input type="checkbox"
6980 - id="ays-chart-option-series-visible-in-legend-<?php echo $key; ?>"
10180 + id="ays-chart-option-series-visible-in-legend-<?php echo esc_attr($key); ?>"
6981 10181 class="ays-chart-option-series-visible-in-legend <?php echo esc_attr($html_class_prefix) ?>toggle-switch"
6982 - name="<?php echo esc_attr($html_name_prefix); ?>settings[series_visible_in_legend][<?php echo $key; ?>]"
10182 + name="<?php echo esc_attr($html_name_prefix); ?>settings[series_visible_in_legend][<?php echo esc_attr($key); ?>]"
6983 10183 value="on"
6984 - data-series-id="<?php echo $key; ?>"
10184 + data-series-id="<?php echo esc_attr($key); ?>"
6985 10185 <?php echo isset($series_visible_in_legend[$key]) && $series_visible_in_legend[$key] == 'on' ? 'checked' : (!isset($series_color[$key]) ? 'checked' : ''); ?> >
6986 10186 <span class="<?php echo esc_attr($html_class_prefix) ?>toggle-switch-slider <?php echo esc_attr($html_class_prefix) ?>toggle-switch-round"></span>
6987 10187 </label>
6988 10188 </div>
6989 10189 </div> <!-- Series visible in legend -->
10190 + <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
10191 + <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
10192 + <label for="ays-chart-option-series-color">
10193 + <?php echo esc_html(__( "Format", "chart-builder" )); ?>
10194 + <a class="ays_help" data-bs-toggle="tooltip" title="<?php echo htmlspecialchars( __("The format of series data. The format string is a subset of the ICU pattern set . For instance, '#,###%' will result in output values '1,000%', '750%', and '50%' for values 10, 7.5, and 0.5. Note: This option won't work if the axes 'Remove Extra Zeros' option is enabled.","chart-builder") ); ?>">
10195 + <i class="ays_fa ays_fa_info_circle"></i>
10196 + </a>
10197 + </label>
10198 + </div>
10199 + <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
10200 + <input type="text"
10201 + id="ays-chart-option-series-format-<?php echo $key; ?>"
10202 + class="ays-chart-option-series-format ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input"
10203 + name="<?php echo esc_attr($html_name_prefix); ?>settings[series_format][<?php echo $key; ?>]"
10204 + value="<?php echo isset($series_format[$key]) && '' !== $series_format[$key] ? esc_attr($series_format[$key]) : ''; ?>"
10205 + data-series-id="<?php echo $key; ?>">
10206 + </div>
10207 + </div> <!-- Format -->
6990 10208 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-line_chart-opt display_none">
6991 10209 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
6992 10210 <label for="ays-chart-option-series-line-width">
6993 10211 <?php echo esc_html(__( "Line width", "chart-builder" )); ?>
@@ -6997,13 +10215,13 @@
6997 10215 </label>
6998 10216 </div>
6999 10217 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7000 10218 <input type="number"
7001 - id="ays-chart-option-series-line-width-<?php echo $key; ?>"
10219 + id="ays-chart-option-series-line-width-<?php echo esc_attr($key); ?>"
7002 10220 class="ays-chart-option-series-line-width ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input"
7003 - name="<?php echo esc_attr($html_name_prefix); ?>settings[series_line_width][<?php echo $key; ?>]"
7004 - value="<?php echo isset($series_line_width[$key]) ? esc_attr($series_line_width[$key]) : $line_width; ?>"
7005 - data-series-id="<?php echo $key; ?>">
10221 + name="<?php echo esc_attr($html_name_prefix); ?>settings[series_line_width][<?php echo esc_attr($key); ?>]"
10222 + value="<?php echo isset($series_line_width[$key]) ? esc_attr($series_line_width[$key]) : esc_attr($line_width); ?>"
10223 + data-series-id="<?php echo esc_attr($key); ?>">
7006 10224 </div>
7007 10225 </div> <!-- Line width -->
7008 10226 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-line_chart-opt display_none">
7009 10227 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -7015,13 +10233,13 @@
7015 10233 </label>
7016 10234 </div>
7017 10235 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7018 10236 <input type="number"
7019 - id="ays-chart-option-series-point-size-<?php echo $key; ?>"
10237 + id="ays-chart-option-series-point-size-<?php echo esc_attr($key); ?>"
7020 10238 class="ays-chart-option-series-point-size ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input"
7021 - name="<?php echo esc_attr($html_name_prefix); ?>settings[series_point_size][<?php echo $key; ?>]"
7022 - value="<?php echo isset($series_point_size[$key]) ? esc_attr($series_point_size[$key]) : $point_size; ?>"
7023 - data-series-id="<?php echo $key; ?>">
10239 + name="<?php echo esc_attr($html_name_prefix); ?>settings[series_point_size][<?php echo esc_attr($key); ?>]"
10240 + value="<?php echo isset($series_point_size[$key]) ? esc_attr($series_point_size[$key]) : esc_attr($point_size); ?>"
10241 + data-series-id="<?php echo esc_attr($key); ?>">
7024 10242 </div>
7025 10243 </div> <!-- Point size -->
7026 10244 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section cb-changable-opt cb-line_chart-opt display_none">
7027 10245 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -7033,12 +10251,12 @@
7033 10251 </label>
7034 10252 </div>
7035 10253 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7036 10254 <select
7037 - id="ays-chart-option-series-point-shape-<?php echo $key; ?>"
10255 + id="ays-chart-option-series-point-shape-<?php echo esc_attr($key); ?>"
7038 10256 class="ays-chart-option-series-point-shape <?php echo esc_attr($html_class_prefix) ?>option-select-input form-select"
7039 - name="<?php echo esc_attr($html_name_prefix); ?>settings[series_point_shape][<?php echo $key; ?>]"
7040 - data-series-id="<?php echo $key; ?>">
10257 + name="<?php echo esc_attr($html_name_prefix); ?>settings[series_point_shape][<?php echo esc_attr($key); ?>]"
10258 + data-series-id="<?php echo esc_attr($key); ?>">
7041 10259 >
7042 10260 <?php
7043 10261 $value = isset($series_point_shape[$key]) ? esc_attr($series_point_shape[$key]) : $point_shape;
7044 10262 foreach ( $point_shape_options as $option_slug => $option ):
@@ -7061,11 +10279,16 @@
7061 10279 </div>
7062 10280 </div>
7063 10281 <br>
7064 10282 <blockquote>
7065 - <?php echo __( "Save the chart to update the data.", $this->plugin_name ); ?>
10283 + <?php echo esc_html(__( "Save the chart to update the data.", 'chart-builder' )); ?>
7066 10284 <br>
7067 - <?php echo sprintf(__( "%sNote:%s If you are not able to set the options, disable the row settings feature.", $this->plugin_name ), '<strong>', '</strong>'); ?>
10285 + <?php echo sprintf(
10286 + /* translators: %1$s: Opening <strong> tag, %2$s: Closing </strong> tag */
10287 + esc_html(__( '%1$sNote:%2$s If you are not able to set the options, disable the row settings feature.', 'chart-builder' )),
10288 + '<strong>',
10289 + '</strong>'
10290 + ); ?>
7068 10291 </blockquote>
7069 10292 </div>
7070 10293 <?php
7071 10294
@@ -7099,15 +10322,15 @@
7099 10322 if ( !isset( $source[0] ) ) {
7100 10323 if (count($source[1]) > 2) {
7101 10324 $titles = array();
7102 10325 for ($i = 0; $i < count($source[1]); $i++) {
7103 - array_push($titles, __("Title", $this->plugin_name).$i);
10326 + array_push($titles, __("Title", 'chart-builder').$i);
7104 10327 }
7105 10328 $source[0] = $titles;
7106 10329 } else {
7107 10330 $source[0] = array(
7108 - __("Country", $this->plugin_name),
7109 - __("Population", $this->plugin_name),
10331 + __("Country", 'chart-builder'),
10332 + __("Population", 'chart-builder'),
7110 10333 );
7111 10334 }
7112 10335
7113 10336 ksort($source);
@@ -7153,9 +10376,9 @@
7153 10376 <g>
7154 10377 <path xmlns:default="http://www.w3.org/2000/svg" d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z" style="fill: #c4c4c4;" vector-effect="non-scaling-stroke" />
7155 10378 </g>
7156 10379 </svg>
7157 - <span><?php echo $val; ?></span>
10380 + <span><?php echo esc_html($val); ?></span>
7158 10381 </legend>
7159 10382 <div class="ays-rows-accordion-options-content ays-rows-accordion-options-content">
7160 10383 <div class="ays-rows-accordion-data-main-wrap">
7161 10384 <div class="<?php echo esc_attr($html_class_prefix) ?>settings-data-main-wrap">
@@ -7166,13 +10389,13 @@
7166 10389 </label>
7167 10390 </div>
7168 10391 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7169 10392 <input type="color"
7170 - id="ays-chart-option-rows-color-<?php echo $key; ?>"
10393 + id="ays-chart-option-rows-color-<?php echo esc_attr($key); ?>"
7171 10394 class="ays-chart-option-rows-color form-control-color <?php echo esc_attr($html_class_prefix) ?>option-color-picker"
7172 - name="<?php echo esc_attr($html_name_prefix); ?>settings[rows_color][<?php echo $key; ?>]"
7173 - value="<?php echo isset($rows_color[$key]) && '' !== $rows_color[$key] ? esc_attr($rows_color[$key]) : $series_color; ?>"
7174 - data-rows-id="<?php echo $key; ?>">
10395 + name="<?php echo esc_attr($html_name_prefix); ?>settings[rows_color][<?php echo esc_attr($key); ?>]"
10396 + value="<?php echo isset($rows_color[$key]) && '' !== $rows_color[$key] ? esc_attr($rows_color[$key]) : esc_attr($series_color); ?>"
10397 + data-rows-id="<?php echo esc_attr($key); ?>">
7175 10398 </div>
7176 10399 </div> <!-- color -->
7177 10400 <div class="form-group row mb-2 <?php echo esc_attr($html_class_prefix) ?>options-section">
7178 10401 <div class="col-sm-5 d-flex align-items-center <?php echo esc_attr($html_class_prefix) ?>option-title">
@@ -7181,13 +10404,13 @@
7181 10404 </label>
7182 10405 </div>
7183 10406 <div class="col-sm-7 <?php echo esc_attr($html_class_prefix) ?>input-align-right">
7184 10407 <input type="number"
7185 - id="ays-chart-option-rows-opacity-<?php echo $key; ?>"
10408 + id="ays-chart-option-rows-opacity-<?php echo esc_attr($key); ?>"
7186 10409 class="ays-chart-option-rows-opacity ays-text-input form-control <?php echo esc_attr($html_class_prefix) ?>option-text-input"
7187 - name="<?php echo esc_attr($html_name_prefix); ?>settings[rows_opacity][<?php echo $key; ?>]"
10410 + name="<?php echo esc_attr($html_name_prefix); ?>settings[rows_opacity][<?php echo esc_attr($key); ?>]"
7188 10411 value="<?php echo isset($rows_opacity[$key]) && '' !== $rows_opacity[$key] ? esc_attr($rows_opacity[$key]) : 1.0; ?>"
7189 - data-rows-id="<?php echo $key; ?>"
10412 + data-rows-id="<?php echo esc_attr($key); ?>"
7190 10413 step=".1" min="0" max="1">
7191 10414 </div>
7192 10415 </div> <!-- opacity -->
7193 10416 </div>
@@ -7198,17 +10421,27 @@
7198 10421 endforeach;
7199 10422 ?>
7200 10423 <br>
7201 10424 <blockquote>
7202 - <?php echo __( "Save the chart to update the data.", $this->plugin_name ); ?>
10425 + <?php echo esc_html(__( "Save the chart to update the data.", 'chart-builder' )); ?>
7203 10426 <br>
7204 - <?php echo sprintf(__( "%sNote:%s The applied styles will work only if the chart has one column.", $this->plugin_name ), '<strong>', '</strong>'); ?>
10427 + <?php echo sprintf(
10428 + /* translators: %1$s: Opening <strong> tag, %2$s: Closing </strong> tag */
10429 + esc_html(__( '%1$sNote:%2$s The applied styles will work only if the chart has one column.', 'chart-builder' )),
10430 + '<strong>',
10431 + '</strong>'
10432 + ); ?>
7205 10433 </blockquote>
7206 10434 </div>
7207 10435 <div class="<?php echo esc_attr($html_class_prefix) ?>not-hidden-options-section <?php echo $enable_row_settings === 'checked' ? 'display_none' : ''; ?>">
7208 10436 <br>
7209 10437 <blockquote>
7210 - <?php echo sprintf(__( "%sNote:%s If this option is disabled, the general options will be set from the series settings.", $this->plugin_name ), '<strong>', '</strong>'); ?>
10438 + <?php echo sprintf(
10439 + /* translators: %1$s: Opening <strong> tag, %2$s: Closing </strong> tag */
10440 + esc_html(__( '%1$sNote:%2$s If this option is disabled, the general options will be set from the series settings.', 'chart-builder' )),
10441 + '<strong>',
10442 + '</strong>'
10443 + ); ?>
7211 10444 </blockquote>
7212 10445 </div>
7213 10446 </div>
7214 10447 </div>
@@ -7223,5 +10456,60 @@
7223 10456 );
7224 10457
7225 10458 return $sources;
7226 10459 }
10460 +
10461 + public function ays_chart_disable_all_notice_from_plugin() {
10462 + if (!function_exists('get_current_screen')) {
10463 + return;
10464 + }
10465 +
10466 + $screen = get_current_screen();
10467 +
10468 + if (empty($screen) || strpos($screen->id, $this->plugin_name) === false) {
10469 + return;
10470 + }
10471 +
10472 + global $wp_filter;
10473 +
10474 + // Keep plugin-specific notices
10475 + $our_plugin_notices = array();
10476 +
10477 + $exclude_functions = [
10478 + 'chart_builder_general_admin_notice',
10479 + ];
10480 +
10481 + if (!empty($wp_filter['admin_notices'])) {
10482 + foreach ($wp_filter['admin_notices']->callbacks as $priority => $callbacks) {
10483 + foreach ($callbacks as $key => $callback) {
10484 + // For class-based methods
10485 + if (
10486 + is_array($callback['function']) &&
10487 + is_object($callback['function'][0]) &&
10488 + get_class($callback['function'][0]) === __CLASS__
10489 + ) {
10490 + $our_plugin_notices[$priority][$key] = $callback;
10491 + }
10492 + // For standalone functions
10493 + elseif (
10494 + is_string($callback['function']) &&
10495 + in_array($callback['function'], $exclude_functions)
10496 + ) {
10497 + $our_plugin_notices[$priority][$key] = $callback;
10498 + }
10499 + }
10500 + }
10501 + }
10502 +
10503 + // Remove all notices
10504 + remove_all_actions('admin_notices');
10505 + remove_all_actions('all_admin_notices');
10506 +
10507 + // Re-add only your plugin's notices
10508 + foreach ($our_plugin_notices as $priority => $callbacks) {
10509 + foreach ($callbacks as $callback) {
10510 + add_action('admin_notices', $callback['function'], $priority);
10511 + }
10512 + }
10513 + }
10514 +
7227 10515 }