Admin
2 months ago
Commands
2 years ago
Db
1 year ago
Ecommerce
3 months ago
Report
2 months ago
Site
2 months ago
TrackingCode
4 months ago
Updater
4 years ago
User
2 months ago
Workarounds
2 years ago
WpStatistics
5 months ago
views
4 years ago
AIBotTracking.php
4 months ago
API.php
2 months ago
Access.php
4 years ago
AjaxTracker.php
4 months ago
Annotations.php
2 months ago
Bootstrap.php
10 months ago
Capabilities.php
2 months ago
Compatibility.php
2 months ago
Email.php
2 years ago
ErrorNotice.php
2 months ago
Feature.php
2 months ago
Installer.php
5 months ago
Logger.php
1 year ago
OptOut.php
2 months ago
Paths.php
5 months ago
PluginActionLinks.php
2 months ago
PluginAdminOverrides.php
2 months ago
PluginInit.php
2 months ago
PrivacyBadge.php
4 years ago
RedirectOnActivation.php
2 months ago
Referral.php
2 months ago
Roles.php
2 months ago
ScheduledTasks.php
2 months ago
Settings.php
4 months ago
Site.php
3 years ago
TrackingCode.php
2 months ago
Uninstaller.php
5 months ago
Updater.php
10 months ago
User.php
4 years ago
ErrorNotice.php
57 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WpMatomo; |
| 4 | |
| 5 | if ( ! defined( 'ABSPATH' ) ) { |
| 6 | exit; // if accessed directly |
| 7 | } |
| 8 | class ErrorNotice extends Feature { |
| 9 | |
| 10 | const OPTION_NAME_SYSTEM_REPORT_ERRORS_DISMISSED = 'matomo_system_report_errors_dismissed'; |
| 11 | |
| 12 | private $settings; |
| 13 | |
| 14 | public function __construct( $settings ) { |
| 15 | $this->settings = $settings; |
| 16 | } |
| 17 | |
| 18 | public function is_active() { |
| 19 | return is_admin(); |
| 20 | } |
| 21 | |
| 22 | public function register_hooks() { |
| 23 | add_action( 'admin_notices', [ $this, 'check_errors' ] ); |
| 24 | |
| 25 | add_action( |
| 26 | 'wp_ajax_matomo_system_report_error_dismissed', |
| 27 | function () { |
| 28 | check_ajax_referer( 'matomo-systemreport-notice-dismiss' ); |
| 29 | |
| 30 | if ( is_admin() ) { |
| 31 | update_user_meta( get_current_user_id(), self::OPTION_NAME_SYSTEM_REPORT_ERRORS_DISMISSED, true ); |
| 32 | } |
| 33 | } |
| 34 | ); |
| 35 | } |
| 36 | |
| 37 | public function check_errors() { |
| 38 | $is_matomo_super_user = current_user_can( Capabilities::KEY_SUPERUSER ); |
| 39 | if ( isset( $_GET['page'] ) |
| 40 | && substr( sanitize_text_field( wp_unslash( $_GET['page'] ) ), 0, 7 ) === 'matomo-' |
| 41 | && $is_matomo_super_user |
| 42 | ) { |
| 43 | $system_report = new \WpMatomo\Admin\SystemReport( $this->settings ); |
| 44 | if ( ! get_user_meta( get_current_user_id(), self::OPTION_NAME_SYSTEM_REPORT_ERRORS_DISMISSED ) && $system_report->errors_present() ) { |
| 45 | echo '<div class="notice notice-warning is-dismissible" id="matomo-systemreporterrors"><p>' |
| 46 | . sprintf( |
| 47 | esc_html__( 'There are some errors in the %1$sMatomo Diagnostics System report%2$s that may prevent the plugin for working normally.', 'matomo' ), |
| 48 | '<a href="' . esc_url( admin_url( 'admin.php?page=matomo-systemreport' ) ) . '">', |
| 49 | '</a>' |
| 50 | ) |
| 51 | . '</p></div>'; |
| 52 | } |
| 53 | } |
| 54 | } |
| 55 | |
| 56 | } |
| 57 |