如何在magento成功页面中动态集成JS代码
How to integrate dynamically JS code in success page in magento
我知道成功。php是我应该把我想要执行的代码的文件,但我从CJ收到这个文件,这不是一个html,它是一个php类。
问题很简单:我想知道我怎样才能把这个文件融入成功。收到订单后返回php。?
谢谢
class CommissionJunction extends Mage_Core_Helper_Data
{
/**
* Get SKU, quantity, price and discount amount for each product in a given order
* @param object $order
* @return array
*/
private function _getOrderProductsList($order) {
$orderItems = $order->getAllItems();
$purchasedSkus = array();
$count_orderItems = count($orderItems);
for($i = 0; $i < $count_orderItems; $i++) {
$purchasedSkus[$i] = array(
'ITEM' => $orderItems[$i]['sku'],
'QTY' => number_format($orderItems[$i]['qty_ordered'],0), // no decimals
'AMT' => number_format($orderItems[$i]['price'],2) // 2 decimal places
'DCNT' => number_format(abs($orderItems[$i]['discount_amount']),2) */
);
}
return $purchasedSkus;
}
/**
* Get the Universal Data (JSON) Object for Commission Junction.
* This object contains the order details passed on to Commission Junction for reporting purposes
* on the Checkout Success / Order Confirmation page.
* Notes:
* - CID, TYPE AND CURRENCY are hard coded
* @param string $orderId
* @return JSON object Universal Data Object for Commission Junction $json_masterTmsUdp
*/
public function getCommissionJunctionUdo($orderId) {
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
$udo = array();
$udo['CID'] = 'XXXX';
$udo['TYPE'] = 'XXXX';
$udo['CURRENCY'] = 'USD';
$udo['OID'] = $orderId;
$udo['DISCOUNT'] = number_format(abs($order->discount_amount),2);
$order_coupon_code = $order->coupon_code;
if(!is_null($order_coupon_code) && !empty($order_coupon_code)) {
$udo['COUPON'] = $order_coupon_code;
}
$udo['PRODUCTLIST'] = self::_getOrderProductsList($order);
if(Mage::getModel('core/cookie')->get('aff_commissionjunction') == 'cjafflx') {
$udo['FIRECJ'] = "TRUE";
}
else {
$udo['FIRECJ'] = "FALSE";
}
$masterTmsUdo['CJ'] = $udo;
$json_masterTmsUdo = json_encode($masterTmsUdo);
return $json_masterTmsUdo;
}
}
文件模板
<script> var MasterTmsUdo = { 'CJ' : { 'CID': '123', 'TYPE': '123', 'DISCOUNT' : '5.00', 'OID': 'SAMPLE_OID', 'CURRENCY' : 'USD', 'COUPON' : 'SAVE20', 'FIRECJ' : 'xxxx', PRODUCTLIST : [ { 'ITEM' : 'ABC', 'AMT' : '1.00', 'QTY' : '3' }, { 'ITEM' : 'ABC', 'AMT' : '5.00', 'QTY' : '1' } ] } }; </script>
这似乎是一个糟糕的解决方法,但据我推断,他们希望你在success.phtml
的顶部做这样的事情:
<?php require_once "path/to/commissionjunction.php" ?>
<script>var MasterTmsUdo = <?php echo CommissionJunction::getCommissionJunctionUdo($this->getOrderId()); ?></script>
更新:
我刚刚意识到这是一个助手类。假设模块正确配置了config.xml,并在Helper
目录中有该文件,这应该工作-没有require_once
像我原来的例子。
<script>var MasterTmsUdo = <?php echo Mage::helper('commissionjunction')->getCommissionJunctionUdo($this->getOrderId()); ?></script>
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 动态分配GA增强型电子商务跟踪器
- onkeyup无法动态创建多个文本区域
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何使Javascript动态html表及其上的事件
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 如何使用javascript从主svg对象动态创建svg视图框
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- LinkedIn动态CRM集成
- 将Facebook共享按钮与动态内容集成的最简单解释
- 如何将颜色选择器函数集成到动态文本字段中
- 将POST方法集成到动态创建的表单中
- 如何集成类似facebook的动态内容javascript按钮
- 如何在magento成功页面中动态集成JS代码
- 通过Express将动态内容集成到Node.JS上的静态服务页面的最简单方法
- 如何将Javascript与动态填充的复选框列表集成
- 动态生成集成参数的函数数组
- 动态页脚集成