【问题标题】:Woocommerce - Display full price (incl. tax) in admin order summaryWoocommerce - 在管理订单摘要中显示全价(含税)
【发布时间】:2021-10-19 10:35:12
【问题描述】:

我希望显示客户为该商品支付的全价,而不是“不含税价格”和“含税价格”。

我遵循了这个:Woocommerce - Admin Order Detail Page,它几乎得到了我想要的东西,但是它对我的情况并不完美,我无法修改它。我在 PHP 方面不是很有经验,并且担心会破坏任何东西,因为它是一个实时网店。

我设法轻松地更改了货币符号并将其放在价格的末尾而不是开头,但是我还想更改其他一些内容,但我不确定如何/在哪里。

  1. 我们使用逗号而不是句点作为小数点。这反映在其他任何地方都没有问题,但不是这个自定义的 sn-p。我该如何更改?

  2. 如果是免费物品/运费,则为空。我尝试将“if $val>0”更改为“if $val”,但没有任何区别。

  3. 我希望整个列都在右侧(作为最后一列)而不是左侧。所以它读取数量,总计,税收,总计,包括。税。

这是我当前的稍作修改的代码:

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 );

编辑:我发现此代码还会破坏/引发退款订单的致命错误。我不得不完全停用代码。

我没有足够的经验知道如何修改它,我仍在寻求帮助。

【问题讨论】:

    标签: woocommerce admin orders


    【解决方案1】:

    您的代码中有一个小问题,那就是您访问了$item,因为它是一个数组,而它实际上是一个对象。扩展WC_Order_Item 抽象类的对象之一。此外,$itemtotaltotal_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 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多