如何在magento的成功页面中动态集成JS代码

2024-03-02

我知道 success.phtml 是我应该放置我想要执行的代码的文件,但是我从 CJ 收到这个文件,它不是 html,而是一个 php 类。

问题很简单:我想知道如何在收到订单后将此文件集成到 success.phtml 中?

谢谢

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;

    }



}

JS 文件模板

<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>

UPDATE:

我刚刚意识到这是一个辅助类。假设模块已使用 config.xml 正确配置,并且该文件位于Helperdir,这应该可以工作——没有require_once就像我原来的例子一样。

<script>var MasterTmsUdo = <?php echo Mage::helper('commissionjunction')->getCommissionJunctionUdo($this->getOrderId()); ?></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在magento的成功页面中动态集成JS代码 的相关文章

随机推荐

  • 如何制作一个一次接受一个值的排列函数?

    我正在寻找一个函数 它接受区间 0 1 N 中的 1 个数字 并返回同一区间中的排列值 0 1 2 3 4 5 和 f x 的示例如下 f 0 5 f 1 1 f 2 0 f 3 4 f 4 2 f 5 3 根据我的研究 理解 这是一个循环
  • 在命令行上过滤 Logcat 日志

    public static final TAG Legendry Eagle 问题 我想查看日志 Legendry Eagle 从命令行 I tried adb logcat s Legendry Eagle adb logcat s
  • 求近似规则的点网格子集的周长

    让我们考虑一组接近规则的二维网格 这些网格与相邻网格相邻 相邻网格具有一个或多个相同的顶点 这里是10个网格的样本 顶点坐标 经度 纬度 如下 A lt lon lat 1 2 1 85 30754 27 91250 2 85 32862
  • Powershell 对 Excel 工作簿进行多个 SQL 查询

    首先 如果这是一个重复的问题 我深表歉意 我搜索了又搜索 但没有找到任何可以解决我所遇到的问题的内容 我的目标是使用 7 个 Powershell 脚本 将 SQL 查询中的 CSV 输出到 1 个 Excel 工作簿中 每个 CSV 位于
  • VS.NET默认为私有类

    为什么 Visual Studio 在 C 中将新类声明为私有 我几乎总是把它们转为公开的 我是疯子吗 我不确定为什么要这样做 但为了让 Visual Studio 默认将该类创建为 Public 您需要执行以下操作 进入 Program
  • 在 xcode 4.5.1 上链接库 OpenCV 2.4.2

    我已经按照此处的说明安装了带有 macports 的 opencv 使用 Xcode 为 OS X Lion Mountain Lion 编译 OpenCV 2 3 1 https stackoverflow com questions 8
  • HttpApplication 不退出

    我有一个单页应用程序 前端使用 Angular js 后端使用 Web api2 还使用 Castle Windsor 和 SignalR 我在服务器上使用 C 组件来维护服务器状态 因此 在 Application Start 上 我将温
  • 将文件上传器添加到 Joomla 管理组件

    我根据 Joomla 指南制作了 Joomla 管理组件 http docs joomla org Developing a Model View Controller Component 2 5 Developing a Basic Co
  • 如何将我使用(DT)数据表创建的表保存为高质量图像?

    我创建了一个可以在我的 查看器 中查看的数据表 如果我使用导出来复制图像或保存为 png 它的质量往往会很低吗 我最好的选择是截取图像并将其粘贴到我的工作文档中 我在其中输入报告 但我知道必须有更好的方法 对我能做什么有什么建议吗 您可以使
  • 部署战争问题

    下面的错误是什么意思 我使用 eclipse 并将 web 项目导出为 war 文件 我部署到 weblogic 时出现我不明白的错误消息 Message icon Error Unable to access the selected a
  • 如何避免 javonet 中数组中基元的自动装箱

    根据中的例子https www javonet com java devs guides working with net arrays and collections from java with javonet https www ja
  • 无法检测adb版本,退出值:0xc0000135

    我使用的android studio最新版本 HEXM 已安装在我的电脑中 android虚拟设备未创建其显示未知问题 好的 所以我使用 genymotion 模拟器 但 android studio 没有检测到它 无法检测adb版本 退出
  • 标题中单个单词的颜色与组的颜色相匹配

    我最近在 经济学人 上看到了一张折线图 其中标题包含彩色单词以匹配折线图中使用的组的颜色 https www economist com blogs graphicdetail 2018 04 daily chart 1 我想知道如何使用
  • Golang SQL 查询变量替换

    我有 sql 查询需要变量替换才能更好地消耗我的go kit https github com go kit kit服务 I have dep org作为我的休息服务一部分的用户输入 例如 dep abc and org def 我尝试过一
  • “未捕获的引用错误:JQueryValidatorUI 未定义”?

    使用 jquery validation ui 插件时 未捕获的 ReferenceError JQueryValidatorUI 未定义 也未捕获类型错误 对象 对象对象 没有方法 验证 这是我的脚本顺序
  • 如何在JUNG中添加具有相同标签(但端点不同)的两条边?

    如何添加具有相同标签但端点不同的两条边 例如 我想添加两条具有相同标签 label1 的边 一条从顶点 v 1 到顶点 v 2 另一条从顶点 v 2 到 v 3 部分代码是 g addEdge label1 v 1 v 2 g addEdg
  • 如何将 javascript 对象发送到远程 CFC 组件

    我创建了一个 javascript 对象 var spanglist one q1 two q2 three q3 four q4 我创建 ajax jquery 对象以将数据发送到 CFC ajax url gridly componen
  • Angularjs:ReferenceError:范围未定义

    我是 Angularjs 的初学者 在理解模块和范围方面有一些困难 我不断收到范围未定义的错误 但我不明白为什么 首先 我将控制器链接到设置路线的位置 但由于控制器内的函数是在提交按钮上调用的 因此单击我将其拿走 我试过把它放回去 但这没有
  • pytest从不同的测试文件独立导入相同的模块

    以下主题模块包含两个函数 其中之一操作全局变量 mod py def global setter global x x 123 print setter x x def global getter print getter x x 每个功能
  • 如何在magento的成功页面中动态集成JS代码

    我知道 success phtml 是我应该放置我想要执行的代码的文件 但是我从 CJ 收到这个文件 它不是 html 而是一个 php 类 问题很简单 我想知道如何在收到订单后将此文件集成到 success phtml 中 谢谢 clas