【问题标题】:How to remove the total row from cart and checkout如何从购物车和结帐中删除总行
【发布时间】:2018-11-18 20:42:42
【问题描述】:

我只想删除购物车和结帐页面上的总行而不是整个块。 我无法找到任何操作或过滤器来删除我仍想保留小计的总计。 我正在使用下面的代码,但它隐藏了整个订单块,也不会从结帐后生成的账单中删除它

add_action( 'woocommerce_checkout_order_review', 'remove_checkout_totals', 1 );

      function remove_checkout_totals()
   {remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );}

【问题讨论】:

  • 您需要覆盖相关的模板,例如 in this thread... 购物车和结帐时没有挂钩。

标签: php wordpress woocommerce cart


【解决方案1】:

您将找不到为 Total 行指定的任何挂钩,因为它们在模板中进行了硬编码,这是通过修改这些页面模板从购物车页面和结帐页面中删除总行的唯一方法,并且您需要遵循如下几个步骤:

  1. 在您的子主题中创建名为 woocommerce 的文件夹。
  2. 在您刚刚创建的主 woocommerce 内创建两个文件夹,名称为 checkoutcart
  3. 现在创建一个名为review-order.php 的文件,将其放入checkout 文件夹,将cart-totals.php 放入cart 文件夹,然后从您可以在wp-content/plugins/woocoomerce/templates/checkout/review-order.phpwp-content/plugins/woocoomerce/templates/cart/cart-totals.php 中找到的原始文件中复制内容

最后一步:

在两个文件中找到以下行并删除它们:

    <tr class="order-total">
       <th><?php _e('Total', 'woocommerce'); ?></th>
       <td><?php wc_cart_totals_order_total_html(); ?></td>
    </tr>

订单接收页面

要从收到的订单页面中删除总计,您可以使用 woocommerce_get_order_item_totals 挂钩并取消设置总计,如下所示:

add_action('woocommerce_get_order_item_totals', 'remove_total', 10, 1);

function remove_total($array)
{
    unset($array['order_total']);
    return $array;
}

把上面的代码放在你的functions.php

就是这样。

【讨论】:

  • 这个很好,成功了,但是还是没有解决第二部分的问题,下单后总在订单收据上显示。
  • @king10 我已经更新了我的答案并包含了收到的订单页面
  • 是的,还是显示总数,看来上面的步骤只是隐藏了字段,并没有删除它以进行进一步处理
  • @king10 让我知道更新的答案是否解决了您的问题
  • @kasalo 是的,它做到了,谢谢一百万,完美!!
猜你喜欢
  • 2018-10-01
  • 2016-03-20
  • 1970-01-01
  • 2019-11-02
  • 2020-10-27
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 2011-08-01
相关资源
最近更新 更多