function goldnova_process_order() { if (!WC()->cart || WC()->cart->is_empty()) { error_log("GOLDNOVA ERROR: Cart is empty", 0); wp_redirect(wc_get_cart_url()); exit; } $gateway = sanitize_text_field($_POST['payment_method'] ?? 'paysera'); $sub = sanitize_text_field($_POST['selected_sub_option'] ?? ''); if ($gateway === 'paysera' && !$sub) { $sub = 'swedbank'; error_log("GOLDNOVA: No bank selected, defaulting to swedbank", 0); } WC()->session->set('selected_sub_option', $sub); // Force required WooCommerce fields $_POST['payment_method'] = $gateway; $_POST['terms'] = 'on'; $_POST['woocommerce-process-checkout-nonce'] = wp_create_nonce('woocommerce-process_checkout'); try { $checkout = WC()->checkout(); // Log posted data for debugging (safe for local testing) error_log("GOLDNOVA: POST DATA: " . print_r($_POST, true), 0); $order_id = $checkout->create_order($_POST); error_log("GOLDNOVA: Order created successfully. Order ID: $order_id", 0); $order = wc_get_order($order_id); if (!$order) { error_log("GOLDNOVA ERROR: Could not load order with ID $order_id", 0); wp_redirect(wc_get_cart_url()); exit; } $order->add_meta_data('_goldnova_sub_option', $sub); $order->save(); WC()->cart->empty_cart(); $url = $order->get_checkout_payment_url(true); if ($gateway === 'paysera') { $url = add_query_arg('bank', $sub, $url); } error_log("GOLDNOVA: Redirecting to: $url", 0); wp_redirect($url); exit; } catch (Exception $e) { error_log("GOLDNOVA EXCEPTION: " . $e->getMessage(), 0); wc_add_notice(__('Nepavyko sukurti užsakymo. Bandykite dar kartą.'), 'error'); wp_redirect(wc_get_cart_url()); exit; } }