PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.3.3
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.3.3
5.13.0 5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / classes / WpMatomo / Admin / views / marketplace.php
matomo / classes / WpMatomo / Admin / views Last commit date
access.php 2 years ago advanced_settings.php 1 year ago exclusion_settings.php 4 years ago geolocation_settings.php 2 years ago get_started.php 1 year ago import_wp_statistics.php 4 years ago info.php 1 year ago info_bug_report.php 2 years ago info_help.php 1 year ago info_high_traffic.php 2 years ago info_matomo_desc.php 1 year ago info_multisite.php 2 years ago info_newsletter.php 4 years ago info_shared.php 1 year ago marketplace.php 1 year ago marketplace_setup_wizard.php 1 year ago measurable_settings.php 2 years ago privacy_gdpr.php 4 years ago scheduled_tasks_failures.php 2 years ago settings.php 4 years ago settings_errors.php 4 years ago summary.php 4 years ago systemreport.php 1 year ago tracking.php 1 year ago update_notice_clear_cache.php 5 years ago whats-new-notifications.php 1 year ago
marketplace.php
373 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 * @package matomo
8 */
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit;
12 }
13
14 /** @var \WpMatomo\Settings $settings */
15 $matomo_extra_url_params = '&' . http_build_query(
16 [
17 'php' => PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION . '.' . PHP_RELEASE_VERSION,
18 'matomo' => $settings->get_global_option( 'core_version' ),
19 'wp_version' => ! empty( $GLOBALS['wp_version'] ) ? $GLOBALS['wp_version'] : '',
20 ]
21 );
22 ?>
23 <div class="wrap">
24
25 <div id="icon-plugins" class="icon32"></div>
26 <?php if ( ! empty( $valid_tabs ) ) { ?>
27 <h2 class="nav-tab-wrapper">
28 <?php if ( in_array( 'marketplace', $valid_tabs, true ) ) { ?>
29 <a href="?page=matomo-marketplace&tab=marketplace"
30 class="nav-tab <?php echo ( 'marketplace' === $active_tab ) ? 'nav-tab-active' : ''; ?>"
31 ><?php esc_html_e( 'Overview', 'matomo' ); ?></a>
32 <?php } ?>
33 <?php if ( in_array( 'install', $valid_tabs, true ) ) { ?>
34 <a href="?page=matomo-marketplace&tab=install"
35 class="nav-tab <?php echo ( 'install' === $active_tab ) ? 'nav-tab-active' : ''; ?>"
36 ><?php esc_html_e( 'Install Plugins', 'matomo' ); ?></a>
37 <?php } ?>
38 <?php if ( in_array( 'subscriptions', $valid_tabs, true ) ) { ?>
39 <a href="?page=matomo-marketplace&tab=subscriptions"
40 class="nav-tab <?php echo 'subscriptions' === $active_tab ? 'nav-tab-active' : ''; ?>"><?php esc_html_e( 'Subscriptions', 'matomo' ); ?></a>
41 <?php } ?>
42 </h2>
43 <?php } ?>
44
45 <?php if ( $settings->is_network_enabled() && ! is_network_admin() && is_super_admin() ) { ?>
46 <div class="updated notice">
47 <p><?php esc_html_e( 'Only WordPress network admins can see this page', 'matomo' ); ?></p>
48 </div>
49 <?php } ?>
50
51 <?php
52 if ( isset( $marketplace_setup_wizard ) ) {
53 $marketplace_setup_wizard->show();
54 return;
55 }
56 ?>
57
58 <h1><?php matomo_header_icon(); ?><?php esc_html_e( 'Discover new functionality for your Matomo', 'matomo' ); ?></h1>
59
60 <?php
61 function matomo_show_tables( $matomo_feature_sections, $matomo_version ) {
62 foreach ( $matomo_feature_sections as $matomo_feature_section ) {
63 $matomo_feature_section['features'] = array_filter( $matomo_feature_section['features'] );
64 $matomo_num_features_in_block = count( $matomo_feature_section['features'] );
65 $matomo_feature_section_class = isset( $matomo_feature_section['class'] ) ? $matomo_feature_section['class'] : '';
66 $matomo_extra_card_html = isset( $matomo_feature_section['extra_card_html'] ) ? $matomo_feature_section['extra_card_html'] : '';
67
68 echo '<h2>' . esc_html( $matomo_feature_section['title'] ) . '</h2>';
69 echo '<div class="wp-list-table widefat plugin-install matomo-plugin-list matomo-plugin-row-' . esc_html( $matomo_num_features_in_block ) . ' ' . esc_attr( $matomo_feature_section_class ) . '"><div id="the-list">';
70
71 foreach ( $matomo_feature_section['features'] as $matomo_index => $matomo_feature ) {
72 $matomo_style = '';
73 $matomo_is_3_columns = 3 === $matomo_num_features_in_block;
74 if ( $matomo_is_3_columns ) {
75 $matomo_style = 'width: calc(33% - 8px);min-width:282px;max-width:350px;';
76 if ( 2 === $matomo_index % 3 ) {
77 $matomo_style .= 'clear: inherit;margin-right: 0;margin-left: 16px;';
78 }
79 }
80 $plugin_url = empty( $matomo_feature['url'] ) ? null : $matomo_feature['url'] . '&matomoversion=' . $matomo_version;
81 ?>
82 <div class="plugin-card" style="<?php echo esc_attr( $matomo_style ); ?>">
83 <?php
84 if ( $matomo_is_3_columns && ! empty( $matomo_feature['image'] ) ) {
85 ?>
86 <a
87 href="<?php echo esc_url( $plugin_url ); ?>"
88 rel="noreferrer noopener" target="_blank"
89 class="thickbox open-plugin-details-modal"><img
90 src="<?php echo esc_url( $matomo_feature['image'] ); ?>"
91 style="height: 80px;width:100%;object-fit: cover;" alt=""></a>
92 <?php
93 }
94 ?>
95
96 <div class="plugin-card-top">
97 <div class="
98 <?php
99 if ( ! $matomo_is_3_columns ) {
100 ?>
101 name column-name
102 <?php
103 }
104 ?>
105 " style="margin-right: 0;
106 <?php
107 if ( empty( $matomo_feature['image'] ) ) {
108 echo 'margin-left: 0;';
109 }
110 ?>
111 ">
112 <h3>
113 <a href="<?php echo esc_url( ! empty( $matomo_feature['video'] ) ? $matomo_feature['video'] : $plugin_url ); ?>"
114 rel="noreferrer noopener" target="_blank"
115 class="thickbox open-plugin-details-modal">
116 <?php echo esc_html( $matomo_feature['name'] ); ?>
117 </a>
118 <?php
119 if ( ! $matomo_is_3_columns && ! empty( $matomo_feature['image'] ) ) {
120 ?>
121 <a
122 href="<?php echo esc_url( $plugin_url ); ?>"
123 rel="noreferrer noopener" target="_blank"
124 class="thickbox open-plugin-details-modal"><img
125 src="<?php echo esc_url( $matomo_feature['image'] ); ?>" class="plugin-icon"
126 style="object-fit: cover;"
127 alt=""></a>
128 <?php
129 }
130 ?>
131 </h3>
132 </div>
133 <div class="
134 <?php
135 if ( ! $matomo_is_3_columns ) {
136 ?>
137 desc column-description
138 <?php
139 }
140 ?>
141 "
142 style="margin-right: 0;
143 <?php
144 if ( empty( $matomo_feature['image'] ) ) {
145 echo 'margin-left: 0;';
146 }
147 ?>
148 ">
149 <p class="matomo-description"><?php echo esc_html( $matomo_feature['description'] ); ?>
150 <?php
151 if ( ! empty( $matomo_feature['video'] ) ) {
152 echo ' <a target="_blank" rel="noreferrer noopener" style="white-space: nowrap;" href="' . esc_url( $matomo_feature['video'] ) . '"><span class="dashicons dashicons-video-alt3"></span> ' . esc_html__( 'Learn more', 'matomo' ) . '</a>';
153 } elseif ( ! empty( $matomo_feature['url'] ) ) {
154 echo ' <a target="_blank" rel="noreferrer noopener" style="white-space: nowrap;" href="' . esc_url( $plugin_url ) . '">' . esc_html__( 'Learn more', 'matomo' ) . '</a>';
155 }
156 ?>
157 </p>
158 <?php
159 if ( ! empty( $matomo_feature['price'] ) ) {
160 ?>
161 <p class="authors"><a class="button-primary"
162 rel="noreferrer noopener" target="_blank"
163 href="<?php echo esc_url( ! empty( $matomo_feature['download_url'] ) ? $matomo_feature['download_url'] : $plugin_url ); ?>">
164 <?php
165 if ( 'free' === $matomo_feature['price'] ) {
166 esc_html_e( 'Download', 'matomo' );
167 } else {
168 echo esc_html( $matomo_feature['price'] );
169 }
170 ?>
171 </a>
172 </p>
173 <?php
174 }
175 ?>
176 </div>
177 </div>
178 <?php
179 // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
180 echo $matomo_extra_card_html;
181 ?>
182 </div>
183 <?php
184 }
185 echo '';
186 echo '</div><div style="clear: both"></div>';
187 if ( ! empty( $matomo_feature_section['more_url'] ) ) {
188 echo '<a target="_blank" rel="noreferrer noopener" href="' . esc_attr( $matomo_feature_section['more_url'] ) . '"><span class="dashicons dashicons-arrow-right-alt2"></span>' . esc_html( $matomo_feature_section['more_text'] ) . '</a>';
189 }
190 echo '</div>';
191 }
192 }
193
194 $matomo_feature_sections = [
195 [
196 'title' => 'What\'s New',
197 'class' => 'matomo-new-plugins',
198 'extra_card_html' => '<span class="matomo-new-marker">' . esc_html__( 'New!', 'matomo' ) . '</span>',
199 'features' =>
200 [
201 [
202 'name' => 'Crash Analytics',
203 'description' => 'Detect crashes to improve the user experience, increase conversions and recover revenue. Resolve them with insights to minimise developer hours.',
204 'price' => '69EUR / 79USD',
205 'url' => 'https://plugins.matomo.org/CrashAnalytics?wp=1&pk_campaign=WP&pk_source=Plugin',
206 'image' => '',
207 ],
208 ],
209 ],
210 [
211 'title' => 'Top free plugins',
212 'more_url' => 'https://plugins.matomo.org/free?wp=1&pk_campaign=WP&pk_source=Plugin',
213 'more_text' => 'Browse all free plugins',
214 'features' =>
215 [
216 [
217 'name' => 'Marketing Campaigns Reporting',
218 'description' => 'Measure the effectiveness of your marketing campaigns. Track up to five channels instead of two: campaign, source, medium, keyword, content.',
219 'price' => 'free',
220 'download_url' => 'https://plugins.matomo.org/api/2.0/plugins/MarketingCampaignsReporting/download/latest?wp=1' . $matomo_extra_url_params,
221 'url' => 'https://plugins.matomo.org/MarketingCampaignsReporting?wp=1&pk_campaign=WP&pk_source=Plugin',
222 'image' => '',
223 ],
224 [
225 'name' => 'Custom Alerts',
226 'description' => 'Create custom Alerts to be notified of important changes on your website or app!',
227 'price' => 'free',
228 'download_url' => 'https://plugins.matomo.org/api/2.0/plugins/CustomAlerts/download/latest?wp=1' . $matomo_extra_url_params,
229 'url' => 'https://plugins.matomo.org/CustomAlerts?wp=1&pk_campaign=WP&pk_source=Plugin',
230 'image' => '',
231 ],
232 ],
233 ],
234 ];
235
236 /** @var \WpMatomo\Settings $settings */
237 $matomo_version = $settings->get_matomo_major_version();
238
239 matomo_show_tables( $matomo_feature_sections, $matomo_version );
240
241 echo '<br>';
242
243 $matomo_feature_sections = [
244 [
245 'title' => 'Most popular premium features',
246 'features' =>
247 [
248 [
249 'name' => 'Heatmap & Session Recording',
250 'description' => 'Truly understand your visitors by seeing where they click, hover, type and scroll. Replay their actions in a video and ultimately increase conversions.',
251 'price' => '99EUR / 119USD',
252 'url' => 'https://plugins.matomo.org/HeatmapSessionRecording?wp=1&pk_campaign=WP&pk_source=Plugin',
253 'image' => '',
254 ],
255 [
256 'name' => 'Custom Reports',
257 'description' => 'Pull out the information you need in order to be successful. Develop your custom strategy to meet your individualized goals while saving money & time.',
258 'price' => '99EUR / 119USD',
259 'url' => 'https://plugins.matomo.org/CustomReports?wp=1&pk_campaign=WP&pk_source=Plugin',
260 'image' => '',
261 ],
262
263 [
264 'name' => 'Premium Bundle',
265 'description' => 'All premium features in one bundle, make the most out of your Matomo for WordPress and enjoy discounts of over 25%!',
266 'price' => '499EUR / 579USD',
267 'url' => 'https://plugins.matomo.org/WpPremiumBundle?wp=1&pk_campaign=WP&pk_source=Plugin',
268 'image' => '',
269 ],
270 ],
271 ],
272 [
273 'title' => 'Most popular content engagement',
274 'features' =>
275 [
276 [
277 'name' => 'Form Analytics',
278 'description' => 'Increase conversions on your online forms and lose less visitors by learning everything about your users behavior and their pain points on your forms.',
279 'price' => '79EUR / 89USD',
280 'url' => 'https://plugins.matomo.org/FormAnalytics?wp=1&pk_campaign=WP&pk_source=Plugin',
281 'image' => '',
282 ],
283 [
284 'name' => 'Video & Audio Analytics',
285 'description' => 'Grow your business with advanced video & audio analytics. Get powerful insights into how your audience watches your videos and listens to your audio.',
286 'price' => '79EUR / 89USD',
287 'url' => 'https://plugins.matomo.org/MediaAnalytics?wp=1&pk_campaign=WP&pk_source=Plugin',
288 'image' => '',
289 ],
290 [
291 'name' => 'Users Flow',
292 'description' => 'Users Flow is a visual representation of the most popular paths your users take through your website & app which lets you understand your users needs.',
293 'price' => '39EUR / 39USD',
294 'url' => 'https://plugins.matomo.org/UsersFlow?wp=1&pk_campaign=WP&pk_source=Plugin',
295 'image' => '',
296 ],
297 ],
298 ],
299 [
300 'title' => 'Most popular acquisition & SEO features',
301 'features' =>
302 [
303 [
304 'name' => 'Search Engine Keywords Performance',
305 'description' => 'All keywords searched by your users on search engines are now visible into your Referrers reports! The ultimate solution to \'Keyword not defined\'.',
306 'price' => '69EUR / 79USD',
307 'url' => 'https://plugins.matomo.org/SearchEngineKeywordsPerformance?wp=1&pk_campaign=WP&pk_source=Plugin',
308 'image' => '',
309 ],
310 [
311 'name' => 'SEO Web Vitals',
312 'description' => 'Improve your website performance, rank higher in search results and optimise your visitor experience with SEO Web Vitals.',
313 'price' => '39EUR / 39USD',
314 'url' => 'https://plugins.matomo.org/SEOWebVitals?wp=1&pk_campaign=WP&pk_source=Plugin',
315 'image' => '',
316 ],
317 ],
318 ],
319 [
320 'title' => '',
321 'features' =>
322 [
323 [
324 'name' => 'Advertising Conversion Export',
325 'description' => 'Provides an export of attributed goal conversions for usage in ad networks like Google Ads so you no longer need a conversion pixel.',
326 'price' => '79EUR / 89USD',
327 'url' => 'https://plugins.matomo.org/AdvertisingConversionExport?wp=1&pk_campaign=WP&pk_source=Plugin',
328 'image' => '',
329 ],
330 [
331 'name' => 'Multi Attribution',
332 'description' => 'Get a clear understanding of how much credit each of your marketing channel is actually responsible for to shift your marketing efforts wisely.',
333 'price' => '39EUR / 39USD',
334 'url' => 'https://plugins.matomo.org/MultiChannelConversionAttribution?wp=1&pk_campaign=WP&pk_source=Plugin',
335 'image' => '',
336 ],
337 ],
338 ],
339 [
340 'title' => 'Other premium features',
341 'features' =>
342 [
343 [
344 'name' => 'Funnels',
345 'description' => 'Identify and understand where your visitors drop off to increase your conversions, sales and revenue with your existing traffic.',
346 'price' => '89EUR / 99USD',
347 'url' => 'https://plugins.matomo.org/Funnels?wp=1&pk_campaign=WP&pk_source=Plugin',
348 'image' => '',
349 ],
350 [
351 'name' => 'Cohorts',
352 'description' => 'Track your retention efforts over time and keep your visitors engaged and coming back for more.',
353 'price' => '49EUR / 59USD',
354 'url' => 'https://plugins.matomo.org/Cohorts?wp=1&pk_campaign=WP&pk_source=Plugin',
355 'image' => '',
356 ],
357 [
358 'name' => 'Crash Analytics',
359 'description' => 'Detect crashes to improve the user experience, increase conversions and recover revenue. Resolve them with insights to minimise developer hours.',
360 'price' => '69EUR / 79USD',
361 'url' => 'https://plugins.matomo.org/CrashAnalytics?wp=1&pk_campaign=WP&pk_source=Plugin',
362 'image' => '',
363 ],
364 ],
365 ],
366 ];
367
368 matomo_show_tables( $matomo_feature_sections, $matomo_version );
369
370 ?>
371
372 </div>
373