Magento - 函数名称必须是字符串

时间:2016-05-03 19:47:55

标签: javascript php magento google-adwords

我正在尝试通过向网站添加一些PHP代码将收入数据传递给来自Magento的AdWords,然后使用echo实现跟踪以将变量传送到Javascript。

这就是我所拥有的:

<?php
$orderId = Mage::getSingleton('checkout/session')->getLastOrderId();
$order = Mage::getModel('sales/order')->load($orderId);
$total = (float)number_format($order()->getSubtotal(),2);
?>

然后在此之后,我使用PHP echo将$ total转换为Google转换跟踪代码,如下所示:

    <!-- Google Code for Website Conversions Conversion Page --> <script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 1011076746;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "3B7tCPfZj2YQip2P4gM"; 
if (<?php echo $total?>) {
    var google_conversion_value = <?php echo $total?>;
}
var google_conversion_currency = "USD"; 
var google_remarketing_only = false;
/* ]]> */
</script>
<script type="text/javascript"  
src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""  
src="//www.googleadservices.com/pagead/conversion/1011076746/?value=<?php echo $total?>&amp;currency_code=USD&amp;label=3B7tCPfZj2YQip2P4gM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>

但没有运气。

它返回一个函数名称必须是第69行的字符串错误。据我所知,第69行是我代码中的第4行。我必须根据客户的要求删除它。

有人可以帮忙吗?我没有经验丰富的PHP来真正诊断这个。

1 个答案:

答案 0 :(得分:0)

问题:您在代码中使用$variable作为function myFunction()是错误的。

注意:变量&amp;函数是每种编程语言的两个不同的主要元素,因此最好至少区分这两种编程语言,并且永远不要错误地将这两种编程用于另一种编程语言。!

解决方案:在以下代码中()后删除括号$order,您的问题就会得到解决。

代码:

<?php
$orderId = Mage::getSingleton('checkout/session')->getLastOrderId();
$order = Mage::getModel('sales/order')->load($orderId);
$total = (float)number_format($order->getSubtotal(),2);
?>

@Actual Credit转到@Felippe Duarte

额外课程:

变量可以保存一个函数,即您可以为变量分配一个函数,然后您可以使用该变量立即调用该函数。

对于实例:

//It's A Function
function myFunction() {
// Simple Printing The Hello World Text
echo "Hello World";
}
// Assigning The Function To The Variable
$variable = 'myFunction';
//Calling The Variable As A Function
echo $variable();