2013-12-09 90 views
0

我正在使用opencart作爲我的在線商店的平臺,並且我必須在提交訂單的頁面上添加腳本,我不知道如何執行該操作以及哪個文件需要合作。opencart將腳本添加到checkout.php

這是腳本:

<?php 

/******************************************************************************* 
* Pazaruvaj.com trusted shop program 
* Example code integration to the webshop 
* 
* 
* Please note, that the example detailed below can not be simply copy-pasted 
* into your webshop’s code, it has to be customized adequately. 
* 
* Setup steps: 
* 1. Copy TrustedShop.php file to a place accessible by the webshop engine. 
* 2. Copy this example code to the page of the webshop where the e-mail address 
* of the customer and the names of the purchased products are retrievable 
* from the webshop engine. Generally this is the webshop’s confirmation 
* page of the purchase. 
* 3. Customize the pasted example code according to the following: 
* - Modify path of TrustedShop.php in require_once() in such a way that 
*  the webshop engine can use it. 
* - Check that the proper WebAPI key is set, if not, modify it. You can find 
*  the WebAPI key on the partner portal. 
* - Set the customer’s e-mail address. 
* - Add the names of the purchased products. 
* - Implement an error handling if you want (optional). 
* 
******************************************************************************/ 

require_once 'TrustedShop.php'; 

try { 

    // Provide your own WebAPI key. 
    // You can find your WebAPI key on your partner portal. 

    $Client = new TrustedShop('4eee39583f06aab1460277f41be9e0e7'); 

    // Provide the e-mail address of your customer. 
    // You can retrieve the e-amil address from the webshop engine. 

    $Client->SetEmail($data['email']); 

    // Provide the name of the purchased products. 
    // You can get the name of the products from the webshop engine. 
    // The AddProduct method must be called for each of the purchased products. 
    // 
    // It is optional to provide the name of the products, so if this data is not 
    // available, you can leave out the AddProduct calls. 

    $Client->AddProduct('Name of first purchased product'); 
    $Client->AddProduct('Name of second purchased product'); 

    // This method sends us the e-mail address and the name of the purchased 
    // products set above. After the data arrived to us, we store them 
    // with the time stamp and the WebAPI key. 
    // This lets us know that someone has purchased at your webshop, to whom 
    // we later have to send the questionnaire for evaluating your shop. 
    // The "Send()" operation doesn't send immediately. It generates a HTML output, 
    // puts into source of the page and the customer's browser will send the 
    // required informations us. 

    $Client->Send(); 

} catch (Exception $Ex) { 

    // Here you can implement error handling. The error message can be obtained 
    // in the manner shown below. Implementing error handling is optional. 

    $ErrorMessage = $Ex->getMessage(); 
} 

?> 

and this is the included ThrustedShop.php 

<?php 

class TrustedShop { 

    const ServiceHost = 'www.pazaruvaj.com'; 

    const ServiceUrl = '/affiliation/TrustedShop.php'; 

    const ErrorEmail = 'Ne ste zadali email adres na klienta Vi.'; 

    const ErrorService = 'Zapazvaneto na dannite na klienta e neuspeshno.'; 

    private $WebApiKey; 

    private $Email; 

    private $Products = array(); 

    private $Protocol; 

    public function __construct($WebApiKey) { 
    $this->WebApiKey = $WebApiKey; 
    $this->Protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') ? 'https' : 'http'; 
    } 

    public function SetEmail($Email) { 
    $this->Email = $Email; 
    } 

    public function AddProduct($ProductName) { 
    $this->Products[] = $ProductName; 
    } 

    public function Send() { 
    if (empty($this->Email)) { 
     throw new Exception(self::ErrorEmail); 
    } 

    $String = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
    $C = ''; 
    for ($i = 0; $i < 20; $i++) { 
     $C .= $String{mt_rand(0, strlen($String) - 1)}; 
    } 

    $Timestamp = time(); 
    $HashedKey = md5($this->WebApiKey . $Timestamp); 

    $Query = 'HashedKey=' . $HashedKey . '&Email=' . urlencode($this->Email); 
    foreach ($this->Products as $ProductName) { 
     $Query .= '&Products[]=' . urlencode($ProductName); 
    } 
    $Query .= '&Timestamp=' . $Timestamp; 

    echo '<script type="text/javascript" src="' . $this->Protocol . '://' . self::ServiceHost . '/fc.js"></script>'; 
    echo 
     '<script type="text/javascript">', 
     'function fc_request_done(C) { var I = new Image(); I.src=\'' . $this->Protocol . '://' . self::ServiceHost . self::ServiceUrl . "?" . $Query . '&C=\'+C; }', 
     'set_fc("' . self::ServiceHost . '", "__aku","' . $C . '");', 
     '</script>'; 

    echo 
     '<noscript>', 
     '<img src="' . $this->Protocol . '://' . self::ServiceHost . self::ServiceUrl . "?" . $Query . '&C=' . $C . '">', 
     '</noscript>'; 
    } 
} 

?> 

回答

0

你將不得不把腳本(並相應修改)到catalog/model/checkout/order.php - 方法confirm() ...

這種方法保存訂單數據並將訂單設置爲已確認(或已付款)並將電子郵件發送給客戶和可選的管理員。在這種方法中,可以訪問客戶的電子郵件地址和產品(及其名稱)以滿足腳本的要求。

confirm()方法,找到行

foreach ($order_product_query->rows as $product) { 

前添加腳本的開頭:那foreach行後

require_once 'TrustedShop.php'; // make sure the path is correct here! 
$Client = new TrustedShop('4eee39583f06aab1460277f41be9e0e7'); 
$Client->SetEmail($order_info['email']); 

現在補充一點:

$Client->AddProduct($product['name']); 

現在在某處的confirm()與評論// Admin Alert Email前行末尾添加腳本的最後一部分:

try { 
    $Client->Send(); 
} catch(Exception $e) { 
    $this->log->write($e->getMessage()); 
} 

這應該是它...