96 lines
2.2 KiB
PHP
96 lines
2.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Add notification for high EU Traffic
|
|
* Recurrence: 30 Days
|
|
*
|
|
* @since 7.12.3
|
|
*/
|
|
final class MonsterInsights_Notification_Upgrade_EU_Traffic extends MonsterInsights_Notification_Event {
|
|
|
|
public $notification_id = 'monsterinsights_notification_eu_traffic';
|
|
public $notification_interval = 30; // in days
|
|
public $notification_type = array( 'basic', 'lite' );
|
|
public $notification_icon = 'star';
|
|
public $notification_category = 'insight';
|
|
public $notification_priority = 1;
|
|
|
|
/**
|
|
* Build Notification
|
|
*
|
|
* @return array|false $notification notification is ready to add
|
|
*
|
|
* @since 7.12.3
|
|
*/
|
|
public function prepare_notification_data( $notification ) {
|
|
|
|
$eu_countries = [
|
|
'AT',
|
|
'BE',
|
|
'BG',
|
|
'HR',
|
|
'CY',
|
|
'CZ',
|
|
'DK',
|
|
'EE',
|
|
'FI',
|
|
'FR',
|
|
'DE',
|
|
'GR',
|
|
'HU',
|
|
'IE',
|
|
'IT',
|
|
'LU',
|
|
'MT',
|
|
'NL',
|
|
'PL',
|
|
'PT',
|
|
'RO',
|
|
'SK',
|
|
'SI',
|
|
'ES',
|
|
'SE'
|
|
];
|
|
|
|
$report = $this->get_report();
|
|
if ( ! $report || ! $report['success'] ) {
|
|
return false;
|
|
}
|
|
|
|
$sessions = isset( $report['data']['infobox']['sessions']['value'] ) ? $report['data']['infobox']['sessions']['value'] : 0;
|
|
$all_countries = isset( $report['data']['countries'] ) ? $report['data']['countries'] : [];
|
|
|
|
$eu_sessions = 0;
|
|
|
|
foreach ( $all_countries as $country ) {
|
|
if ( in_array( $country['iso'], $eu_countries ) ) {
|
|
$eu_sessions += intval( $country['sessions'] );
|
|
}
|
|
}
|
|
|
|
if ( empty( $sessions ) ) {
|
|
return false;
|
|
}
|
|
|
|
$eu_sessions_percentage = $eu_sessions / $sessions * 100;
|
|
|
|
if ( $eu_sessions_percentage < 1 ) {
|
|
return false;
|
|
}
|
|
|
|
$notification['title'] = __( 'Help Your Site Become GDPR Compliant', 'google-analytics-for-wordpress' );
|
|
$notification['content'] = __( 'Your site is receiving traffic from the EU. Help ensure your site is more compliant with GDPR by upgrading to MonsterInsights Pro and enable our EU Privacy addon.', 'google-analytics-for-wordpress' );
|
|
$notification['btns'] = array(
|
|
"get_monsterinsights_pro" => array(
|
|
'url' => $this->get_upgrade_url(),
|
|
'text' => __( 'Get MonsterInsights Pro', 'google-analytics-for-wordpress' ),
|
|
'is_external' => true,
|
|
),
|
|
);
|
|
|
|
return $notification;
|
|
}
|
|
}
|
|
|
|
new MonsterInsights_Notification_Upgrade_EU_Traffic();
|