File: /var/www/vhosts/uyarreklam.com.tr/httpdocs/ActivatedEvents.php.tar
httpdocs/wp-content/plugins/google-listings-and-ads/src/Tracking/Events/ActivatedEvents.php 0000644 00000004237 15155160764 0034445 0 ustar 00 var/www/vhosts/uyarreklam.com.tr <?php
declare( strict_types=1 );
namespace Automattic\WooCommerce\GoogleListingsAndAds\Tracking\Events;
use Automattic\WooCommerce\GoogleListingsAndAds\Infrastructure\Activateable;
/**
* This class adds actions to track when the extension is activated.
* *
*
* @package Automattic\WooCommerce\GoogleListingsAndAds\Tracking
*/
class ActivatedEvents extends BaseEvent implements Activateable {
/**
* The page where activation with a source can occur.
*/
public const ACTIVATION_PAGE = 'plugin-install.php';
/**
* The query parameters used to determine activation source details.
*/
public const SOURCE_PARAMS = [
'utm_source',
'utm_medium',
'utm_campaign',
'utm_term',
'utm_content',
];
/**
* @var array The request SERVER variables.
*/
private $server_vars;
/**
* ActivatedEvents constructor.
*
* @param array $server_vars The request SERVER variables.
*/
public function __construct( array $server_vars ) {
$this->server_vars = $server_vars;
}
/**
* Nothing to register (method invoked manually).
*/
public function register(): void {}
/**
* Track when the extension is activated from a source.
*/
public function maybe_track_activation_source(): void {
// Skip WP-CLI activations
if ( empty( $this->server_vars['HTTP_REFERER'] ) ) {
return;
}
$url_components = wp_parse_url( $this->server_vars['HTTP_REFERER'] );
// Skip invalid URLs or URLs missing parts
if ( ! is_array( $url_components ) || empty( $url_components['query'] ) || empty( $url_components['path'] ) ) {
return;
}
// Skip activations from anywhere except the Add Plugins page
if ( false === strstr( $url_components['path'], self::ACTIVATION_PAGE ) ) {
return;
}
wp_parse_str( $url_components['query'], $query_vars );
$available_source_params = array_intersect_key( $query_vars, array_flip( self::SOURCE_PARAMS ) );
// Skip if no source params are present
if ( empty( $available_source_params ) ) {
return;
}
$this->record_event( 'activated_from_source', $available_source_params );
}
/**
* Activate the service.
*
* @return void
*/
public function activate(): void {
$this->maybe_track_activation_source();
}
}