WC_Tracks_Client::maybe_set_identity_cookie()
Check if identiy cookie is set, if not set it.
Description Description
Return Return
(void)
Source Source
File: includes/tracks/class-wc-tracks-client.php
public static function maybe_set_identity_cookie() {
// Do not set on AJAX requests.
if ( Constants::is_true( 'DOING_AJAX' ) ) {
return;
}
// Bail if cookie already set.
if ( isset( $_COOKIE['tk_ai'] ) ) {
return;
}
$user = wp_get_current_user();
// We don't want to track user events during unit tests/CI runs.
if ( $user instanceof WP_User && 'wptests_capabilities' === $user->cap_key ) {
return false;
}
$user_id = $user->ID;
$anon_id = get_user_meta( $user_id, '_woocommerce_tracks_anon_id', true );
// If an id is still not found, create one and save it.
if ( ! $anon_id ) {
$anon_id = self::get_anon_id();
update_user_meta( $user_id, '_woocommerce_tracks_anon_id', $anon_id );
}
// Don't set cookie on API requests.
if ( ! Constants::is_true( 'REST_REQUEST' ) && ! Constants::is_true( 'XMLRPC_REQUEST' ) ) {
wc_setcookie( 'tk_ai', $anon_id );
}
}