/** * Process period_created event from webhook * @param $data array **/ private function subscription_renew($data) { $cycle = $data->bill->period->cycle; $subscription = $this->find_subscription_by_id($data->bill->subscription->code); $vindi_subscription_id = $data->bill->subscription->id; if ($this->subscription_has_order_in_cycle($vindi_subscription_id, $cycle)) { throw new Exception('Já existe o ciclo $cycle para a assinatura ' . $vindi_subscription_id . ' pedido ' . $subscription->id); } WC_Subscriptions_Manager::prepare_renewal($subscription->id); $order_id = $subscription->get_last_order(); $order = $this->find_order_by_id($order_id); add_post_meta($order->id, 'vindi_wc_cycle', $cycle); $this->container->logger->log('Novo Período criado: Pedido #' . $order->id); }