简体   繁体   English

将Opencart标头拉到wordpress

[英]Pulling Opencart header to wordpress

I am trying to get opencart header to wordpress. 我正在尝试将opencart标头添加到wordpress。 Opencart is installed within wordpress directory within "store" folder. Opencart安装在“商店”文件夹中的wordpress目录中。 With some help, I am able to get opencart page into wordpress. 在一些帮助下,我能够将opencart页面放入WordPress。 The below code is saved as headerX.php and it is called in page.php withing wordpress. 以下代码另存为headerX.php,并通过wordpress在page.php中调用。 This pulls the entire page into wordpress home page. 这会将整个页面拉入wordpress主页。 Everything is good uptil now except that $response->output(); 现在一切都很好,除了$response->output(); ;。 will get the entire opencart page including the products into the main page. 将把包括产品在内的整个opencart页面带入主页。

How do I get only the header and footer into wordpress and ignore (or not include) stuff between? 如何只将页眉和页脚放入wordpress中并忽略(或不包括)两者之间的内容?

Thanks for any help. 谢谢你的帮助。

<?php

// Configuration
if (file_exists('store/config.php')) {
    require_once('store/config.php');
}  

// VirtualQMOD
require_once('store/vqmod/vqmod.php');
VQMod::bootup();

// VQMODDED Startup
require_once(VQMod::modCheck(DIR_SYSTEM . 'startup.php'));

// Application Classes
require_once(VQMod::modCheck(DIR_SYSTEM . 'library/customer.php'));
require_once(VQMod::modCheck(DIR_SYSTEM . 'library/affiliate.php'));
require_once(VQMod::modCheck(DIR_SYSTEM . 'library/currency.php'));
require_once(VQMod::modCheck(DIR_SYSTEM . 'library/tax.php'));
require_once(VQMod::modCheck(DIR_SYSTEM . 'library/weight.php'));
require_once(VQMod::modCheck(DIR_SYSTEM . 'library/length.php'));
require_once(VQMod::modCheck(DIR_SYSTEM . 'library/cart.php'));

// Registry
$registry = new Registry();

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);

// Config
$config = new Config();
$registry->set('config', $config);

// Database 
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);

// Store
if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
    $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
} else {
    $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
}

if ($store_query->num_rows) {
    $config->set('config_store_id', $store_query->row['store_id']);
} else {
    $config->set('config_store_id', 0);
}

// Settings
$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");

foreach ($query->rows as $setting) {
    if (!$setting['serialized']) {
        $config->set($setting['key'], $setting['value']);
    } else {
        $config->set($setting['key'], unserialize($setting['value']));
    }
}

if (!$store_query->num_rows) {
    $config->set('config_url', HTTP_SERVER);
    $config->set('config_ssl', HTTPS_SERVER);   
}

// Url
$url = new Url($config->get('config_url'), $config->get('config_secure') ? $config->get('config_ssl') : $config->get('config_url'));    
$registry->set('url', $url);

// Log 
$log = new Log($config->get('config_error_filename'));
$registry->set('log', $log);

function error_handler($errno, $errstr, $errfile, $errline) {
    global $log, $config;

    switch ($errno) {
        case E_NOTICE:
        case E_USER_NOTICE:
            $error = 'Notice';
            break;
        case E_WARNING:
        case E_USER_WARNING:
            $error = 'Warning';
            break;
        case E_ERROR:
        case E_USER_ERROR:
            $error = 'Fatal Error';
            break;
        default:
            $error = 'Unknown';
            break;
    }

    if ($config->get('config_error_display')) {
        echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';
    }

    if ($config->get('config_error_log')) {
        $log->write('PHP ' . $error . ':  ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
    }

    return true;
}

// Error Handler
set_error_handler('error_handler');

// Request
$request = new Request();
$registry->set('request', $request);

// Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression($config->get('config_compression'));
$registry->set('response', $response); 

// Cache
$cache = new Cache();
$registry->set('cache', $cache); 

// Session
$session = new Session();
$registry->set('session', $session);

// Language Detection
$languages = array();

$query = $db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE status = '1'"); 

foreach ($query->rows as $result) {
    $languages[$result['code']] = $result;
}

$detect = '';

if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && $request->server['HTTP_ACCEPT_LANGUAGE']) { 
    $browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);

    foreach ($browser_languages as $browser_language) {
        foreach ($languages as $key => $value) {
            if ($value['status']) {
                $locale = explode(',', $value['locale']);

                if (in_array($browser_language, $locale)) {
                    $detect = $key;
                }
            }
        }
    }
}

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
    $code = $session->data['language'];
} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
   $code = $session->data['language'];
} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages)) {
    $code = $request->cookie['language'];
} elseif ($detect) {
    $code = $detect;
} else {
    $code = $config->get('config_language');
}

if (!isset($session->data['language']) || $session->data['language'] != $code) {
    $session->data['language'] = $code;
}

if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {      
    setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
}           

$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language', $languages[$code]['code']);

// Language 
$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']); 
$registry->set('language', $language); 

// Document
$document = new Document();
$registry->set('document', new Document());         

// Customer
$registry->set('customer', new Customer($registry));

// Affiliate
$registry->set('affiliate', new Affiliate($registry));

if (isset($request->get['tracking'])) {
    setcookie('tracking', $request->get['tracking'], time() + 3600 * 24 * 1000, '/');
}

// Currency
$registry->set('currency', new Currency($registry));

// Tax
$registry->set('tax', new Tax($registry));

// Weight
$registry->set('weight', new Weight($registry));

// Length
$registry->set('length', new Length($registry));

// Cart
$registry->set('cart', new Cart($registry));

//OpenBay Pro
$registry->set('openbay', new Openbay($registry));

// Encryption
$registry->set('encryption', new Encryption($config->get('config_encryption')));

// Front Controller 
$controller = new Front($registry);

// Maintenance Mode
$controller->addPreAction(new Action('common/maintenance'));

// SEO URL's
$controller->addPreAction(new Action('common/seo_url'));    

// Router
if (isset($request->get['route'])) {
    $action = new Action($request->get['route']);
} else {
    $action = new Action('common/home');
}

// Dispatch
$controller->dispatch($action, new Action('error/not_found'));

// Output
$response->output();
?>

There are many ways you can do this and this is also a common feature a lot of people are looking for; 您可以通过多种方式来执行此操作,这也是很多人正在寻找的常见功能; you can find tons of integrating open cart with wordpress solutions on the internet. 您可以在互联网上找到大量将开放式购物车与wordpress解决方案集成在一起的信息。 Good that it's common. 很好,很常见。

Have you tried looking into opencart plug in for wordpress? 您是否尝试过研究适用于wordpress的opencart插件?

Wordpress or Opencart, all these system have separate header and footer includes which you can call on other system; Wordpress或Opencart,所有这些系统都有单独的页眉和页脚,您可以在其他系统上调用它们; you will need to include all the necessary files in order to have it included successfully. 您将需要包含所有必需的文件,以使其成功包含。

I found this article to be useful: https://wordpress.org/support/topic/opencart-wordpress-integration 我发现这篇文章很有用: https : //wordpress.org/support/topic/opencart-wordpress-integration

You can try the following and give it a shot. 您可以尝试以下方法并试一试。 (Make sure you fix to the correct path) (确保您固定到正确的路径)

1. Create file headerX.php using the following code and save it to the root directory of your main site (or other location of your choosing outside your OC shop). 1.使用以下代码创建文件headerX.php,并将其保存到主站点的根目录(或您在OC商店之外选择的其他位置)。

<?php
// Config
require_once('shop/config.php');

// VirtualQMOD
require_once('shop/vqmod/vqmod.php');
$vqmod = new VQMod();

// VQMODDED Startup
require_once($vqmod->modCheck(DIR_SYSTEM . 'startup.php'));

// Application Classes
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/customer.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/affiliate.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/currency.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/tax.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/weight.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/length.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/cart.php'));

$myVar = array();

$myVar = array();

// Registry
$registry = new Registry();

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);

// Config
$config = new Config();
$registry->set('config', $config);

// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);

// Url
$url = new Url($config->get('config_url'), $config->get('config_use_ssl') ? $config->get('config_ssl') :

$config->get('config_url'));   
$registry->set('url', $url);

// Log
$log = new Log($config->get('config_error_filename'));
$registry->set('log', $log);

function error_handler($errno, $errstr, $errfile, $errline) {
   global $log, $config;

   switch ($errno) {
      case E_NOTICE:
      case E_USER_NOTICE:
         $error = 'Notice';
         break;
      case E_WARNING:
      case E_USER_WARNING:
         $error = 'Warning';
         break;
      case E_ERROR:
      case E_USER_ERROR:
         $error = 'Fatal Error';
         break;
      default:
         $error = 'Unknown';
         break;
   }

   if ($config->get('config_error_display')) {
      echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';
   }

   if ($config->get('config_error_log')) {
      $log->write('PHP ' . $error . ':  ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
   }

   return true;
}

// Error Handler
set_error_handler('error_handler');

// Request
$request = new Request();
$registry->set('request', $request);

// Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression($config->get('config_compression'));
$registry->set('response', $response);

// Cache
$cache = new Cache();
$registry->set('cache', $cache);

// Session
$session = new Session();
$registry->set('session', $session);

// Language Detection
$languages = array();

$query = $db->query("SELECT * FROM " . DB_PREFIX . "language");

foreach ($query->rows as $result) {
   $languages[$result['code']] = $result;
}

$detect = '';

if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && ($request->server['HTTP_ACCEPT_LANGUAGE'])) {
   $browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);

   foreach ($browser_languages as $browser_language) {
      foreach ($languages as $key => $value) {
         if ($value['status']) {
            $locale = explode(',', $value['locale']);

            if (in_array($browser_language, $locale)) {
               $detect = $key;
            }
         }
      }
   }
}

if (isset($request->get['language']) && array_key_exists($request->get['language'], $languages) &&

$languages[$request->get['language']]['status']) {
   $code = $request->get['language'];
} elseif (isset($session->data['language']) && array_key_exists($session->data['language'], $languages)) {
   $code = $session->data['language'];
} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages)) {
   $code = $request->cookie['language'];
} elseif ($detect) {
   $code = $detect;
} else {
   $code = $config->get('config_language');
}

if (!isset($session->data['language']) || $session->data['language'] != $code) {
   $session->data['language'] = $code;
}

if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {    
   setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
}         

$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language', $languages[$code]['code']);

// Language   
$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']);   
$registry->set('language', $language);

// Document
$document = new Document();
$registry->set('document', $document);       

// Customer
$registry->set('customer', new Customer($registry));

// Affiliate
$affiliate = new Affiliate($registry);      
$registry->set('affiliate', $affiliate);

if (isset($request->get['tracking']) && !isset($request->cookie['tracking'])) {
   setcookie('tracking', $request->get['tracking'], time() + 3600 * 24 * 1000, '/');
}

// Currency
$registry->set('currency', new Currency($registry));

// Tax
$tax = new Tax($registry);
$registry->set('tax', $tax);

// Weight
$registry->set('weight', new Weight($registry));

// Length
$registry->set('length', new Length($registry));

// Cart
$registry->set('cart', new Cart($registry));

// Front Controller
$controller = new Front($registry);

// Maintenance Mode
$controller->addPreAction(new Action('common/maintenance'));

// SEO URL's
$controller->addPreAction(new Action('common/seo_url'));

// Router
if (isset($request->get['route'])) {
   $action = new Action($request->get['route']);
} else {
   $action = new Action('common/home');
}

// Dispatch
$controller->dispatch($action, new Action('error/not_found'));

2. Include headerX.php in page.php ie Place the statement below on line 1 at the very top of page.php 2.将headerX.php包含在page.php中,即,将下面的语句放在page.php的最上方的第1行

<?php require_once ('headerXYZ.php');?>

3. Right after the opening body tag of your external page.php page add the following code 3.在外部page.php页面的打开body标签之后,添加以下代码

  <?php
    require_once('shop/catalog/model/total/sub_total.php');
    require_once('shop/catalog/language/english/total/sub_total.php');
    require_once('shop/catalog/model/total/reward.php');
    require_once('shop/catalog/model/total/shipping.php');
    require_once('shop/catalog/model/total/coupon.php');
    require_once('shop/catalog/model/total/tax.php');
    require_once('shop/catalog/model/total/credit.php');
    require_once('shop/catalog/language/english/total/credit.php');
    require_once('shop/catalog/model/total/voucher.php');
    require_once('shop/catalog/model/total/total.php');
    require_once('shop/catalog/language/english/total/total.php');
    foreach($myVar as $key=>$value)
    {
       $$key = $value;
    }

    require_once('shop/catalog/controller/common/header.php');
    require_once('shop/catalog/view/theme/default/template/common/header.tpl');
    ?>

I was looking for something similar, what I did was to write same html/css for footer and header in both systems, after that, I wrote an additional Wordpress plugin to show user and cart info when user is logged in opencart. 我正在寻找类似的东西,我所做的是在两个系统中为页脚和页眉编写相同的html / css,之后,我编写了一个额外的Wordpress插件以在用户登录opencart时显示用户和购物车信息。

Here the plugin: https://github.com/saRca/op2wp 这里是插件: https : //github.com/saRca/op2wp

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM