致命错误:未捕获错误:无法将WC_Order_Refund类型的对象用作数组

时间:2019-06-15 20:58:54

标签: woocommerce

我在下面添加了此代码,以便在管理订单页面中添加包括增值税在内的价格。

它运作良好,但我今天尝试退还订单,但出现此错误:

致命错误:未捕获错误:无法将WC_Order_Refund类型的对象用作数组中的

如何在退款过程中排除这个新价格?

点击退款后,不应提交此自定义价格

import AppData;

AppData.write("red.alpha", 0.3);

2 个答案:

答案 0 :(得分:0)

如果传入的$ item变量是WC_Order_Refund对象,则可以提早退出。

if ( 'WC_Order_Refund' == gettype( $item ) ) {
    return;
}

答案 1 :(得分:0)

这是更新的代码,不会产生任何错误:

//Add price inc VAT column on admin order page
function action_woocommerce_admin_order_item_values( $null, $item, $absint ) {
  $val = ('line_item' == $item->get_type() || 'shipping' == $item->get_type() ) ? $item->get_total() + $item->get_total_tax() : ' ';
  $valdecimal = wc_format_decimal( $val );
  ?>
  <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 );