2015-03-30 113 views
2

我想讓opencart標頭到wordpress。 Opencart安裝在「store」文件夾內的wordpress目錄中。藉助一些幫助,我可以將opencart頁面轉換爲wordpress。下面的代碼保存爲headerX.php,並在wordpress中在page.php中調用。這將整個頁面拉到WordPress主頁。現在一切都很好,除了$response->output();會將包含產品的整個opencart頁面放入主頁面。將Opencart標頭拉到wordpress

我如何只獲得wordpress的頁眉和頁腳,並忽略(或不包括)之間的東西?

感謝您的任何幫助。

<?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(); 
?> 

回答

0

有很多方法可以做到這一點,這也是很多人都在尋找的共同特徵;你可以在互聯網上找到大量與wordpress解決方案整合的開放式購物車。很好,這很常見。

你有沒有試過尋找進入WordPress的opencart插件?

Wordpress或Opencart,所有這些系統都有單獨的頁眉和頁腳,您可以在其他系統上調用它們;您需要包含所有必需的文件才能成功包含它。

我發現這篇文章是有用的:https://wordpress.org/support/topic/opencart-wordpress-integration

你可以嘗試以下方法,並給它一個鏡頭。 (請確保您修復了正確的路徑)

1.使用以下代碼創建文件headerX.php,並將其保存到您的主站點(或您在OC shop外選擇的其他位置)的根目錄中。

<?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.包括headerX.php在page.php文件,即下面放置在第1行的聲明在page.php文件的最頂端

開盤後
<?php require_once ('headerXYZ.php');?> 

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'); 
    ?> 
+0

嗯,這正是我所做的。如果你檢查我的問題,我可以將opencart頁面轉換爲wordpress。但問題是,整個頁面被拉進wordpress。如前所述,'$ response-> output();'將拉動整個頁面。我如何確保我只獲取標題而不是整個頁面?順便說一句,上面的代碼不能用於最新版本的opencart,並需要修改headerX.php,正如我在上面的代碼中所做的那樣。 – Praveen 2015-03-30 18:59:20

+0

啊,http://code.tutsplus.com/tutorials/create-a-custom-page-in-opencart--cms-22054或者你可以結帳這個鏈接:http://www.opencartnews.com/tutorials/創建一個自定義頁在opencart部分1 /我喜歡這一個:http://blog.arvixe.com/opencart-php-coding-require_once/ – unixmiah 2015-03-30 19:10:45

+0

感謝所有的鏈接。我確實經歷過所有這些,但他們都沒有回答我的問題。如何僅打印標題?我不希望打印所有其他數據。像'echo $ header;'應該打印opencart頭文件(儘管這個語句在那裏不起作用)。 – Praveen 2015-03-30 19:40:23

0

我一直在尋找類似的,我所做的就是在兩個系統中爲頁腳和頁眉編寫相同的html/css,之後,我寫了一個額外的Wordpress插件來顯示用戶登錄opencart時的用戶和購物車信息。

此處插件: https://github.com/saRca/op2wp