access.php
2 years ago
advanced_settings.php
2 years ago
exclusion_settings.php
4 years ago
geolocation_settings.php
2 years ago
get_started.php
4 years ago
import_wp_statistics.php
4 years ago
info.php
4 years ago
info_bug_report.php
2 years ago
info_help.php
4 years ago
info_high_traffic.php
2 years ago
info_multisite.php
2 years ago
info_newsletter.php
4 years ago
info_shared.php
4 years ago
marketplace.php
2 years ago
marketplace_setup_wizard.php
2 years 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
2 years ago
tracking.php
3 years ago
update_notice_clear_cache.php
5 years ago
marketplace.php
352 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 | |
| 66 | echo '<h2>' . esc_html( $matomo_feature_section['title'] ) . '</h2>'; |
| 67 | echo '<div class="wp-list-table widefat plugin-install matomo-plugin-list matomo-plugin-row-' . esc_html( $matomo_num_features_in_block ) . '"><div id="the-list">'; |
| 68 | |
| 69 | foreach ( $matomo_feature_section['features'] as $matomo_index => $matomo_feature ) { |
| 70 | $matomo_style = ''; |
| 71 | $matomo_is_3_columns = 3 === $matomo_num_features_in_block; |
| 72 | if ( $matomo_is_3_columns ) { |
| 73 | $matomo_style = 'width: calc(33% - 8px);min-width:282px;max-width:350px;'; |
| 74 | if ( 2 === $matomo_index % 3 ) { |
| 75 | $matomo_style .= 'clear: inherit;margin-right: 0;margin-left: 16px;'; |
| 76 | } |
| 77 | } |
| 78 | $plugin_url = empty( $matomo_feature['url'] ) ? null : $matomo_feature['url'] . '&matomoversion=' . $matomo_version; |
| 79 | ?> |
| 80 | <div class="plugin-card" style="<?php echo esc_attr( $matomo_style ); ?>"> |
| 81 | <?php |
| 82 | if ( $matomo_is_3_columns && ! empty( $matomo_feature['image'] ) ) { |
| 83 | ?> |
| 84 | <a |
| 85 | href="<?php echo esc_url( $plugin_url ); ?>" |
| 86 | rel="noreferrer noopener" target="_blank" |
| 87 | class="thickbox open-plugin-details-modal"><img |
| 88 | src="<?php echo esc_url( $matomo_feature['image'] ); ?>" |
| 89 | style="height: 80px;width:100%;object-fit: cover;" alt=""></a> |
| 90 | <?php |
| 91 | } |
| 92 | ?> |
| 93 | |
| 94 | <div class="plugin-card-top"> |
| 95 | <div class=" |
| 96 | <?php |
| 97 | if ( ! $matomo_is_3_columns ) { |
| 98 | ?> |
| 99 | name column-name |
| 100 | <?php |
| 101 | } |
| 102 | ?> |
| 103 | " style="margin-right: 0; |
| 104 | <?php |
| 105 | if ( empty( $matomo_feature['image'] ) ) { |
| 106 | echo 'margin-left: 0;'; |
| 107 | } |
| 108 | ?> |
| 109 | "> |
| 110 | <h3> |
| 111 | <a href="<?php echo esc_url( ! empty( $matomo_feature['video'] ) ? $matomo_feature['video'] : $plugin_url ); ?>" |
| 112 | rel="noreferrer noopener" target="_blank" |
| 113 | class="thickbox open-plugin-details-modal"> |
| 114 | <?php echo esc_html( $matomo_feature['name'] ); ?> |
| 115 | </a> |
| 116 | <?php |
| 117 | if ( ! $matomo_is_3_columns && ! empty( $matomo_feature['image'] ) ) { |
| 118 | ?> |
| 119 | <a |
| 120 | href="<?php echo esc_url( $plugin_url ); ?>" |
| 121 | rel="noreferrer noopener" target="_blank" |
| 122 | class="thickbox open-plugin-details-modal"><img |
| 123 | src="<?php echo esc_url( $matomo_feature['image'] ); ?>" class="plugin-icon" |
| 124 | style="object-fit: cover;" |
| 125 | alt=""></a> |
| 126 | <?php |
| 127 | } |
| 128 | ?> |
| 129 | </h3> |
| 130 | </div> |
| 131 | <div class=" |
| 132 | <?php |
| 133 | if ( ! $matomo_is_3_columns ) { |
| 134 | ?> |
| 135 | desc column-description |
| 136 | <?php |
| 137 | } |
| 138 | ?> |
| 139 | " |
| 140 | style="margin-right: 0; |
| 141 | <?php |
| 142 | if ( empty( $matomo_feature['image'] ) ) { |
| 143 | echo 'margin-left: 0;'; |
| 144 | } |
| 145 | ?> |
| 146 | "> |
| 147 | <p class="matomo-description"><?php echo esc_html( $matomo_feature['description'] ); ?> |
| 148 | <?php |
| 149 | if ( ! empty( $matomo_feature['video'] ) ) { |
| 150 | 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>'; |
| 151 | } elseif ( ! empty( $matomo_feature['url'] ) ) { |
| 152 | echo ' <a target="_blank" rel="noreferrer noopener" style="white-space: nowrap;" href="' . esc_url( $plugin_url ) . '">' . esc_html__( 'Learn more', 'matomo' ) . '</a>'; |
| 153 | } |
| 154 | ?> |
| 155 | </p> |
| 156 | <?php |
| 157 | if ( ! empty( $matomo_feature['price'] ) ) { |
| 158 | ?> |
| 159 | <p class="authors"><a class="button-primary" |
| 160 | rel="noreferrer noopener" target="_blank" |
| 161 | href="<?php echo esc_url( ! empty( $matomo_feature['download_url'] ) ? $matomo_feature['download_url'] : $plugin_url ); ?>"> |
| 162 | <?php |
| 163 | if ( 'free' === $matomo_feature['price'] ) { |
| 164 | esc_html_e( 'Download', 'matomo' ); |
| 165 | } else { |
| 166 | echo esc_html( $matomo_feature['price'] ); |
| 167 | } |
| 168 | ?> |
| 169 | </a> |
| 170 | </p> |
| 171 | <?php |
| 172 | } |
| 173 | ?> |
| 174 | </div> |
| 175 | </div> |
| 176 | </div> |
| 177 | <?php |
| 178 | } |
| 179 | echo ''; |
| 180 | echo '</div><div style="clear: both"></div>'; |
| 181 | if ( ! empty( $matomo_feature_section['more_url'] ) ) { |
| 182 | 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>'; |
| 183 | } |
| 184 | echo '</div>'; |
| 185 | } |
| 186 | } |
| 187 | |
| 188 | $matomo_feature_sections = [ |
| 189 | [ |
| 190 | 'title' => 'Top free plugins', |
| 191 | 'more_url' => 'https://plugins.matomo.org/free?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 192 | 'more_text' => 'Browse all free plugins', |
| 193 | 'features' => |
| 194 | [ |
| 195 | [ |
| 196 | 'name' => 'Marketing Campaigns Reporting', |
| 197 | 'description' => 'Measure the effectiveness of your marketing campaigns. Track up to five channels instead of two: campaign, source, medium, keyword, content.', |
| 198 | 'price' => 'free', |
| 199 | 'download_url' => 'https://plugins.matomo.org/api/2.0/plugins/MarketingCampaignsReporting/download/latest?wp=1' . $matomo_extra_url_params, |
| 200 | 'url' => 'https://plugins.matomo.org/MarketingCampaignsReporting?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 201 | 'image' => '', |
| 202 | ], |
| 203 | [ |
| 204 | 'name' => 'Custom Alerts', |
| 205 | 'description' => 'Create custom Alerts to be notified of important changes on your website or app!', |
| 206 | 'price' => 'free', |
| 207 | 'download_url' => 'https://plugins.matomo.org/api/2.0/plugins/CustomAlerts/download/latest?wp=1' . $matomo_extra_url_params, |
| 208 | 'url' => 'https://plugins.matomo.org/CustomAlerts?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 209 | 'image' => '', |
| 210 | ], |
| 211 | ], |
| 212 | ], |
| 213 | ]; |
| 214 | |
| 215 | /** @var \WpMatomo\Settings $settings */ |
| 216 | $matomo_version = (int) explode( '.', $settings->get_global_option( 'core_version' ) )[0]; |
| 217 | |
| 218 | matomo_show_tables( $matomo_feature_sections, $matomo_version ); |
| 219 | |
| 220 | echo '<br>'; |
| 221 | |
| 222 | $matomo_feature_sections = [ |
| 223 | [ |
| 224 | 'title' => 'Most popular premium features', |
| 225 | 'features' => |
| 226 | [ |
| 227 | [ |
| 228 | 'name' => 'Heatmap & Session Recording', |
| 229 | 'description' => 'Truly understand your visitors by seeing where they click, hover, type and scroll. Replay their actions in a video and ultimately increase conversions.', |
| 230 | 'price' => '99EUR / 119USD', |
| 231 | 'url' => 'https://plugins.matomo.org/HeatmapSessionRecording?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 232 | 'image' => '', |
| 233 | ], |
| 234 | [ |
| 235 | 'name' => 'Custom Reports', |
| 236 | '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.', |
| 237 | 'price' => '99EUR / 119USD', |
| 238 | 'url' => 'https://plugins.matomo.org/CustomReports?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 239 | 'image' => '', |
| 240 | ], |
| 241 | |
| 242 | [ |
| 243 | 'name' => 'Premium Bundle', |
| 244 | 'description' => 'All premium features in one bundle, make the most out of your Matomo for WordPress and enjoy discounts of over 25%!', |
| 245 | 'price' => '499EUR / 579USD', |
| 246 | 'url' => 'https://plugins.matomo.org/WpPremiumBundle?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 247 | 'image' => '', |
| 248 | ], |
| 249 | ], |
| 250 | ], |
| 251 | [ |
| 252 | 'title' => 'Most popular content engagement', |
| 253 | 'features' => |
| 254 | [ |
| 255 | [ |
| 256 | 'name' => 'Form Analytics', |
| 257 | '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.', |
| 258 | 'price' => '79EUR / 89USD', |
| 259 | 'url' => 'https://plugins.matomo.org/FormAnalytics?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 260 | 'image' => '', |
| 261 | ], |
| 262 | [ |
| 263 | 'name' => 'Video & Audio Analytics', |
| 264 | 'description' => 'Grow your business with advanced video & audio analytics. Get powerful insights into how your audience watches your videos and listens to your audio.', |
| 265 | 'price' => '79EUR / 89USD', |
| 266 | 'url' => 'https://plugins.matomo.org/MediaAnalytics?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 267 | 'image' => '', |
| 268 | ], |
| 269 | [ |
| 270 | 'name' => 'Users Flow', |
| 271 | '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.', |
| 272 | 'price' => '39EUR / 39USD', |
| 273 | 'url' => 'https://plugins.matomo.org/UsersFlow?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 274 | 'image' => '', |
| 275 | ], |
| 276 | ], |
| 277 | ], |
| 278 | [ |
| 279 | 'title' => 'Most popular acquisition & SEO features', |
| 280 | 'features' => |
| 281 | [ |
| 282 | [ |
| 283 | 'name' => 'Search Engine Keywords Performance', |
| 284 | 'description' => 'All keywords searched by your users on search engines are now visible into your Referrers reports! The ultimate solution to \'Keyword not defined\'.', |
| 285 | 'price' => '69EUR / 79USD', |
| 286 | 'url' => 'https://plugins.matomo.org/SearchEngineKeywordsPerformance?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 287 | 'image' => '', |
| 288 | ], |
| 289 | [ |
| 290 | 'name' => 'SEO Web Vitals', |
| 291 | 'description' => 'Improve your website performance, rank higher in search results and optimise your visitor experience with SEO Web Vitals.', |
| 292 | 'price' => '39EUR / 39USD', |
| 293 | 'url' => 'https://plugins.matomo.org/SEOWebVitals?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 294 | 'image' => '', |
| 295 | ], |
| 296 | ], |
| 297 | ], |
| 298 | [ |
| 299 | 'title' => '', |
| 300 | 'features' => |
| 301 | [ |
| 302 | [ |
| 303 | 'name' => 'Advertising Conversion Export', |
| 304 | 'description' => 'Provides an export of attributed goal conversions for usage in ad networks like Google Ads so you no longer need a conversion pixel.', |
| 305 | 'price' => '79EUR / 89USD', |
| 306 | 'url' => 'https://plugins.matomo.org/AdvertisingConversionExport?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 307 | 'image' => '', |
| 308 | ], |
| 309 | [ |
| 310 | 'name' => 'Multi Attribution', |
| 311 | 'description' => 'Get a clear understanding of how much credit each of your marketing channel is actually responsible for to shift your marketing efforts wisely.', |
| 312 | 'price' => '39EUR / 39USD', |
| 313 | 'url' => 'https://plugins.matomo.org/MultiChannelConversionAttribution?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 314 | 'image' => '', |
| 315 | ], |
| 316 | ], |
| 317 | ], |
| 318 | [ |
| 319 | 'title' => 'Other premium features', |
| 320 | 'features' => |
| 321 | [ |
| 322 | [ |
| 323 | 'name' => 'Funnels', |
| 324 | 'description' => 'Identify and understand where your visitors drop off to increase your conversions, sales and revenue with your existing traffic.', |
| 325 | 'price' => '89EUR / 99USD', |
| 326 | 'url' => 'https://plugins.matomo.org/Funnels?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 327 | 'image' => '', |
| 328 | ], |
| 329 | [ |
| 330 | 'name' => 'Cohorts', |
| 331 | 'description' => 'Track your retention efforts over time and keep your visitors engaged and coming back for more.', |
| 332 | 'price' => '49EUR / 59USD', |
| 333 | 'url' => 'https://plugins.matomo.org/Cohorts?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 334 | 'image' => '', |
| 335 | ], |
| 336 | [ |
| 337 | 'name' => 'Crash Analytics', |
| 338 | 'description' => 'Detect crashes to improve the user experience, increase conversions and recover revenue. Resolve them with insights to minimise developer hours.', |
| 339 | 'price' => '69EUR / 79USD', |
| 340 | 'url' => 'https://plugins.matomo.org/CrashAnalytics?wp=1&pk_campaign=WP&pk_source=Plugin', |
| 341 | 'image' => '', |
| 342 | ], |
| 343 | ], |
| 344 | ], |
| 345 | ]; |
| 346 | |
| 347 | matomo_show_tables( $matomo_feature_sections, $matomo_version ); |
| 348 | |
| 349 | ?> |
| 350 | |
| 351 | </div> |
| 352 |