我添加了以下代码,以添加价格,包括增值税在管理订单页面。
它工作得很好,但我今天试图退款,我得到了这个错误:
致命错误:未捕获错误:无法将WC_Order_Refund类型的对象用作中的数组
如何将此新价格排除在退款流程之外?
此自定义价格不应在我点击退款后提交
//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 );发布于 2020-01-08 02:03:04
如果传入的$item变量是WC_Order_Refund对象,则可以提前退出。
if ( 'WC_Order_Refund' == gettype( $item ) ) {
return;
}发布于 2020-01-09 20:52:41
以下是更新后的代码,不会生成任何错误:
//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 );https://stackoverflow.com/questions/56614125
复制相似问题