Automattic\WooCommerce\Internal\StockNotifications\Utilities

UtmHelper{}WC 1.0

Helper for appending UTM campaign parameters to outgoing stock-notification email links.

Centralizes the utm_source / utm_medium values so order attribution stays consistent across all three email types (verify, verified, back-in-stock).

No Hooks.

Usage

$UtmHelper = new UtmHelper();
// use class methods

Methods

  1. public static add_email_utm_params( string $url, string $medium = self::UTM_MEDIUM_EMAIL )

UtmHelper{} code WC 10.9.1

class UtmHelper {

	/**
	 * UTM source value used for all stock notification emails.
	 */
	public const UTM_SOURCE = 'back-in-stock-notifications';

	/**
	 * Default UTM medium for stock notification emails.
	 */
	public const UTM_MEDIUM_EMAIL = 'email';

	/**
	 * Append the standard email UTM parameters to a URL.
	 *
	 * @param string $url    The URL to annotate.
	 * @param string $medium The UTM medium (defaults to `email`).
	 * @return string
	 */
	public static function add_email_utm_params( string $url, string $medium = self::UTM_MEDIUM_EMAIL ): string {
		if ( empty( $url ) ) {
			return $url;
		}

		// Defensive: lock down the medium to a safe URL-friendly slug, falling back to the default
		// if sanitization strips everything. Prevents any future caller from piping user-controlled
		// input into the outbound tracking URL.
		$sanitized_medium = sanitize_key( $medium );
		if ( '' === $sanitized_medium ) {
			$sanitized_medium = self::UTM_MEDIUM_EMAIL;
		}

		return add_query_arg(
			array(
				'utm_source' => self::UTM_SOURCE,
				'utm_medium' => $sanitized_medium,
			),
			$url
		);
	}
}