/** * Processes a tokenised payment * * @param $original_order_id * * @return WC_Order|bool */ protected function create_registration_payment($original_order_id) { $nonce = isset($_REQUEST['_wpnonce']) ? $_REQUEST['_wpnonce'] : ''; if (!wp_verify_nonce($nonce, 'buy_postsale_offer')) { return false; } $order = $this->create_postsale_order($original_order_id); try { $payment_api = $this->get_api(); $request = new WC_LUUP_API_Transaction_Request($this->settings, $order); $request->set_payment_type($this->get_option('auth_mode')); $payment_response = $payment_api->send_registration_payment(get_post_meta($original_order_id, self::TOKEN_NAME, true), $request); } catch (Exception $e) { //todo - log exception return false; } $order = $this->process_luup_payment_response($payment_response, $order); if ('processing' == $order->get_status()) { if (!add_post_meta($original_order_id, self::POSTSALE_ORDER_META_NAME, $order->id, true)) { update_post_meta($original_order_id, self::POSTSALE_ORDER_META_NAME, $order->id); } $_SESSION['luup']['can_postsale'] = false; unset($_SESSION['luup']['can_postsale']); return $order; } return false; }