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