WC_Tracks_Client::maybe_set_identity_cookie()

Check if identiy cookie is set, if not set it.


Description Description


Return Return

(void)


Top ↑

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 );
		}
	}


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.