首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在woocommerce中忽略订单退款流程中的自定义字段

如何在woocommerce中忽略订单退款流程中的自定义字段
EN

Stack Overflow用户
提问于 2020-01-07 23:35:39
回答 1查看 151关注 0票数 2

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

代码语言: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 );

这给了我一个单独展示VAT $的机会。

您可以了解有关此线程here的更多信息

问题是,当我退款时,我得到了新的woocommerce错误(从5.2开始)

该网站正在经历技术上的困难。请检查您的网站管理员电子邮件收件箱的说明。

我只是看了看这个错误,似乎是因为在退款过程中找不到自定义字段,所以wocommerce才会显示它……

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

如何从退款流程中删除此自定义函数?有没有一种方法可以隐藏这个错误?

EN

回答 1

Stack Overflow用户

发布于 2020-01-13 19:39:52

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

代码语言:javascript
复制
if ($item->get_type() == 'shop_order_refund') {
    $item = new WC_Order_Refund($item_id);
}
else {
    $item = new WC_Order_Item_Product($item_id);
}

在您的示例中,我认为您需要将代码开头的第一个条件语句更改为类似于。

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

https://stackoverflow.com/questions/59631488

复制
相关文章

相似问题

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