【问题标题】:WooCommerce get order totalWooCommerce 获得订单总额
【发布时间】: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 height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/1066553725/?value=<?php echo $get_order_total; ?>&amp;currency_code=GBP&amp;label=CzWXCLmwn1YQ_aLJ_AM&amp;guid=ON&amp;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-&gt;get_total() 可能意味着您不需要做所有preg_replace。哦,更新你的 WooCommerce!你有几个版本。

标签: php wordpress woocommerce


【解决方案1】:

尝试这样的方式来显示您的订单总额

<?php echo $order->get_total(); ?>

【讨论】:

    猜你喜欢
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2021-12-13
    • 2015-09-07
    • 2021-05-28
    • 1970-01-01
    相关资源
    最近更新 更多