/**
  * Get notify URL
  *
  * @return string
  */
 private function get_return_url()
 {
     // @see https://bitbucket.org/Pronamic/classipress/src/bc1334736c6e/includes/theme-functions.php?at=3.2.1#cl-2381
     if (isset($this->order_values['return_url'])) {
         $url = $this->order_values['return_url'];
     } else {
         /*
          * We query the order info sometimes directly from the database,
          * if we do this the 'return_url' isn't directly available
          *
          * ClassiPress has order information about adding an advertisement,
          * but also has order information about advertisement packages.
          *
          * If the advertisement post ID is empty we know the order
          * information is about an advertisement package.
          *
          * ClassiPress is doing in similar check in the following file:
          * @see https://bitbucket.org/Pronamic/classipress/src/bc1334736c6e/includes/gateways/gateway.php?at=3.2.1#cl-31
          */
         if (Pronamic_WP_Pay_Extensions_ClassiPress_Order::is_advertisement($this->order_values)) {
             // Advertisement
             // @see https://bitbucket.org/Pronamic/classipress/src/bc1334736c6e/includes/theme-functions.php?at=3.2.1#cl-2381
             $url = add_query_arg(array('pid' => $this->order_values['txn_id'], 'aid' => $this->order_values['ad_id']), CP_ADD_NEW_CONFIRM_URL);
         } else {
             // Advertisement package
             // @see https://bitbucket.org/Pronamic/classipress/src/bc1334736c6e/includes/theme-functions.php?at=3.2.1#cl-2409
             $url = add_query_arg(array('oid' => $this->order_values['txn_id'], 'uid' => isset($this->order_values['user_id']) ? $this->order_values['user_id'] : false), CP_MEMBERSHIP_PURCHASE_CONFIRM_URL);
         }
     }
     return $url;
 }