【问题标题】:How to ignore a custom field in the order refund process in woocommerce如何在woocommerce的订单退款过程中忽略自定义字段
【发布时间】:2020-04-25 03:23:17
【问题描述】:

我在我的 functions.php 文件中使用下面的代码。

 //Add price inc VAT column on admin order page
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>0) echo '$'; echo $valdecimal;?>
        </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;">Price inc VAT</th>';
};
add_action( 'woocommerce_admin_order_item_headers', 'action_woocommerce_admin_order_item_headers', 10, 3 );

这让我有机会单独显示增值税。

你可以了解更多关于这个帖子here

问题是当我退还产品时,我收到新的 woocommerce 错误(自 5.2 起)

该网站遇到技术问题。请检查您的站点管理员电子邮件收件箱以获取说明。

我只是查看错误,似乎 wocommerce 显示它,因为它在退款过程中找不到该自定义字段...

 #3 /nas/content/staging/.../wp-content/plugins/woocommerce/includes/admin/meta-boxes/views/html-order-refund.php(48): do_action('woocommerce_adm...', NULL, Object(WC_Order_Refund), 68711) 

如何从退款流程中删除此自定义功能?有没有办法隐藏这个错误?

【问题讨论】:

    标签: woocommerce price


    【解决方案1】:

    我也遇到了这个问题。问题是 woocommerce_admin_order_item_values 现在被WC_Order_RefundWC_Order_item 调用。我们现在必须辨别我们收到的对象是什么类型的,并进行相应的处理。你可以通过这段代码来辨别。

    if ($item->get_type() == 'shop_order_refund') {
        $item = new WC_Order_Refund($item_id);
    }
    else {
        $item = new WC_Order_Item_Product($item_id);
    }
    

    在您的情况下,我认为您需要将代码开头的第一个条件语句更改为类似的内容。

    switch ($item->get_type()) {
        case 'shop_order_refund':
            $val = $item->get_amount();
            break;
        case 'line_item':
        case 'shipping':
            $val = $item['total'] + $item['total_tax'];
            break;
        default:
            $val = '&nbsp;';
            break;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 2020-12-30
      • 2019-02-28
      • 2019-05-21
      • 2020-01-11
      • 2018-02-06
      相关资源
      最近更新 更多