PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.10.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.10.1
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 / Info.php
matomo / classes / WpMatomo / Admin Last commit date
Marketplace 1 month ago PluginSuggestions 2 months ago TrackingSettings 1 month ago views 1 month ago AccessSettings.php 4 years ago AdBlockDetector.php 6 months ago Admin.php 1 month ago AdminSettings.php 2 months ago AdminSettingsInterface.php 6 years ago AdvancedSettings.php 10 months ago Chart.php 1 month ago CookieConsent.php 4 years ago Dashboard.php 2 months ago ExclusionSettings.php 6 months ago GeolocationSettings.php 2 years ago GetStarted.php 2 months ago ImportWpStatistics.php 2 months ago Info.php 2 months ago InvalidIpException.php 4 years ago Marketplace.php 1 month ago MarketplaceSetupWizard.php 1 month ago MarketplaceSetupWizardBody.php 1 month ago MatomoPage.php 2 months ago MatomoPageContent.php 2 months ago Menu.php 1 month ago PluginMeasurableSettings.php 2 years ago PrivacySettings.php 1 year ago SafeModeMenu.php 2 months ago Summary.php 2 months ago SystemReport.php 1 month ago TrackingSettings.php 1 month ago WhatsNewNotifications.php 2 months ago
Info.php
87 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 namespace WpMatomo\Admin;
11
12 use WpMatomo\Capabilities;
13
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit; // if accessed directly
16 }
17
18 class Info implements MatomoPageContent {
19
20 const NONCE_NAME = 'matomo_newsletter';
21 const FORM_NAME = 'matomo_newsletter_signup';
22
23 /**
24 * @var bool
25 */
26 private $is_multisite;
27
28 public function __construct( $is_multisite = false ) {
29 $this->is_multisite = $is_multisite;
30 }
31
32 private function update_if_submitted() {
33 if ( isset( $_POST )
34 && ! empty( $_POST[ self::FORM_NAME ] )
35 && is_admin()
36 && check_admin_referer( self::NONCE_NAME )
37 && $this->show_newsletter_signup()
38 && current_user_can( Capabilities::KEY_VIEW ) ) {
39 $user = wp_get_current_user();
40 $locale = explode( '_', get_user_locale( $user->ID ) );
41 wp_remote_get(
42 'https://api.matomo.org/1.0/subscribeNewsletter/?' . http_build_query(
43 [
44 'email' => $user->user_email,
45 'wordpress' => 1,
46 'language' => $locale[0],
47 ]
48 )
49 );
50 update_user_meta( $user->ID, self::FORM_NAME, '1' );
51
52 return true;
53 }
54 }
55
56 private function show_newsletter_signup() {
57 if ( ! is_user_logged_in() ) {
58 return false;
59 }
60
61 $user = wp_get_current_user();
62
63 return ! get_user_meta( $user->ID, self::FORM_NAME, true );
64 }
65
66 public function show() {
67 $this->render( 'info' );
68 }
69
70 public function show_multisite() {
71 $this->render( 'info_multisite' );
72 }
73
74 private function render( $template ) {
75 $signedup_newsletter = $this->update_if_submitted();
76 $show_newsletter = $this->show_newsletter_signup();
77
78 include dirname( __FILE__ ) . '/views/' . $template . '.php';
79 }
80
81 public function get_title() {
82 return $this->is_multisite
83 ? __( 'Matomo Analytics in Multi Site mode', 'matomo' )
84 : __( 'How can we help?', 'matomo' );
85 }
86 }
87