| @@ -53,9 +53,9 @@ | ||
| 53 | 53 | parent::__construct( $plugin ); |
| 54 | 54 | $this->_addAction( 'load-post.php', 'enqueueMediaScripts' ); |
| 55 | 55 | $this->_addAction( 'load-post-new.php', 'enqueueMediaScripts' ); |
| 56 | 56 | $this->_addAction( 'admin_footer', 'renderTemplates' ); |
| 57 | - $this->_addAction( 'admin_enqueue_scripts', 'enqueueLibraryScripts', null, 0 ); | |
| 57 | + $this->_addAction( 'admin_enqueue_scripts', 'enqueueLibraryScripts', null, 8 ); | |
| 58 | 58 | $this->_addAction( 'admin_menu', 'registerAdminMenu' ); |
| 59 | 59 | $this->_addFilter( 'media_view_strings', 'setupMediaViewStrings' ); |
| 60 | 60 | $this->_addFilter( 'plugin_action_links', 'getPluginActionLinks', 10, 2 ); |
| 61 | 61 | $this->_addFilter( 'plugin_row_meta', 'getPluginMetaLinks', 10, 2 ); |
| @@ -73,10 +73,8 @@ | ||
| 73 | 73 | $this->_addAction( 'visualizer_chart_schedules_spl', 'addSplChartSchedules', null, 10, 3 ); |
| 74 | 74 | |
| 75 | 75 | $this->_addAction( 'admin_init', 'init' ); |
| 76 | 76 | |
| 77 | - $this->_addAction( 'visualizer_chart_languages', 'addMultilingualSupport' ); | |
| 78 | - | |
| 79 | 77 | if ( defined( 'TI_CYPRESS_TESTING' ) ) { |
| 80 | 78 | $this->load_cypress_hooks(); |
| 81 | 79 | } |
| 82 | 80 | |
| @@ -366,9 +364,9 @@ | ||
| 366 | 364 | 'filters' => $chart_types, |
| 367 | 365 | 'types' => array_keys( $chart_types ), |
| 368 | 366 | ), |
| 369 | 367 | 'nonce' => wp_create_nonce(), |
| 370 | - 'buildurl' => esc_url( add_query_arg( 'action', Visualizer_Plugin::ACTION_CREATE_CHART, admin_url( 'admin-ajax.php' ) ) ), | |
| 368 | + 'buildurl' => add_query_arg( 'action', Visualizer_Plugin::ACTION_CREATE_CHART, admin_url( 'admin-ajax.php' ) ), | |
| 371 | 369 | ); |
| 372 | 370 | |
| 373 | 371 | return $strings; |
| 374 | 372 | } |
| @@ -390,10 +388,8 @@ | ||
| 390 | 388 | 'enabled' => true, |
| 391 | 389 | ); |
| 392 | 390 | } |
| 393 | 391 | |
| 394 | - $enabled = self::proFeaturesLocked(); | |
| 395 | - | |
| 396 | 392 | $types = array_merge( |
| 397 | 393 | $additional, |
| 398 | 394 | array( |
| 399 | 395 | 'tabular' => array( |
| @@ -398,60 +394,60 @@ | ||
| 398 | 394 | array( |
| 399 | 395 | 'tabular' => array( |
| 400 | 396 | 'name' => esc_html__( 'Table', 'visualizer' ), |
| 401 | 397 | 'enabled' => true, |
| 402 | - 'supports' => $enabled ? array( 'Google Charts', 'DataTable' ) : array( 'DataTable' ), | |
| 398 | + 'supports' => array( 'Google Charts', 'DataTable' ), | |
| 403 | 399 | ), |
| 404 | 400 | 'pie' => array( |
| 405 | 401 | 'name' => esc_html__( 'Pie/Donut', 'visualizer' ), |
| 406 | 402 | 'enabled' => true, |
| 407 | - 'supports' => $enabled ? array( 'Google Charts', 'ChartJS' ) : array( 'Google Charts' ), | |
| 403 | + 'supports' => array( 'Google Charts', 'ChartJS' ), | |
| 408 | 404 | ), |
| 409 | 405 | 'line' => array( |
| 410 | 406 | 'name' => esc_html__( 'Line', 'visualizer' ), |
| 411 | 407 | 'enabled' => true, |
| 412 | - 'supports' => $enabled ? array( 'Google Charts', 'ChartJS' ) : array( 'Google Charts' ), | |
| 408 | + 'supports' => array( 'Google Charts', 'ChartJS' ), | |
| 413 | 409 | ), |
| 414 | - 'bar' => array( | |
| 415 | - 'name' => esc_html__( 'Bar', 'visualizer' ), | |
| 416 | - 'enabled' => true, | |
| 417 | - 'supports' => $enabled ? array( 'Google Charts', 'ChartJS' ) : array( 'Google Charts' ), | |
| 418 | - ), | |
| 419 | 410 | 'area' => array( |
| 420 | 411 | 'name' => esc_html__( 'Area', 'visualizer' ), |
| 421 | - 'enabled' => $enabled, | |
| 412 | + 'enabled' => true, | |
| 422 | 413 | // in ChartJS, the fill option is used to make Line chart an area: https://www.chartjs.org/docs/latest/charts/area.html |
| 423 | 414 | 'supports' => array( 'Google Charts' ), |
| 424 | 415 | ), |
| 425 | 416 | 'geo' => array( |
| 426 | 417 | 'name' => esc_html__( 'Geo', 'visualizer' ), |
| 427 | - 'enabled' => $enabled, | |
| 418 | + 'enabled' => true, | |
| 428 | 419 | 'supports' => array( 'Google Charts' ), |
| 429 | 420 | ), |
| 421 | + 'bar' => array( | |
| 422 | + 'name' => esc_html__( 'Bar', 'visualizer' ), | |
| 423 | + 'enabled' => true, | |
| 424 | + 'supports' => array( 'Google Charts', 'ChartJS' ), | |
| 425 | + ), | |
| 430 | 426 | 'column' => array( |
| 431 | 427 | 'name' => esc_html__( 'Column', 'visualizer' ), |
| 432 | - 'enabled' => $enabled, | |
| 428 | + 'enabled' => true, | |
| 433 | 429 | 'supports' => array( 'Google Charts', 'ChartJS' ), |
| 434 | 430 | ), |
| 435 | 431 | 'bubble' => array( |
| 436 | 432 | 'name' => esc_html__( 'Bubble', 'visualizer' ), |
| 437 | - 'enabled' => $enabled, | |
| 433 | + 'enabled' => true, | |
| 438 | 434 | // chartjs' bubble is ugly looking (and it won't work off the default bubble.csv) so it is being excluded for the time being. |
| 439 | 435 | 'supports' => array( 'Google Charts' ), |
| 440 | 436 | ), |
| 441 | 437 | 'scatter' => array( |
| 442 | 438 | 'name' => esc_html__( 'Scatter', 'visualizer' ), |
| 443 | - 'enabled' => $enabled, | |
| 439 | + 'enabled' => true, | |
| 444 | 440 | 'supports' => array( 'Google Charts' ), |
| 445 | 441 | ), |
| 446 | 442 | 'gauge' => array( |
| 447 | 443 | 'name' => esc_html__( 'Gauge', 'visualizer' ), |
| 448 | - 'enabled' => $enabled, | |
| 444 | + 'enabled' => true, | |
| 449 | 445 | 'supports' => array( 'Google Charts' ), |
| 450 | 446 | ), |
| 451 | 447 | 'candlestick' => array( |
| 452 | 448 | 'name' => esc_html__( 'Candlestick', 'visualizer' ), |
| 453 | - 'enabled' => $enabled, | |
| 449 | + 'enabled' => true, | |
| 454 | 450 | 'supports' => array( 'Google Charts' ), |
| 455 | 451 | ), |
| 456 | 452 | // pro types |
| 457 | 453 | 'timeline' => array( |
| @@ -687,49 +683,14 @@ | ||
| 687 | 683 | 'edit_posts', |
| 688 | 684 | 'viz-support', |
| 689 | 685 | array( $this, 'renderSupportPage' ) |
| 690 | 686 | ); |
| 691 | - | |
| 692 | 687 | remove_submenu_page( Visualizer_Plugin::NAME, Visualizer_Plugin::NAME ); |
| 693 | 688 | |
| 694 | 689 | add_action( "load-{$this->_libraryPage}", array( $this, 'addScreenOptions' ) ); |
| 695 | - add_action( 'admin_footer', array( $this, 'handleGetProSubMenu' ) ); | |
| 696 | 690 | } |
| 697 | 691 | |
| 698 | 692 | /** |
| 699 | - * Handle get pro plugin submenu. | |
| 700 | - */ | |
| 701 | - public function handleGetProSubMenu() { | |
| 702 | - if ( ! Visualizer_Module::is_pro() ) { | |
| 703 | - ?> | |
| 704 | - <style type="text/css"> | |
| 705 | - #toplevel_page_visualizer ul.wp-submenu li:last-child { | |
| 706 | - background: #FF7E65; | |
| 707 | - font-size: 14px; | |
| 708 | - font-weight: 600; | |
| 709 | - color: #fff; | |
| 710 | - } | |
| 711 | - #toplevel_page_visualizer ul.wp-submenu li:last-child > a { | |
| 712 | - color: #fff !important; | |
| 713 | - } | |
| 714 | - #toplevel_page_visualizer ul.wp-submenu li:last-child > a:hover { | |
| 715 | - box-shadow: inherit; | |
| 716 | - } | |
| 717 | - </style> | |
| 718 | - <?php | |
| 719 | - if ( get_option( 'visualizer_fresh_install', false ) ) { | |
| 720 | - ?> | |
| 721 | - <style type="text/css"> | |
| 722 | - #toplevel_page_visualizer ul.wp-submenu li.wp-first-item + li + li + li { | |
| 723 | - display: none; | |
| 724 | - } | |
| 725 | - </style> | |
| 726 | - <?php | |
| 727 | - } | |
| 728 | - } | |
| 729 | - } | |
| 730 | - | |
| 731 | - /** | |
| 732 | 693 | * Adds the screen options for pagination. |
| 733 | 694 | */ |
| 734 | 695 | function addScreenOptions() { |
| 735 | 696 | $screen = get_current_screen(); |
| @@ -741,9 +702,9 @@ | ||
| 741 | 702 | |
| 742 | 703 | $args = array( |
| 743 | 704 | 'label' => __( 'Number of charts per page:', 'visualizer' ), |
| 744 | 705 | 'default' => 6, |
| 745 | - 'option' => 'visualizer_library_per_page', | |
| 706 | + 'option' => 'visualizer_per_page_library', | |
| 746 | 707 | ); |
| 747 | 708 | add_screen_option( 'per_page', $args ); |
| 748 | 709 | } |
| 749 | 710 | |
| @@ -750,9 +711,9 @@ | ||
| 750 | 711 | /** |
| 751 | 712 | * Returns the screen option for pagination. |
| 752 | 713 | */ |
| 753 | 714 | function setScreenOptions( $status, $option, $value ) { |
| 754 | - if ( 'visualizer_library_per_page' === $option ) { | |
| 715 | + if ( 'visualizer_per_page_library' === $option ) { | |
| 755 | 716 | return $value; |
| 756 | 717 | } |
| 757 | 718 | } |
| 758 | 719 | |
| @@ -760,24 +721,8 @@ | ||
| 760 | 721 | * Adds the display filters to be used in the meta_query while displaying the charts. |
| 761 | 722 | */ |
| 762 | 723 | private function getDisplayFilters( &$query_args ) { |
| 763 | 724 | $query = array(); |
| 764 | - global $sitepress; | |
| 765 | - if ( Visualizer_Module::is_pro() && ( function_exists( 'icl_get_languages' ) && $sitepress instanceof \SitePress ) ) { | |
| 766 | - $current_lang = icl_get_current_language(); | |
| 767 | - if ( in_array( $current_lang, array( 'all', icl_get_default_language() ), true ) ) { | |
| 768 | - $query[] = array( | |
| 769 | - 'key' => 'chart_lang', | |
| 770 | - 'compare' => 'NOT EXISTS', | |
| 771 | - ); | |
| 772 | - } else { | |
| 773 | - $query[] = array( | |
| 774 | - 'key' => 'chart_lang', | |
| 775 | - 'value' => $current_lang, | |
| 776 | - 'compare' => '=', | |
| 777 | - ); | |
| 778 | - } | |
| 779 | - } | |
| 780 | 725 | |
| 781 | 726 | // add chart type filter to the query arguments |
| 782 | 727 | $type = filter_input( INPUT_GET, 'type' ); |
| 783 | 728 | if ( $type && in_array( $type, Visualizer_Plugin::getChartTypes(), true ) ) { |
| @@ -875,9 +820,9 @@ | ||
| 875 | 820 | |
| 876 | 821 | $this->getDisplayFilters( $query_args ); |
| 877 | 822 | |
| 878 | 823 | // Added by Ash/Upwork |
| 879 | - $filterByMeta = ! empty( $_GET['s'] ) ? sanitize_text_field( wp_unslash( $_GET['s'] ) ) : null; // phpcs:ignore WordPress.Security.NonceVerification.Recommended | |
| 824 | + $filterByMeta = filter_input( INPUT_GET, 's', FILTER_SANITIZE_STRING ); | |
| 880 | 825 | if ( $filterByMeta ) { |
| 881 | 826 | $query = array( |
| 882 | 827 | 'key' => Visualizer_Plugin::CF_SETTINGS, |
| 883 | 828 | 'value' => $filterByMeta, |
| @@ -957,20 +902,8 @@ | ||
| 957 | 902 | |
| 958 | 903 | $series = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SERIES, get_post_meta( $chart->ID, Visualizer_Plugin::CF_SERIES, true ), $chart->ID, $type ); |
| 959 | 904 | $data = self::get_chart_data( $chart, $type ); |
| 960 | 905 | |
| 961 | - // Set default setting series when add manual chart data - Only during first creation. | |
| 962 | - if ( isset( $settings['series'] ) && ! empty( $series ) ) { | |
| 963 | - $count_series = count( $series ) - count( $settings['series'] ); | |
| 964 | - if ( $count_series > 1 ) { | |
| 965 | - $clone_last_series = end( $settings['series'] ); | |
| 966 | - $clone_last_series = array_fill_keys( array_keys( $clone_last_series ), '' ); | |
| 967 | - foreach ( range( 1, $count_series ) as $item ) { | |
| 968 | - $settings['series'][] = $clone_last_series; | |
| 969 | - } | |
| 970 | - } | |
| 971 | - } | |
| 972 | - | |
| 973 | 906 | $library = $this->load_chart_type( $chart->ID ); |
| 974 | 907 | |
| 975 | 908 | $id = 'visualizer-' . $chart->ID; |
| 976 | 909 | $arguments = $this->get_inline_custom_css( $id, $settings ); |
| @@ -978,15 +911,8 @@ | ||
| 978 | 911 | $css .= $arguments[0]; |
| 979 | 912 | $settings = $arguments[1]; |
| 980 | 913 | } |
| 981 | 914 | |
| 982 | - if ( isset( $settings['controls']['ui']['labelStacking'] ) ) { | |
| 983 | - unset( $settings['controls']['ui']['labelStacking'] ); | |
| 984 | - } | |
| 985 | - if ( isset( $settings['controls']['ui']['orientation'] ) ) { | |
| 986 | - unset( $settings['controls']['ui']['orientation'] ); | |
| 987 | - } | |
| 988 | - | |
| 989 | 915 | // add chart to the array |
| 990 | 916 | $charts[ $id ] = array( |
| 991 | 917 | 'id' => $chart->ID, |
| 992 | 918 | 'type' => $type, |
| @@ -1005,30 +931,26 @@ | ||
| 1005 | 931 | 'language' => $this->get_language(), |
| 1006 | 932 | 'map_api_key' => get_option( 'visualizer-map-api-key' ), |
| 1007 | 933 | 'charts' => $charts, |
| 1008 | 934 | 'urls' => array( |
| 1009 | - 'base' => esc_url( add_query_arg( array( 'vpage' => false, 'vaction' => false ) ) ), | |
| 1010 | - 'create' => esc_url( | |
| 1011 | - add_query_arg( | |
| 1012 | - array( | |
| 1013 | - 'action' => Visualizer_Plugin::ACTION_CREATE_CHART, | |
| 1014 | - 'library' => 'yes', | |
| 1015 | - 'type' => isset( $_GET['type'] ) ? $_GET['type'] : '', | |
| 1016 | - 'chart-library' => isset( $_GET['chart-library'] ) ? $_GET['chart-library'] : '', | |
| 1017 | - 'vaction' => false, | |
| 1018 | - ), | |
| 1019 | - $ajaxurl | |
| 1020 | - ) | |
| 935 | + 'base' => add_query_arg( array( 'vpage' => false, 'vaction' => false ) ), | |
| 936 | + 'create' => add_query_arg( | |
| 937 | + array( | |
| 938 | + 'action' => Visualizer_Plugin::ACTION_CREATE_CHART, | |
| 939 | + 'library' => 'yes', | |
| 940 | + 'type' => isset( $_GET['type'] ) ? $_GET['type'] : '', | |
| 941 | + 'chart-library' => isset( $_GET['chart-library'] ) ? $_GET['chart-library'] : '', | |
| 942 | + 'vaction' => false, | |
| 943 | + ), | |
| 944 | + $ajaxurl | |
| 1021 | 945 | ), |
| 1022 | - 'edit' => esc_url( | |
| 1023 | - add_query_arg( | |
| 1024 | - array( | |
| 1025 | - 'action' => Visualizer_Plugin::ACTION_EDIT_CHART, | |
| 1026 | - 'library' => 'yes', | |
| 1027 | - 'vaction' => false, | |
| 1028 | - ), | |
| 1029 | - $ajaxurl | |
| 1030 | - ) | |
| 946 | + 'edit' => add_query_arg( | |
| 947 | + array( | |
| 948 | + 'action' => Visualizer_Plugin::ACTION_EDIT_CHART, | |
| 949 | + 'library' => 'yes', | |
| 950 | + 'vaction' => false, | |
| 951 | + ), | |
| 952 | + $ajaxurl | |
| 1031 | 953 | ), |
| 1032 | 954 | ), |
| 1033 | 955 | 'page_type' => 'library', |
| 1034 | 956 | 'is_front' => false, |
| @@ -1103,9 +1025,9 @@ | ||
| 1103 | 1025 | esc_html__( 'Docs', 'visualizer' ) |
| 1104 | 1026 | ); |
| 1105 | 1027 | // flattr link |
| 1106 | 1028 | $plugin_meta[] = sprintf( |
| 1107 | - '<a style="color:red" href="' . tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'pluginrow' ) . '" target="_blank">%s</a>', | |
| 1029 | + '<a style="color:red" href="' . Visualizer_Plugin::PRO_TEASER_URL . '" target="_blank">%s</a>', | |
| 1108 | 1030 | esc_html__( 'Pro Addon', 'visualizer' ) |
| 1109 | 1031 | ); |
| 1110 | 1032 | } |
| 1111 | 1033 | |
| @@ -1111,75 +1033,5 @@ | ||
| 1111 | 1033 | |
| 1112 | 1034 | return $plugin_meta; |
| 1113 | 1035 | } |
| 1114 | 1036 | |
| 1115 | - /** | |
| 1116 | - * If check is existing user. | |
| 1117 | - * | |
| 1118 | - * @return bool Default false | |
| 1119 | - */ | |
| 1120 | - public static function proFeaturesLocked() { | |
| 1121 | - if ( Visualizer_Module::is_pro() ) { | |
| 1122 | - return true; | |
| 1123 | - } | |
| 1124 | - return 'yes' === get_option( 'visualizer-new-user', 'yes' ) ? false : true; | |
| 1125 | - } | |
| 1126 | - | |
| 1127 | - /** | |
| 1128 | - * Multilingual Support. | |
| 1129 | - * | |
| 1130 | - * @param int $chart_id Chart ID. | |
| 1131 | - * @return bool Default false | |
| 1132 | - */ | |
| 1133 | - public function addMultilingualSupport( $chart_id ) { | |
| 1134 | - global $sitepress; | |
| 1135 | - if ( Visualizer_Module::is_pro() ) { | |
| 1136 | - return; | |
| 1137 | - } | |
| 1138 | - if ( function_exists( 'icl_get_languages' ) && $sitepress instanceof \SitePress ) { | |
| 1139 | - $language = icl_get_languages(); | |
| 1140 | - $current_lang = icl_get_current_language(); | |
| 1141 | - $default_lang = icl_get_default_language(); | |
| 1142 | - $post_info = wpml_get_language_information( null, $chart_id ); | |
| 1143 | - $translations = array(); | |
| 1144 | - if ( ! empty( $post_info ) && ( $default_lang === $post_info['language_code'] ) ) { | |
| 1145 | - $trid = $sitepress->get_element_trid( $chart_id, 'post_' . Visualizer_Plugin::CPT_VISUALIZER ); | |
| 1146 | - $translations = $sitepress->get_element_translations( $trid ); | |
| 1147 | - } | |
| 1148 | - if ( empty( $translations ) ) { | |
| 1149 | - return; | |
| 1150 | - } | |
| 1151 | - ?> | |
| 1152 | - <hr><div class="visualizer-languages-list only-pro"> | |
| 1153 | - <?php | |
| 1154 | - foreach ( $language as $lang ) { | |
| 1155 | - $lang_code = $lang['code']; | |
| 1156 | - if ( $current_lang !== $lang_code ) { | |
| 1157 | - ?> | |
| 1158 | - <a href="javascript:;"> | |
| 1159 | - <img src="<?php echo esc_url( $lang['country_flag_url'] ); ?>" alt="<?php echo esc_attr( $lang['translated_name'] ); ?>"> | |
| 1160 | - </a> | |
| 1161 | - <?php | |
| 1162 | - } | |
| 1163 | - } | |
| 1164 | - ?> | |
| 1165 | - <a href="<?php echo tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'wpml-support', 'visualizer_render_char' ); ?>"target="_blank"><?php esc_html_e( 'Upgrade to PRO to active this translation for charts', 'visualizer' ); ?></a> | |
| 1166 | - </div> | |
| 1167 | - <?php | |
| 1168 | - } | |
| 1169 | - } | |
| 1170 | - | |
| 1171 | - /** | |
| 1172 | - * Check chart is enabled or not. | |
| 1173 | - * | |
| 1174 | - * @param string $type Chart ID. | |
| 1175 | - * | |
| 1176 | - * @return bool Default false | |
| 1177 | - */ | |
| 1178 | - public static function checkChartStatus( $type ) { | |
| 1179 | - $types = self::_getChartTypesLocalized( false, false, false, true ); | |
| 1180 | - if ( isset( $types[ $type ] ) ) { | |
| 1181 | - return ! empty( $types[ $type ]['enabled'] ); | |
| 1182 | - } | |
| 1183 | - return false; | |
| 1184 | - } | |
| 1185 | 1037 | } |