在 WooCommerce "My account" 页面上显示订阅续订计数

Display subscription renewal count on WooCommerce "My account" page

我们使用 WooCommerce 订阅,我在下面创建了该代码段以在“我的帐户”页面上显示续订计数。

这是有效的。但是,我发现,最初的父订单也算作“已付款”。所以实际上我只想计算订阅的续订意味着从该计数中排除初始订单。

我想当我总是像 $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' and/or 'renewal'。也可以在数组中提供多个订单类型值。默认 array( 'parent', 'renewal' ).

Return 值

(整数) 根据第一个参数,标记有表示 'completed'|'refunded'|'net' 付款状态的相关订单总数。