我正试图通过向网站添加一些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 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?>&currency_code=USD&label=3B7tCPfZj2YQip2P4gM&guid=ON&script=0"/>
</div>
</noscript>
但运气不好。
它返回一个函数名称。该名称必须是第69行的字符串错误。据我所知,第69行是我代码中的第4行。我不得不按照客户的要求删除它。
有人能帮忙吗?我没有足够的PHP经验来真正诊断这个问题。
问题:您在代码中使用$variable
作为function myFunction()
,这是错误的。
注意:变量&函数是每种编程语言的两个不同的主要元素,所以最好至少区分这两个元素,不要把它们误认为是另一个。!
解决方案:删除以下代码中$order
后面的括号()
,您的问题就会得到解决。!
代码:
<?php
$orderId = Mage::getSingleton('checkout/session')->getLastOrderId();
$order = Mage::getModel('sales/order')->load($orderId);
$total = (float)number_format($order->getSubtotal(),2);
?>
@实际信用归于@Felipe 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();