我对PHP代码的日期总和有疑问。 我在下面的代码运行顺利,直到大约两周前,但我相信因为PHP的版本应该已经更新它停止工作。代码如下:
add_action( 'wpo_wcpdf_after_order_data', 'wpo_wcpdf_due_date', 10, 2 );
function wpo_wcpdf_due_date ($template_type, $order) {
if ($template_type == 'packing-slip') { // put due date only on packing-slip
$max_days = 0;
foreach( WC()->cart->get_cart() as $cart_item )
if($cart_item['days_manufacture'] > $max_days)
$max_days = $cart_item['days_manufacture'];
$days_manufacture = $max_days;
$invoice_date = get_post_meta( $order->id, '_wcpdf_invoice_date', true );
$due_date = date_i18n( get_option( 'date_format' ), strtotime( $invoice_date . " + $days_manufacture weekdays") );
?>
<tr class="due-date">
<th>Término da Confecção:</th>
<td><?php echo $due_date;?></td>
</tr>
<?php
}
}
此代码基本上等于woocommerce($ invoice_date)应用程序中请求的日期以及购物车产品($ days_manufacture
)生成的其他数据,但此变量必须在工作日。
答案 0 :(得分:0)
我解决了我的问题,陷入困境的代码部分如下:
foreach( WC()->cart->get_cart() as $cart_item )
if($cart_item['days_manufacture'] > $max_days)
$max_days = $cart_item['days_manufacture'];
&#13;
我换成了:
foreach( $order->get_items() as $item )
if(get_post_meta($item['product_id'], 'days_manufacture', true) > $max_days )
$max_days = get_post_meta($item['product_id'], 'days_manufacture', true);
&#13;
谢谢大家!