/**
  * Get resource id for pay-per-post
  *
  * @param TinypassContentSettings $contentSettings
  *
  * @return string
  */
 protected function payPerPostResourceId(TinypassContentSettings $contentSettings)
 {
     return self::PAY_PER_POST_RESOURCE_PREFIX . $contentSettings->id();
 }
 /**
  * Render offer javascript for content
  */
 public function showOfferJs()
 {
     if (!isset($_SERVER['REQUEST_URI']) || empty($_SERVER['REQUEST_URI'])) {
         return;
     }
     if (!preg_match('/^\\/?' . self::OFFER_JS_URL_PREFIX . '(\\d+)(\\?.+)?/', $_SERVER['REQUEST_URI'], $match)) {
         return;
     }
     $id = $match[1];
     $post = get_post($id);
     if (!$post) {
         return;
     }
     $metaString = get_post_meta($post->ID, self::META_NAME, true);
     $contentSettings = TinypassContentSettings::fromArray($metaString);
     $content = apply_filters('the_content', $post->post_content);
     try {
         $result = self::$tinypass->checkAccessSettings($contentSettings, $content, array($this, 'trimContent'), $this->getResources());
         header('HTTP/1.1 200 OK');
         header('Content-Type: application/javascript');
         echo $result->javascript();
         die;
     } catch (Exception $e) {
         header('HTTP/1.1 200 OK');
         if ($this->canDebug()) {
             die($e->getMessage());
         }
     }
 }
 public function sanitizeDefaultAccessSettings()
 {
     if (is_array(self::$default_access_settings)) {
         $contentSettings = new TinypassContentSettings();
         $chargeOption = isset(self::$default_access_settings[$contentSettings->chargeOptionPropertyName()]) ? self::$default_access_settings[$contentSettings->chargeOptionPropertyName()] : null;
         $contentSettings->chargeOption($chargeOption)->resourceIds(isset(self::$default_access_settings[$chargeOption][$contentSettings->resourceIdsPropertyName()]) ? self::$default_access_settings[$chargeOption][$contentSettings->resourceIdsPropertyName()] : null)->pppPrice(isset(self::$default_access_settings[$chargeOption][$contentSettings->pppPricePropertyName()]) ? self::$default_access_settings[$chargeOption][$contentSettings->pppPricePropertyName()] : null)->pppCurrency(isset(self::$default_access_settings[$chargeOption][$contentSettings->pppCurrencyPropertyName()]) ? self::$default_access_settings[$chargeOption][$contentSettings->pppCurrencyPropertyName()] : null);
         $contentSettings->validate(self::$business_model, self::$enable_ppp, self::$tinypass->algorithmicKeyAvailable(), $this->getResources());
         $this->setOption(self::OPTION_NAME_DEFAULT_ACCESS_SETTINGS, $contentSettings->toArray());
     }
 }