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