Woocommerce получает новый идентификатор заказа при продлении подписки

У меня есть подписки Woocommerce с настройкой и работой Stripe Gateway.
Каждый раз, когда я вручную проверяю запланированное продление, он сохраняет новый идентификатор заказа для продления, однако я не могу найти способ получить к нему доступ. у меня есть scheduled_subscription_payment() установить для печати нашего $order объект, но order_id всегда одинаков из-за подписки, ссылающейся на начальный заказ. Есть ли способ получить новый идентификатор заказа для продления подписки сразу после его запуска?

Функция, на которую я ссылаюсь, находится в плагине Stripe WC Gateway:

public function scheduled_subscription_payment( $amount_to_charge, $order, $product_id )

0

Решение

Похоже, что в последнем выпуске (2.0.0) подписок WooCommerce они устарели прежний хук запланированных запланированных подписок и заменили новым хуком woocommerce_scheduled_subscription_payment.

Старыми аргументами были: сумма $, $ оригинал-заказ, $ product_id.

В то время как новые: $ сумма, $ renewal_order.

Таким образом, используя последнюю версию подписок WC, вы можете напрямую получить доступ к новым данным заказа на продление. Чтобы получить родительский заказ из продления, вы можете использовать:

        if ( wcs_order_contains_renewal( $renewal_order->id ) ) {
$parent_order_id = WC_Subscriptions_Renewal_Order::get_parent_order_id( $renewal_order->id );
}

Если вы не можете получить последний плагин подписок WC, сложно получить заказ на продление от родителя: вы, вероятно, можете получить все заказы на продление из данного родительского заказа и принять последний, но вы не уверены на 100% это правильный порядок.

В любом случае, если вы можете получить последнюю версию подписок на WC, это, безусловно, лучшая идея.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]