PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.11.4
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.11.4
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
visualizer / index.php

index.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.11.4, at index.php

239 lines 7.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: Visualizer: Tables and Charts for WordPress
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: 3.11.4
7 Author: Themeisle
8 Author URI: http://themeisle.com
9 Requires at least: 5.2
10 Tested up to: 6.5
11 License: GPL v2.0 or later
12 WordPress Available: yes
13 Requires License: no
14 Pro Slug: visualizer-pro
15 License URI: http://www.opensource.org/licenses/gpl-license.php
16 */
17
18 // Prevent direct access to the plugin folder.
19 if ( ! defined( 'ABSPATH' ) ) {
20 header( 'HTTP/1.0 404 Not Found', true, 404 );
21 exit;
22 }
23 // don't load the plugin, if it has been already loaded
24 if ( class_exists( 'Visualizer_Plugin', false ) ) {
25 return;
26 }
27
28 // support for pro versions before 3.3.0
29 if ( class_exists( 'Visualizer_Pro', false ) ) {
30 define( 'VISUALIZER_PRO', true );
31 } else {
32 defined( 'VISUALIZER_PRO' ) || define( 'VISUALIZER_PRO', false );
33 }
34
35 /**
36 * Automatically loads classes for the plugin. Checks a namespace and loads only
37 * approved classes.
38 *
39 * @since 1.0.0
40 *
41 * @param string $class The class name to autoload.
42 *
43 * @return boolean Returns TRUE if the class is located. Otherwise FALSE.
44 */
45 function visualizer_autoloader( $class ) {
46 $namespaces = array( 'Visualizer' );
47 foreach ( $namespaces as $namespace ) {
48 if ( substr( $class, 0, strlen( $namespace ) ) === $namespace ) {
49 $filename = dirname( __FILE__ ) . str_replace( '_', DIRECTORY_SEPARATOR, "_classes_{$class}.php" );
50 if ( is_readable( $filename ) ) {
51 require $filename;
52
53 return true;
54 }
55 }
56 }
57
58 return false;
59 }
60
61 /**
62 * Instantiates the plugin and setup all modules.
63 *
64 * @since 1.0.0
65 */
66 function visualizer_launch() {
67 // setup environment
68 define( 'VISUALIZER_BASEFILE', __FILE__ );
69 define( 'VISUALIZER_BASENAME', plugin_basename( __FILE__ ) );
70 define( 'VISUALIZER_ABSURL', plugins_url( '/', __FILE__ ) );
71 define( 'VISUALIZER_ABSPATH', dirname( __FILE__ ) );
72 define( 'VISUALIZER_DIRNAME', basename( VISUALIZER_ABSPATH ) );
73 define( 'VISUALIZER_REST_VERSION', 1 );
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).
75 // this is also used in Block.php
76 if ( ! defined( 'VISUALIZER_TEST_JS_CUSTOMIZATION' ) ) {
77 define( 'VISUALIZER_TEST_JS_CUSTOMIZATION', false );
78 }
79
80 if ( ! defined( 'VISUALIZER_CSV_DELIMITER' ) ) {
81 define( 'VISUALIZER_CSV_DELIMITER', ',' );
82 }
83 if ( ! defined( 'VISUALIZER_CSV_ENCLOSURE' ) ) {
84 define( 'VISUALIZER_CSV_ENCLOSURE', '"' );
85 }
86 if ( ! defined( 'VISUALIZER_DEBUG' ) ) {
87 define( 'VISUALIZER_DEBUG', false );
88 }
89
90 define( 'VISUALIZER_SKIP_CHART_TYPE_PAGE', true );
91
92 // if x and y features are required, this value should read x,y or x|y or x;y.
93 define( 'VISUALIZER_ENABLE_BETA_FEATURES', '' );
94
95 // the link to pre-build queries.
96 define( 'VISUALIZER_DB_QUERY_DOC_URL', 'https://docs.themeisle.com/article/970-visualizer-sample-queries-to-generate-charts' );
97 define( 'VISUALIZER_MAIN_DOC', 'https://docs.themeisle.com/category/657-visualizer' );
98 define( 'VISUALIZER_DOC_COLLECTION', 'https://docs.themeisle.com/search?collectionId=561ec249c69791452ed4bceb&query=#+visualizer' );
99 define( 'VISUALIZER_DEMO_URL', 'https://demo.themeisle.com/visualizer/#' );
100 define( 'VISUALIZER_CODE_SNIPPETS_URL', 'https://docs.themeisle.com/category/726-visualizer' );
101 define( 'VISUALIZER_SUBSCRIBE_API', 'https://api.themeisle.com/tracking/subscribe' );
102
103 // to redirect all themeisle_log_event to error log.
104 define( 'VISUALIZER_LOCAL_DEBUG', false );
105
106 // instantiate the plugin
107 $plugin = Visualizer_Plugin::instance();
108
109 // instantiate Gutenberg block
110 add_action(
111 'plugins_loaded', function () {
112 if ( function_exists( 'register_block_type' ) ) {
113 Visualizer_Gutenberg_Block::get_instance();
114 }}
115 );
116
117 // set general modules
118 $plugin->setModule( Visualizer_Module_Utility::NAME );
119 $plugin->setModule( Visualizer_Module_Setup::NAME );
120 $plugin->setModule( Visualizer_Module_Sources::NAME );
121 $plugin->setModule( Visualizer_Module_Chart::NAME );
122
123 if ( is_admin() || defined( 'WP_TESTS_DOMAIN' ) ) {
124 // set admin modules
125 $plugin->setModule( Visualizer_Module_Admin::NAME );
126 }
127
128 // set frontend modules
129 $plugin->setModule( Visualizer_Module_Frontend::NAME );
130
131 $plugin->setModule( Visualizer_Module_AMP::NAME );
132
133 // Set setup wizard module.
134 $plugin->setModule( Visualizer_Module_Wizard::NAME );
135
136 $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload.php';
137 if ( is_readable( $vendor_file ) ) {
138 include_once( $vendor_file );
139 }
140 add_filter( 'themeisle_sdk_products', 'visualizer_register_sdk', 10, 1 );
141 add_filter( 'pirate_parrot_log', 'visualizer_register_parrot', 10, 1 );
142 add_filter(
143 'themeisle_sdk_compatibilities/' . VISUALIZER_DIRNAME, function ( $compatibilities ) {
144 $compatibilities['VisualizerPRO'] = array(
145 'basefile' => defined( 'VISUALIZER_PRO_BASEFILE' ) ? VISUALIZER_PRO_BASEFILE : '',
146 'required' => '1.8',
147 'tested_up' => '1.14',
148 );
149 return $compatibilities;
150 }
151 );
152 add_filter(
153 'visualizer_about_us_metadata',
154 function() {
155 return array(
156 'logo' => esc_url( VISUALIZER_ABSURL . 'images/visualizer-logo.svg' ),
157 'location' => 'visualizer',
158 'has_upgrade_menu' => ! Visualizer_Module::is_pro(),
159 'upgrade_text' => esc_html__( 'Get Visualizer Pro', 'feedzy-rss-feeds' ),
160 'upgrade_link' => esc_url( tsdk_utmify( Visualizer_Plugin::PRO_TEASER_URL, 'sidebarMenuUpgrade' ) ),
161 );
162 }
163 );
164
165 if ( ! defined( 'TI_CYPRESS_TESTING' ) && 'yes' === get_option( 'visualizer_logger_flag', 'no' ) ) {
166 add_filter( 'themeisle_sdk_enable_telemetry', '__return_true' );
167 add_filter(
168 'themeisle_sdk_telemetry_products',
169 function( $products ) {
170 $already_registered = false;
171
172 $license = get_option( 'visualizer_pro_license_data', 'free' );
173 if ( ! empty( $license ) && is_object( $license ) ) {
174 $license = $license->key;
175 }
176 $track_hash = 'free' === $license ? 'free' : wp_hash( $license );
177
178 foreach ( $products as &$product ) {
179 if ( strstr( $product['slug'], 'visualizer' ) !== false ) {
180 $already_registered = true;
181 $product['trackHash'] = $track_hash;
182 }
183 }
184
185 if ( $already_registered ) {
186 return $products;
187 }
188
189 // Add Visualizer to the list of products to track the usage of AI Block.
190 $products[] = array(
191 'slug' => 'visualizer',
192 'consent' => 'yes' === get_option( 'visualizer_logger_flag', 'no' ),
193 'trackHash' => $track_hash,
194 );
195 return $products;
196 }
197 );
198 }
199 }
200
201 /**
202 * Registers with the SDK
203 *
204 * @since 1.0.0
205 */
206 function visualizer_register_sdk( $products ) {
207 $products[] = VISUALIZER_BASEFILE;
208 return $products;
209 }
210
211 /**
212 * Registers with the parrot plugin
213 *
214 * @since 1.0.0
215 */
216 function visualizer_register_parrot( $plugins ) {
217 $plugins[] = Visualizer_Plugin::NAME;
218 return $plugins;
219 }
220
221 // register autoloader function
222 spl_autoload_register( 'visualizer_autoloader' );
223 // launch the plugin
224 visualizer_launch();
225
226
227 if ( VISUALIZER_LOCAL_DEBUG ) {
228 add_action( 'themeisle_log_event', 'visualizer_themeisle_log_event', 10, 5 );
229
230 /**
231 * Redirect themeisle_log_event to error log.
232 */
233 function visualizer_themeisle_log_event( $name, $msg, $type, $file, $line ) {
234 if ( $name === Visualizer_Plugin::NAME ) {
235 error_log( sprintf( '%s (%s:%d): %s', $type, $file, $line, $msg ) );
236 }
237 }
238 }
239