<?php namespace MailPoet\Referrals; if (!defined('ABSPATH')) exit; use MailPoet\Settings\SettingsController; use MailPoet\WP\Functions as WPFunctions; class ReferralDetector { const REFERRAL_CONSTANT_NAME = 'MAILPOET_REFERRAL_ID'; const REFERRAL_SETTING_NAME = 'referral_id'; /** @var WPFunctions */ private $wp; /** @var SettingsController */ private $settings; public function __construct( WPFunctions $wp, SettingsController $settings ) { $this->wp = $wp; $this->settings = $settings; } public function detect() { $referralId = $this->settings->get(self::REFERRAL_SETTING_NAME, null); if ($referralId) { return $referralId; } $referralId = $this->wp->getOption(self::REFERRAL_CONSTANT_NAME, null); if ($referralId === null && defined(self::REFERRAL_CONSTANT_NAME)) { $referralId = constant(self::REFERRAL_CONSTANT_NAME); } if ($referralId !== null) { $this->settings->set(self::REFERRAL_SETTING_NAME, $referralId); } return $referralId; } }