我已经制作了一份简单发票(这是默认发票)的副本,并创建了一个新发票,我的问题是我无法将字符串值转换为浮点型。这是代码:
<?php foreach( $this->get_woocommerce_totals() as $key => $total ) : ?>
<tr class="<?php echo $key; ?>">
<td class="no-borders"></td>
<th class="description"><?php echo $total['label']; ?></th>
<td class="price"><span class="totals-price"><?php echo $total['value']; ?></span></td>
</tr>
<?php endforeach; ?>
the $total['value'];
以字符串格式显示价格。
我尝试使用(float)$total['label']
和floatval($total['label'])
进行强制转换,但是没有用,它的返回值为0。
答案 0 :(得分:0)
您无法真正做到这一点,但可以使用$key
来定位total line type
,也可以使用$this->order
的实例WC_Order
任何WC_Order
方法的对象。
要获取未格式化的总计总额(含税),您将使用$this->order->get_total()
…
一些可用的
$keys
是:
cart_subtotal
discount
(如果应用了优惠券)shipping
fee_1234
(如果要收费的话,其中1234
是商品ID,可能会有很多不同)tax
(取决于税金在您的设置上的显示方式)payment_method
(似乎被某些CSS隐藏了)order_total
所以在这段代码中:
<?php
// The line totals data array (in a variable)
$wc_totals = $this->get_woocommerce_totals();
// Some order unformatted amounts
$order_total = $this->order->get_total();
$order_total_tax = $this->order->get_total_tax();
## Manipulating amounts (example) ##
// Order Total (rounding total amount)
$wc_totals['order_total']['value'] = strip_tags( wc_price( round( $order_total ) ) );
?>
<?php foreach( $wc_totals as $key => $total ) : ?>
<tr class="<?php echo $key; ?>">
<td class="no-borders"></td>
<th class="description"><?php echo $total['label']; ?></th>
<td class="price"><span class="totals-price"><?php echo $total['value']; ?></span></td>
</tr>
<?php endforeach; ?>
经过测试可以正常工作。
您还可以添加其他总计行或使用unset()和正确的键将其删除...
要在运输总行之后添加行(示例):
<?php
// The line totals data array (in a variable)
$wc_totals = $this->get_woocommerce_totals();
$wc_new_totals = []; // Initialising
foreach ( $wc_totals as $key => $total ) {
$wc_new_totals[$key] = $total;
if ( $key === 'shipping' ) {
$wc_new_totals['shipping_avg'] = [
'label' => __( "Shipping average" ),
'value' => __( "15 days" ),
];
}
}
?>
<?php foreach( $wc_new_totals as $key => $total ) : ?>
<tr class="<?php echo $key; ?>">
<td class="no-borders"></td>
<th class="description"><?php echo $total['label']; ?></th>
<td class="price"><span class="totals-price"><?php echo $total['value']; ?></span></td>
</tr>
<?php endforeach; ?>