Woocommerce 审查订单总挂钩两次回显结果

Posted

技术标签:

【中文标题】Woocommerce 审查订单总挂钩两次回显结果【英文标题】:Woocommerce review order total hook is echoing result twice 【发布时间】:2021-11-25 04:21:04 【问题描述】:

我想在functions.php 中使用以下代码获取购物车总数:

function display_total()
    global $woocommerce;
    $newTotal = $woocommerce->cart->get_total();

    echo $newTotal;
;
add_action( 'woocommerce_review_order_before_order_total', 'display_total');

不像$18.00$18.00那样显示两次,而不是显示一次。

var_dump 也会产生两行 html

D:\Wordpress\wp-content\themes\new_theme\functions.php:161:string '<span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">&#36;</span>18.00</bdi></span>' (length=128)

D:\Wordpress\wp-content\themes\new_theme\functions.php:161:string '<span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">&#36;</span>18.00</bdi></span>' (length=128)

我做错了什么?

【问题讨论】:

@Ruvee 谢谢,但已经尝试过了。相反,“返回”不显示任何内容。 尝试在表格中间回显值怎么样:echo '&lt;tr&gt;&lt;td &gt;' . $newTotal . '&lt;/td&gt;&lt;/tr&gt;'; @Ruvee 非常感谢。现在工作。但这是什么原因呢? 【参考方案1】:

回显表格行中的值,这样它就不会回显两次。所以你的代码会是这样的:

add_action( 'woocommerce_review_order_before_order_total', 'display_total');

function display_total()
    global $woocommerce;
    $newTotal = $woocommerce->cart->get_total();

    echo '<tr><td >' . $newTotal . '</td></tr>';
;

原因是,woocommerce_review_order_after_order_total 钩子正在表中使用,因此在 trtd 标记之间添加您的值将导致该值回显一次。

【讨论】:

以上是关于Woocommerce 审查订单总挂钩两次回显结果的主要内容,如果未能解决你的问题,请参考以下文章

在验证之后但在 Woocommerce 结帐中创建订单之前挂钩

如何防止在 WooCommerce 电子邮件通知中运行挂钩

成功付款后 woocommerce_thankyou 挂钩不起作用

WooCommerce 插件 PHP 挂钩上的空 $order 变量

WooCommerce 自定义订单操作不适用于垃圾状态

在 WooCommerce 中更改订单运费总额