Если вы еще не нашли ответ, пару вещей.Вы просто пишете шлюз ИЛИ пишете шлюз и процесс подписки?
Woocommerce имеет дополнение, называемое Woocommerce подписка.Он делает все расчеты со шлюзом, которые на данный момент являются только Stripe / PayPal.Если вы пишете новый шлюз и хотите добавить подписку на woocommerce, все, что вам нужно сделать, это посмотреть идентификатор подписки и следующую дату платежа:
public function mcc_subscription_renewal($amount, $order)
{
$order = new WC_Order( $order );
$OrderNumber = $order->parent_id;
$ParentOrder = new WC_Order( $OrderNumber ); // ORDER NUMBER
$SubscriptionNumber = $order->get_order_number();
$PaymentDate = $order->get_date_created()->format ('Y-m-d');
$items = $order->get_items();
foreach( $items as $item_id => $product )
{
$ProductName = $product->get_name();
$ProductId = $product->get_product_id();
$ExpireDate = WC_Subscriptions_Order::get_next_payment_date ( $ParentOrder, $ProductId );
}
}
Вам не нужно делатьчто-нибудь еще.Если вы пишете свой собственный пакет подписки, то вам нужно записывать звонки и хранить покупки. Таким образом, рассчитать свои собственные даты истечения срока действия.
Подписка на woocommerce, продолжительность и период продления устанавливаются в соответствии с определением продуктов.