Пример #1
0
// WC Subscriptions 2.0 needs this
if (class_exists('WC_Subscriptions_Cart') && WC_Subscriptions_Cart::cart_contains_subscription()) {
    sleep(5);
    $parent_order = new WC_Order(intval($_GET['sid']));
    $subscriptions = array();
    // First clear out any subscriptions created for a failed payment to give us a clean slate for creating new subscriptions
    $subscriptions = wcs_get_subscriptions_for_order($parent_order->id, array('order_type' => 'parent'));
    if (!empty($subscriptions)) {
        foreach ($subscriptions as $subscription) {
            wp_delete_post($subscription->id);
        }
    }
    WC()->cart->calculate_totals();
    // Create new subscriptions for each group of subscription products in the cart (that is not a renewal)
    foreach (WC()->cart->recurring_carts as $recurring_cart) {
        $subscription = WC_Subscriptions_Checkout::create_subscription($parent_order, $recurring_cart);
        // Exceptions are caught by WooCommerce
        $subscription->payment_complete();
        if (is_wp_error($subscription)) {
            throw new Exception($subscription->get_error_message());
        }
        do_action('woocommerce_checkout_subscription_created', $subscription, $parent_order, $recurring_cart);
    }
    do_action('subscriptions_created_for_order', $parent_order);
    // Backward compatibility
}
echo $snippet;
do_action('klarna_after_kco_confirmation', intval($_GET['sid']));
do_action('woocommerce_thankyou', intval($_GET['sid']));
// Clear session and empty cart
WC()->session->__unset('klarna_checkout');