如何从购物车和结帐中删除总行

How to remove the total row from cart and checkout

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

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

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

您不会找到为总计行指定的任何挂钩,因为它们在模板中进行了硬编码,这是从购物车页面和结帐页面中删除总计行的唯一方法,方法是修改这些页面模板并执行您需要的操作按照以下几个步骤操作:

  1. 在名为 woocommerce 的子主题中创建文件夹。
  2. 在刚刚创建的 main woocommerce 中创建两个名为 name checkoutcart.
  3. 的文件夹
  4. 现在创建名为 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
  5. 中查找

最后一步:

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

    <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

就是这样。