WooCommerce 获得订单总额
Posted
技术标签:
【中文标题】WooCommerce 获得订单总额【英文标题】:WooCommerce get order total 【发布时间】:2016-02-18 18:02:24 【问题描述】:我目前正在尝试获取 WooCommerce 结帐的订单总额,以便可以通过 Google AdWords 转换发送。
代码如下:
<?php
$get_order_total = floatval( preg_replace( '#[^\d.]#', '', $order->get_formatted_order_total() ) );
?>
<!-- Google Code for ATS Conversion Page -->
<?php if ( $get_order_total ) ?>
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 1066553725;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "CzWXCLmwn1YQ_aLJ_AM";
if (<?php echo $get_order_total; ?>) var google_conversion_value = <?php echo $get_order_total; ?>; var google_conversion_currency = "GBP";
var google_conversion_currency = "GBP";
var google_remarketing_only = false;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img style="border-style:none;" src="//www.googleadservices.com/pagead/conversion/1066553725/?value=<?php echo $get_order_total; ?>&currency_code=GBP&label=CzWXCLmwn1YQ_aLJ_AM&guid=ON&script=0"/>
</div>
</noscript>
<?php ?>
由于某种原因,当它出现在页面上时 $get_order_total = floatval( preg_replace( '#[^\d.]#', '', $order->get_formatted_order_total() ) );它破坏了页面并产生了这个错误:
在第 409 行的 /woocommerce/checkout/thankyou.php 中的非对象上调用成员函数 get_formatted_order_total()
我环顾四周并尝试添加全局 $woocommerce 变量,但没有成功。我们使用的版本是2.1.12。
您的帮助将不胜感激。
【问题讨论】:
问题是$order
。它说它不是一个对象,所以变量是错误的。
没错,它就在错误消息中。如果你有订单ID,可以$order = wc_get_order( $order_id )
获取订单对象。另外$order->get_total()
可能意味着您不需要做所有preg_replace
。哦,更新你的 WooCommerce!你有几个版本。
【参考方案1】:
尝试这样的方式来显示您的订单总额
<?php echo $order->get_total(); ?>
【讨论】:
以上是关于WooCommerce 获得订单总额的主要内容,如果未能解决你的问题,请参考以下文章
根据 WooCommerce 中的订单总额更改 PayPal 地址