我正在使用Ewout Fernhout的插件WooCommerce PDF Invoices & Packing Slips开发自定义发票模板,当我想在发票上创建更详细的产品列表时,我遇到了问题 .
默认模板中有一个foreach循环,显示订单中的所有产品:
$items = $this->get_order_items();
if( sizeof( $items ) > 0 ) :
foreach( $items as $item_id => $item ) :
在那之后,我想根据 $items
计算折扣金额,以欧元和%表示 . 我抛弃了内容,发现产品价格在 $item['price'] (string(119)
),原价在 $item['product']->price (string(3))
. 我可以回显 $item['price']
的值,但是当我想从子串中获得 $item['price']
(例如从250.00€)的价格时,它是无用的,返回什么都没有或函数的长度值 . (使用第二个变量 - $item['product']->price
,我没有问题)...
$price = $item['price'];
echo $price.'
';
echo strlen($price).'
';
echo substr($price,0,10).'
';
echo strlen(trim(substr($price,0,10))).'
';
它显示:
250.00€119 10
(如果我在子字符串中写入10或2并不重要,则第一次出现的子字符串将返回长度值) . 我试过参考,但它既不起作用......
可能是根本原因是什么?
谢谢
1 回答
Update:
要直接获得非格式化价格,您可以使用:
1)对于订单行项目,您可以获取WC_Order_Item_Product对象:
2)获取相关的WC_Product对象使用:
您只需使用str_replace()删除 euro 符号和 spaces ( '€' 和 ' ' ):