35 lines
2.0 KiB
PHP
35 lines
2.0 KiB
PHP
<?php
|
|
if(!defined('ABSPATH')) exit;
|
|
class WMF_Service_Google_Analytics extends WMF_Service {
|
|
public $id='google-analytics'; public $label='Google Analytics (GA4)'; public $group='analytics';
|
|
protected $credentials=array('measurement_id'=>'');
|
|
public function is_connected(){return!empty($this->credentials['measurement_id']);}
|
|
public function admin_widget($prev=array()){
|
|
$c = $this->get_credentials();
|
|
$int = wmf_get_integrations();
|
|
$act = $int->action_update;
|
|
$nonce= wp_create_nonce($act);
|
|
$conn = $this->is_connected();
|
|
echo '<div class="wmf-widget-body">';
|
|
if($conn) echo '<div class="wmf-connected-badge">✓ Verbunden</div>';
|
|
echo '<form class="wmf-int-form">';
|
|
echo '<input type="hidden" name="_wpnonce" value="'.esc_attr($nonce).'">';
|
|
echo '<input type="hidden" name="action" value="'.esc_attr($act).'">';
|
|
echo '<input type="hidden" name="services[]" value="google-analytics">';
|
|
|
|
echo '<p><label>Mess-ID (GA4)</label>';
|
|
echo '<input type="text" name="credentials[google-analytics][measurement_id]" value="'.esc_attr($c['measurement_id']??'').'" class="widefat" placeholder="G-XXXXXXXXXX">';
|
|
echo '<span class="description">Google Analytics → Verwaltung → Datenstroeme → Mess-ID. Das gtag.js-Skript wird automatisch eingebunden.</span></p>';
|
|
|
|
echo '<p><button type="submit" class="button button-primary">Speichern</button></p>';
|
|
echo '</form>';
|
|
|
|
echo '</div>';
|
|
}
|
|
public function load(){if($this->is_connected()) add_action('wp_footer',array($this,'inject_gtag'));}
|
|
public function inject_gtag(){
|
|
$id=esc_js($this->credentials['measurement_id']);
|
|
echo '<script async src="https://www.googletagmanager.com/gtag/js?id='.$id.'"></script>';
|
|
echo '<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag("js",new Date());gtag("config","'.$id.'");</script>';
|
|
}
|
|
} |