我在我的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 );这给了我一个单独展示VAT $的机会。
您可以了解有关此线程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) 如何从退款流程中删除此自定义函数?有没有一种方法可以隐藏这个错误?
发布于 2020-01-13 19:39:52
我也遇到了这个问题。问题是现在同时使用WC_Order_Refund和WC_Order_item来调用woocommerce_admin_order_item_values。现在,我们必须在收到对象时辨别得到的是哪种类型的对象并进行相应的处理。你可以通过这段代码来辨别。
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 = ' ';
break;
}https://stackoverflow.com/questions/59631488
复制相似问题