WooCommerce-显示全价(包括税务)在管理订单摘要中 [英] Woocommerce - Display full price (incl. tax) in admin order summary
问题描述
我希望显示客户为该项目支付的全部价格,而不是‘不含税价格’和‘含税价格’。
我遵循了这一点:Woocommerce - Admin Order Detail Page它几乎得到了我想要的东西,但它并不适合我的情况,我无法修改它。我对PHP不是很有经验,担心会打碎任何东西,因为它是一个实时的网上商店。
我设法很容易地更改了货币符号,并将其放在价格的末尾而不是开始处,但我还希望更改其他几项内容,但我不确定如何更改/在哪里更改。
我们使用逗号而不是句点作为小数点。这反映在其他任何地方都没有问题,但不是在这个定制代码段中。如何更改此设置?
如果是免费物品/送货,则此字段为空。我尝试将&If$val&>0;更改为Just";If$Val&Quot;,但没有效果。
我希望整列位于右侧(作为最后一列),而不是左侧。因此,它读取数量、总计、税金、总计(含)。税。
以下是我当前稍微修改过的代码:
function action_woocommerce_admin_order_item_values( $null, $item, $absint ) {
$val = ($item['type'] == 'line_item' || $item['type'] == 'shipping') ? $item['total'] + $item['total_tax'] : ' ';
$valdecimal = wc_format_decimal( $val, $dp='', $trim_zeros );
?>
<td class="item_fcost" data-sort-value="<?php echo $val; ?>">
<div class="view" style="font-weight: bold; text-align: right; padding-right: 10px;">
<?php if ($val) echo $valdecimal; echo ' DKK'; ?>
</div>
</td>
<?php
};
add_action( 'woocommerce_admin_order_item_values', 'action_woocommerce_admin_order_item_values', 10, 3 );
function action_woocommerce_admin_order_item_headers( $order ) {
echo '<th class="item_fcost sortable" data-sort="float" style="text-align: right;">Pris inkl. moms</th>';
};
add_action( 'woocommerce_admin_order_item_headers', 'action_woocommerce_admin_order_item_headers', 10, 3 );
编辑:我发现这段代码还中断/抛出了一个关于退款订单的致命错误。我不得不完全停用代码。
我没有足够的经验知道如何修改它,仍在寻求帮助。
推荐答案
您的代码中有一个小问题,那就是您访问的$item
是一个数组,而它实际上是一个对象。扩展WC_Order_Item
抽象类的对象之一。此外,$item
的total
和total_tax
属性是字符串,而不是数字,因此当您将它们相加时,首先需要将它们转换为浮点数。
最后,我研究了how the total is displayed by Woocommerce,他们也包括了退款总额。所以我把退还的总额也加进去了,包括增值税/税。
您可以在下面找到更新的代码。
function action_woocommerce_admin_order_item_values( $null, WC_Order_Item $item) {
$val = floatval($item->get_total()) + floatval($item->get_total_tax());
?>
<td class="item_full_cost" data-sort-value="<?= $val ?>">
<div class="view" style="font-weight: bold; text-align: right; padding-right: 10px;">
<?= wc_price($val, ['currency' => $item->get_order()->get_currency()]) ?>
</div>
<?php
$refunded = $item->get_order()->get_total_refunded_for_item( $item->get_id() );
if ( $refunded ) {
echo '<small class="refunded">-' . wc_price( $refunded, array( 'currency' => $item->get_order()->get_currency() ) ) . '</small>';
}
?>
</td>
<?php
};
add_action( 'woocommerce_admin_order_item_values', 'action_woocommerce_admin_order_item_values', 10, 2 );
function action_woocommerce_admin_order_item_headers( $order ) {
echo '<th class="line_full_cost sortable" data-sort="float" style="font-weight:bold;text-align: right;">' . __('Price incl. VAT') .'</th>';
};
add_action( 'woocommerce_admin_order_item_headers', 'action_woocommerce_admin_order_item_headers', 10, 3 );
这篇关于WooCommerce-显示全价(包括税务)在管理订单摘要中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!