我们使用WooCommerce订阅,我在下面创建了该代码片段以在MyAccount页面上显示续订计数。
这是有效的。但是,我发现,最初的父订单也算作"已付款"。所以实际上我只想计算订阅的续订意味着从该计数中排除初始订单。
我想当我总是像$get_paid_count -1
一样计算 -1 时,它就可以工作了。但这个解决方案不是很干净。有什么建议,我怎样才能以干净的方式做到这一点?
function show_paid_renewals( $subscription ) {
$get_paid_count = $subscription->get_payment_count();
foreach ( $subscription->get_items() as $item ) {
?>
<tr>
<td><?php esc_html_e( 'Erhaltene Lieferungen: ' . $item->get_product()->get_title(), 'woocommerce-subscriptions' ); ?></td>
<td>
<?php echo esc_html( $get_paid_count ); ?>
</td>
</tr>
<?php
}
}
add_action( 'woocommerce_subscription_before_actions', 'show_paid_renewals', 99, 1 );
如果要计算订阅的续订次数,这意味着您要从该计数中排除第一个订单。您可以使用:
$get_paid_count = $subscription->get_payment_count( 'completed', 'renewal' );
订阅功能和属性参考
WC_Subscription::get_payment_count() - 获取订阅完成的付款次数。
已完成的付款包括所有续订订单,可能还包括初始订单(如果订阅是由于从前端购买而不是由商店经理手动创建的)。
用法
<?php WC_Subscription::get_payment_count( $payment_type, $order_types ) ?>
参数
$payment_type
(字符串) (可选) 计数类型('completed'|'refunded'|'net')
。默认值已完成。
$order_types
(数组|字符串) (可选)要计数的顺序关系的类型。'parent'
和/或'renewal'
。也可以在数组中提供多个订单类型值。默认array( 'parent', 'renewal' )
。
返回值
(国际) 标有表示'completed'|'refunded'|'net'
付款的状态的相关订单总数,具体取决于第一个参数。