File "class-wc-settings-tracking.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/tracks/events/class-wc-settings-tracking.php
File
size: 1.78 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
defined('ABSPATH') || exit;
class WC_Settings_Tracking
{
protected $allowed_options = array();
protected $updated_options = array();
public function init()
{
add_action('woocommerce_settings_page_init', array($this, 'track_settings_page_view'));
add_action('woocommerce_update_option', array($this, 'add_option_to_list'));
add_action('woocommerce_update_options', array($this, 'send_settings_change_event'));
}
public function add_option_to_list($option)
{
$this->allowed_options[] = $option['id'];
if (false === has_action('update_option', array($this, 'track_setting_change'))) {
add_action('update_option', array($this, 'track_setting_change'), 10, 3);
}
}
public function track_setting_change($option_name, $old_value, $new_value)
{
if (!in_array($option_name, $this->allowed_options, true)) {
return;
}
if (is_scalar($old_value) && is_scalar($new_value) && (string) $old_value === (string) $new_value) {
return;
}
$this->updated_options[] = $option_name;
}
public function send_settings_change_event()
{
global $current_tab;
if (empty($this->updated_options)) {
return;
}
$properties = array('settings' => implode(',', $this->updated_options));
if (isset($current_tab)) {
$properties['tab'] = $current_tab;
}
WC_Tracks::record_event('settings_change', $properties);
}
public function track_settings_page_view()
{
global $current_tab, $current_section;
$properties = array('tab' => $current_tab, 'section' => empty($current_section) ? null : $current_section);
WC_Tracks::record_event('settings_view', $properties);
}
}