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

时间:2018-11-18 20:42:43

标签: php wordpress woocommerce cart

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

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 个答案:

答案 0 :(得分:1)

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

  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

就是这样。