You are here

public function InstapageCmsPluginPageModel::setVariantCookie in Instapage plugin 8.3

Same name and namespace in other branches
  1. 7.3 core/models/InstapageCmsPluginPageModel.php \InstapageCmsPluginPageModel::setVariantCookie()

Set cookie with variant value

Parameters

array $enterpriseCallResult Result from enterpriseCall() method:

int $instapageId:

1 call to InstapageCmsPluginPageModel::setVariantCookie()
InstapageCmsPluginPageModel::display in core/models/InstapageCmsPluginPageModel.php
Displays the landing page.

File

core/models/InstapageCmsPluginPageModel.php, line 503

Class

InstapageCmsPluginPageModel
Class responsible for managing the landing pages.

Code

public function setVariantCookie($enterpriseCallResult, $instapageId) {
  $pageserverCookie = isset($enterpriseCallResult['headers']['set-cookie']) ? $enterpriseCallResult['headers']['set-cookie'] : '';
  if (is_array($pageserverCookie)) {
    $pageserverCookie = array_pop($pageserverCookie);
  }
  $instapageVariant = InstapageCmsPluginHelper::getVariant((string) $pageserverCookie);
  if (!empty($instapageVariant)) {
    $variantCookieName = "instapage-variant-{$instapageId}";
    $variantCookieOptions = [
      'expires' => strtotime('+12 month'),
      'path' => '/',
      'domain' => '',
    ];
    if (InstapageCmsPluginConnector::isSSL()) {
      $variantCookieOptions['samesite'] = 'None';
      $variantCookieOptions['secure'] = InstapageCmsPluginConnector::isSSL();
    }
    if (version_compare(phpversion(), '7.3', '<')) {
      if (InstapageCmsPluginConnector::isSSL()) {
        setcookie($variantCookieName, $instapageVariant, $variantCookieOptions['expires'], $variantCookieOptions['path'] . '; samesite=' . $variantCookieOptions['samesite'], $variantCookieOptions['domain'], $variantCookieOptions['secure']);
      }
      else {
        setcookie($variantCookieName, $instapageVariant, $variantCookieOptions['expires'], $variantCookieOptions['path'], $variantCookieOptions['domain']);
      }
    }
    else {
      setcookie($variantCookieName, $instapageVariant, $variantCookieOptions);
    }
  }
}