PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.10.2
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.10.2
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 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.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
← All changes | index.php +16 -72 4.0.83.10.2 View file →
@@ -1,12 +1,14 @@
1 1 <?php
2 2 /*
3 3 Plugin Name: Visualizer: Tables and Charts for WordPress
4 4 Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs/
5 - Description: Effortlessly create and embed responsive charts and tables with Visualizer, a powerful WordPress plugin that enhances data presentation from multiple sources.
6 - Version: 4.0.8
5 + Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
6 + Version: 3.10.2
7 7 Author: Themeisle
8 8 Author URI: http://themeisle.com
9 + Requires at least: 3.5
10 + Tested up to: 5.6
9 11 License: GPL v2.0 or later
10 12 WordPress Available: yes
11 13 Requires License: no
12 14 Pro Slug: visualizer-pro
@@ -35,17 +37,17 @@
35 37 * approved classes.
36 38 *
37 39 * @since 1.0.0
38 40 *
39 - * @param string $class_name The class name to autoload.
41 + * @param string $class The class name to autoload.
40 42 *
41 43 * @return boolean Returns TRUE if the class is located. Otherwise FALSE.
42 44 */
43 -function visualizer_autoloader( $class_name ) {
45 +function visualizer_autoloader( $class ) {
44 46 $namespaces = array( 'Visualizer' );
45 47 foreach ( $namespaces as $namespace ) {
46 - if ( substr( $class_name, 0, strlen( $namespace ) ) === $namespace ) {
47 - $filename = __DIR__ . str_replace( '_', DIRECTORY_SEPARATOR, "_classes_{$class_name}.php" );
48 + if ( substr( $class, 0, strlen( $namespace ) ) === $namespace ) {
49 + $filename = dirname( __FILE__ ) . str_replace( '_', DIRECTORY_SEPARATOR, "_classes_{$class}.php" );
48 50 if ( is_readable( $filename ) ) {
49 51 require $filename;
50 52
51 53 return true;
@@ -65,16 +67,14 @@
65 67 // setup environment
66 68 define( 'VISUALIZER_BASEFILE', __FILE__ );
67 69 define( 'VISUALIZER_BASENAME', plugin_basename( __FILE__ ) );
68 70 define( 'VISUALIZER_ABSURL', plugins_url( '/', __FILE__ ) );
69 - define( 'VISUALIZER_ABSPATH', __DIR__ );
71 + define( 'VISUALIZER_ABSPATH', dirname( __FILE__ ) );
70 72 define( 'VISUALIZER_DIRNAME', basename( VISUALIZER_ABSPATH ) );
71 73 define( 'VISUALIZER_REST_VERSION', 1 );
72 74 // if the below is true, then the js/customization.js in the plugin folder will be used instead of the one in the uploads folder (if it exists).
73 75 // this is also used in Block.php
74 - if ( ! defined( 'VISUALIZER_TEST_JS_CUSTOMIZATION' ) ) {
75 - define( 'VISUALIZER_TEST_JS_CUSTOMIZATION', false );
76 - }
76 + define( 'VISUALIZER_TEST_JS_CUSTOMIZATION', false );
77 77
78 78 if ( ! defined( 'VISUALIZER_CSV_DELIMITER' ) ) {
79 79 define( 'VISUALIZER_CSV_DELIMITER', ',' );
80 80 }
@@ -92,13 +92,12 @@
92 92
93 93 // the link to pre-build queries.
94 94 define( 'VISUALIZER_DB_QUERY_DOC_URL', 'https://docs.themeisle.com/article/970-visualizer-sample-queries-to-generate-charts' );
95 95 define( 'VISUALIZER_MAIN_DOC', 'https://docs.themeisle.com/category/657-visualizer' );
96 - define( 'VISUALIZER_DOC_COLLECTION', 'https://docs.themeisle.com/visualizer-charts-and-graphs/?query=#' );
96 + define( 'VISUALIZER_DOC_COLLECTION', 'https://docs.themeisle.com/search?collectionId=561ec249c69791452ed4bceb&query=#+visualizer' );
97 97 define( 'VISUALIZER_DEMO_URL', 'https://demo.themeisle.com/visualizer/#' );
98 98 define( 'VISUALIZER_CODE_SNIPPETS_URL', 'https://docs.themeisle.com/category/726-visualizer' );
99 99 define( 'VISUALIZER_SUBSCRIBE_API', 'https://api.themeisle.com/tracking/subscribe' );
100 - define( 'VISUALIZER_AGENTS_URL', 'https://ai.themeisle.com' );
101 100
102 101 // to redirect all themeisle_log_event to error log.
103 102 define( 'VISUALIZER_LOCAL_DEBUG', false );
104 103
@@ -112,18 +111,8 @@
112 111 Visualizer_Gutenberg_Block::get_instance();
113 112 }}
114 113 );
115 114
116 - // register Elementor widget and related hooks
117 - // Use elementor/init so Elementor's autoloader is registered and Widget_Base is resolvable.
118 - add_action(
119 - 'elementor/init',
120 - function () {
121 - require_once VISUALIZER_ABSPATH . '/classes/Visualizer/Elementor/Widget.php';
122 - Visualizer_Elementor_Widget::register_hooks();
123 - }
124 - );
125 -
126 115 // set general modules
127 116 $plugin->setModule( Visualizer_Module_Utility::NAME );
128 117 $plugin->setModule( Visualizer_Module_Setup::NAME );
129 118 $plugin->setModule( Visualizer_Module_Sources::NAME );
@@ -141,22 +130,12 @@
141 130
142 131 // Set setup wizard module.
143 132 $plugin->setModule( Visualizer_Module_Wizard::NAME );
144 133
145 - // AI Chart Builder module (AJAX endpoints for the React wizard).
146 - $plugin->setModule( Visualizer_Module_AIBuilder::NAME );
147 -
148 134 $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php';
149 135 if ( is_readable( $vendor_file ) ) {
150 - include_once $vendor_file;
136 + include_once( $vendor_file );
151 137 }
152 -
153 - $action_scheduler_file = VISUALIZER_ABSPATH . '/vendor/woocommerce/action-scheduler/action-scheduler.php';
154 -
155 - if ( is_readable( $action_scheduler_file ) ) {
156 - require_once $action_scheduler_file;
157 - }
158 -
159 138 add_filter( 'themeisle_sdk_products', 'visualizer_register_sdk', 10, 1 );
160 139 add_filter( 'pirate_parrot_log', 'visualizer_register_parrot', 10, 1 );
161 140 add_filter(
162 141 'themeisle_sdk_compatibilities/' . VISUALIZER_DIRNAME, function ( $compatibilities ) {
@@ -162,9 +141,9 @@
162 141 'themeisle_sdk_compatibilities/' . VISUALIZER_DIRNAME, function ( $compatibilities ) {
163 142 $compatibilities['VisualizerPRO'] = array(
164 143 'basefile' => defined( 'VISUALIZER_PRO_BASEFILE' ) ? VISUALIZER_PRO_BASEFILE : '',
165 144 'required' => '1.8',
166 - 'tested_up' => '2.0',
145 + 'tested_up' => '1.13',
167 146 );
168 147 return $compatibilities;
169 148 }
170 149 );
@@ -169,53 +148,18 @@
169 148 }
170 149 );
171 150 add_filter(
172 151 'visualizer_about_us_metadata',
173 - function () {
152 + function() {
174 153 return array(
175 154 'logo' => esc_url( VISUALIZER_ABSURL . 'images/visualizer-logo.svg' ),
176 155 'location' => 'visualizer',
177 156 'has_upgrade_menu' => ! Visualizer_Module::is_pro(),
178 - 'upgrade_text' => esc_html__( 'Get Visualizer Pro', 'visualizer' ),
179 - 'upgrade_link' => esc_url( tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'sidebarMenuUpgrade', 'index' ) ),
157 + 'upgrade_text' => esc_html__( 'Get Visualizer Pro', 'feedzy-rss-feeds' ),
158 + 'upgrade_link' => esc_url( tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'aboutUsPage' ) ),
180 159 );
181 160 }
182 161 );
183 -
184 - if ( ! defined( 'TI_E2E_TESTING' ) && 'yes' === get_option( 'visualizer_logger_flag', 'no' ) ) {
185 - add_filter( 'themeisle_sdk_enable_telemetry', '__return_true' );
186 - add_filter(
187 - 'themeisle_sdk_telemetry_products',
188 - function ( $products ) {
189 - $already_registered = false;
190 -
191 - $license = get_option( 'visualizer_pro_license_data', 'free' );
192 - if ( ! empty( $license ) && is_object( $license ) ) {
193 - $license = $license->key ?? 'free';
194 - }
195 - $track_hash = 'free' === $license ? 'free' : wp_hash( $license );
196 -
197 - foreach ( $products as &$product ) {
198 - if ( strstr( $product['slug'], 'visualizer' ) !== false ) {
199 - $already_registered = true;
200 - $product['trackHash'] = $track_hash;
201 - }
202 - }
203 -
204 - if ( $already_registered ) {
205 - return $products;
206 - }
207 -
208 - // Add Visualizer to the list of products to track the usage of AI Block.
209 - $products[] = array(
210 - 'slug' => 'visualizer',
211 - 'consent' => 'yes' === get_option( 'visualizer_logger_flag', 'no' ),
212 - 'trackHash' => $track_hash,
213 - );
214 - return $products;
215 - }
216 - );
217 - }
218 162 }
219 163
220 164 /**
221 165 * Registers with the SDK