Current File : /home/lastyfjz/dermalaserclinic.co.uk/wp-content/plugins/cb-change-mail-sender/src/Helpers.php
<?php

namespace CBChangeMailSender;

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) exit;

/**
 * Helpers class.
 *
 * Class with all the misc helper functions.
 *
 * @since 1.3.0
 */
class Helpers {

	/**
	 * Get UTM URL.
	 *
	 * @since 1.3.0
	 *
	 * @param string       $url Base url.
	 * @param array|string $utm Array of UTM params, or if string provided - utm_content URL parameter.
	 *
	 * @return string
	 */
	public static function get_utm_url( $url, $utm ) {

		// Defaults.
		$source   = 'WordPress';
		$medium   = 'plugin';
		$campaign = 'cb-change-mail-sender'; // TODO - Double check if this is the correct slug.
		$content  = 'general';

		if ( is_array( $utm ) ) {

			if ( isset( $utm['source'] ) ) {
				$source = $utm['source'];
			}

			if ( isset( $utm['medium'] ) ) {
				$medium = $utm['medium'];
			}

			if ( isset( $utm['campaign'] ) ) {
				$campaign = $utm['campaign'];
			}

			if ( isset( $utm['content'] ) ) {
				$content = $utm['content'];
			}

		} elseif ( is_string( $utm ) ) {
			$content = $utm;
		}

        $query_args = [
            'utm_source'   => esc_attr( rawurlencode( $source ) ),
            'utm_medium'   => esc_attr( rawurlencode( $medium ) ),
            'utm_campaign' => esc_attr( rawurlencode( $campaign ) ),
        ];

        if ( ! empty( $content ) ) {
            $query_args['utm_content'] = esc_attr( rawurlencode( $content ) );
        }

        return add_query_arg( $query_args, $url );
    }
}