PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.11.7
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.11.7
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 3.10.4 All 148 releases
← All changes | index.php +16 -35 4.0.63.11.7 View file →
@@ -2,11 +2,13 @@
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 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.6
6 + Version: 3.11.7
7 7 Author: Themeisle
8 8 Author URI: http://themeisle.com
9 + Requires at least: 5.2
10 + Tested up to: 6.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,9 +67,9 @@
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
@@ -92,13 +94,12 @@
92 94
93 95 // the link to pre-build queries.
94 96 define( 'VISUALIZER_DB_QUERY_DOC_URL', 'https://docs.themeisle.com/article/970-visualizer-sample-queries-to-generate-charts' );
95 97 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=#' );
98 + define( 'VISUALIZER_DOC_COLLECTION', 'https://docs.themeisle.com/search?collectionId=561ec249c69791452ed4bceb&query=#+visualizer' );
97 99 define( 'VISUALIZER_DEMO_URL', 'https://demo.themeisle.com/visualizer/#' );
98 100 define( 'VISUALIZER_CODE_SNIPPETS_URL', 'https://docs.themeisle.com/category/726-visualizer' );
99 101 define( 'VISUALIZER_SUBSCRIBE_API', 'https://api.themeisle.com/tracking/subscribe' );
100 - define( 'VISUALIZER_AGENTS_URL', 'https://ai.themeisle.com' );
101 102
102 103 // to redirect all themeisle_log_event to error log.
103 104 define( 'VISUALIZER_LOCAL_DEBUG', false );
104 105
@@ -112,18 +113,8 @@
112 113 Visualizer_Gutenberg_Block::get_instance();
113 114 }}
114 115 );
115 116
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 117 // set general modules
127 118 $plugin->setModule( Visualizer_Module_Utility::NAME );
128 119 $plugin->setModule( Visualizer_Module_Setup::NAME );
129 120 $plugin->setModule( Visualizer_Module_Sources::NAME );
@@ -141,22 +132,12 @@
141 132
142 133 // Set setup wizard module.
143 134 $plugin->setModule( Visualizer_Module_Wizard::NAME );
144 135
145 - // AI Chart Builder module (AJAX endpoints for the React wizard).
146 - $plugin->setModule( Visualizer_Module_AIBuilder::NAME );
147 -
148 136 $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php';
149 137 if ( is_readable( $vendor_file ) ) {
150 - include_once $vendor_file;
138 + include_once( $vendor_file );
151 139 }
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 140 add_filter( 'themeisle_sdk_products', 'visualizer_register_sdk', 10, 1 );
160 141 add_filter( 'pirate_parrot_log', 'visualizer_register_parrot', 10, 1 );
161 142 add_filter(
162 143 'themeisle_sdk_compatibilities/' . VISUALIZER_DIRNAME, function ( $compatibilities ) {
@@ -162,9 +143,9 @@
162 143 'themeisle_sdk_compatibilities/' . VISUALIZER_DIRNAME, function ( $compatibilities ) {
163 144 $compatibilities['VisualizerPRO'] = array(
164 145 'basefile' => defined( 'VISUALIZER_PRO_BASEFILE' ) ? VISUALIZER_PRO_BASEFILE : '',
165 146 'required' => '1.8',
166 - 'tested_up' => '2.0',
147 + 'tested_up' => '1.14',
167 148 );
168 149 return $compatibilities;
169 150 }
170 151 );
@@ -169,29 +150,29 @@
169 150 }
170 151 );
171 152 add_filter(
172 153 'visualizer_about_us_metadata',
173 - function () {
154 + function() {
174 155 return array(
175 156 'logo' => esc_url( VISUALIZER_ABSURL . 'images/visualizer-logo.svg' ),
176 157 'location' => 'visualizer',
177 158 'has_upgrade_menu' => ! Visualizer_Module::is_pro(),
178 - 'upgrade_text' => esc_html__( 'Get Visualizer Pro', 'visualizer' ),
159 + 'upgrade_text' => esc_html__( 'Get Visualizer Pro', 'feedzy-rss-feeds' ),
179 160 'upgrade_link' => esc_url( tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'sidebarMenuUpgrade', 'index' ) ),
180 161 );
181 162 }
182 163 );
183 164
184 - if ( ! defined( 'TI_E2E_TESTING' ) && 'yes' === get_option( 'visualizer_logger_flag', 'no' ) ) {
165 + if ( ! defined( 'TI_CYPRESS_TESTING' ) && 'yes' === get_option( 'visualizer_logger_flag', 'no' ) ) {
185 166 add_filter( 'themeisle_sdk_enable_telemetry', '__return_true' );
186 167 add_filter(
187 168 'themeisle_sdk_telemetry_products',
188 - function ( $products ) {
169 + function( $products ) {
189 170 $already_registered = false;
190 171
191 172 $license = get_option( 'visualizer_pro_license_data', 'free' );
192 173 if ( ! empty( $license ) && is_object( $license ) ) {
193 - $license = $license->key ?? 'free';
174 + $license = $license->key;
194 175 }
195 176 $track_hash = 'free' === $license ? 'free' : wp_hash( $license );
196 177
197 178 foreach ( $products as &$product ) {