首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误:未捕获错误:无法将WC_Order_Refund类型的对象用作中的数组

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

Stack Overflow用户
提问于 2019-06-16 04:58:55
回答 2查看 206关注 0票数 0

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

它工作得很好,但我今天试图退款,我得到了这个错误:

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

如何将此新价格排除在退款流程之外?

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

代码语言:javascript
复制
//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 );
EN

回答 2

Stack Overflow用户

发布于 2020-01-08 02:03:04

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

代码语言:javascript
复制
if ( 'WC_Order_Refund' == gettype( $item ) ) {
    return;
}
票数 0
EN

Stack Overflow用户

发布于 2020-01-09 20:52:41

以下是更新后的代码,不会生成任何错误:

代码语言:javascript
复制
//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() : '&nbsp;';
  $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 );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56614125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档