You are here

public function InstapageCmsPluginWPConnector::legacyGetPage in Instapage plugin 8.3

Same name and namespace in other branches
  1. 7.3 core/connectors/InstapageCmsPluginWPConnector.php \InstapageCmsPluginWPConnector::legacyGetPage()

Pulls the data from legacy DB structure.

Parameters

string $slug Slug of a page, that we want to pull.:

Return value

object Landing page object.

1 call to InstapageCmsPluginWPConnector::legacyGetPage()
InstapageCmsPluginWPConnector::checkPage in core/connectors/InstapageCmsPluginWPConnector.php
Checks (and displays) if a landing page should be displayed instead of normal content served by CMS.

File

core/connectors/InstapageCmsPluginWPConnector.php, line 872

Class

InstapageCmsPluginWPConnector
Class that utilizes native WordPress functions to perform actions like remote requests and DB operations.

Code

public function legacyGetPage($slug) {
  global $wpdb;
  $result = new stdClass();
  $result->slug = $slug;
  $result->enterprise_url = $slug ? InstapageCmsPluginConnector::getHomeURL() . '/' . $slug : InstapageCmsPluginConnector::getHomeURL();
  $sql = "SELECT {$wpdb->posts}.ID, {$wpdb->postmeta}.meta_key, {$wpdb->postmeta}.meta_value FROM {$wpdb->posts} INNER JOIN {$wpdb->postmeta} ON ({$wpdb->posts}.ID = {$wpdb->postmeta}.post_id) WHERE ({$wpdb->posts}.post_type = %s) AND ({$wpdb->posts}.post_status = 'publish') AND ({$wpdb->postmeta}.meta_key IN ('instapage_my_selected_page', 'instapage_name', 'instapage_my_selected_page', 'instapage_slug'))";
  $rows = $wpdb
    ->get_results($wpdb
    ->prepare($sql, 'instapage_post'));
  $posts = array();
  foreach ($rows as $row) {
    if (!array_key_exists($row->ID, $posts)) {
      $posts[$row->ID] = array();
    }
    $posts[$row->ID][$row->meta_key] = $row->meta_value;
  }
  foreach ($posts as $post) {
    if (isset($post['instapage_slug']) && $post['instapage_slug'] == $slug) {
      $result->instapage_id = isset($post['instapage_my_selected_page']) ? $post['instapage_my_selected_page'] : 0;
      return $result;
    }
  }
  $result->instapage_id = 0;
  return $result;
}