示例#1
0
 /**
  * Handles shopping cart requests
  *
  * @author Jonathan Davis
  * @since 1.1
  *
  * @return void
  **/
 public function cart()
 {
     if (isset($_REQUEST['shopping']) && 'reset' == strtolower($_REQUEST['shopping'])) {
         ShoppShopping()->reset();
         Shopp::redirect(Shopp::url());
     }
     if (empty($_REQUEST['cart'])) {
         return true;
     }
     do_action('shopp_cart_request');
     if (isset($_REQUEST['checkout'])) {
         Shopp::redirect(Shopp::url(false, 'checkout', $this->security()));
     }
     if (isset($_REQUEST['ajax'])) {
         $Cart = ShoppOrder()->Cart;
         $Cart->totals();
         $Cart->ajax();
     }
     $redirect = false;
     if (isset($_REQUEST['redirect'])) {
         $redirect = $_REQUEST['redirect'];
     }
     switch ($redirect) {
         case 'checkout':
             Shopp::redirect(Shopp::url(false, $redirect, ShoppOrder()->security()));
             break;
         default:
             if (!empty($_REQUEST['redirect'])) {
                 Shopp::safe_redirect($_REQUEST['redirect']);
             } else {
                 Shopp::redirect(Shopp::url(false, 'cart'));
             }
     }
     exit;
 }
示例#2
0
 /**
  * Handle login redirects
  *
  * @author Jonathan Davis
  * @since 1.2
  *
  * @return void
  **/
 public function redirect()
 {
     $redirect = false;
     $secure = ShoppOrder()->security();
     if (isset($_REQUEST['redirect']) && !empty($_REQUEST['redirect'])) {
         if (ShoppPages()->exists($_REQUEST['redirect'])) {
             $redirect = Shopp::url(false, $_REQUEST['redirect'], $secure);
         } else {
             $redirect = $_REQUEST['redirect'];
         }
     }
     if (!$redirect) {
         $redirect = apply_filters('shopp_login_redirect', Shopp::url(false, 'account', $secure));
     }
     Shopp::safe_redirect($redirect);
 }
示例#3
0
/**
 * @deprecated Use Shopp::safe_redirect()
 **/
function shopp_safe_redirect($location, $status = 302)
{
    Shopp::safe_redirect($location, $status);
}
示例#4
0
 /**
  * Unlock an encrypted session
  *
  * This queues up a redirect to bounce the browser back to an
  * HTTPS url with an unlock request.
  *
  * When the unlock request is received, sensitive payment
  * credentials are destroyed and the session is saved
  * unencrypted. The browser is then redirected back to
  * the original HTTP request.
  *
  * @since 1.3.6
  *
  * @return void
  */
 public function unlock()
 {
     // Intercept unlock requests to unencrypt the session
     if (!empty($_REQUEST['unlock'])) {
         ShoppOrder()->securecard();
         $this->secured(false);
         Shopp::safe_redirect($_REQUEST['unlock'], 307);
         exit;
     }
     // When no secure key is available, bounce to SSL and back to unlock the session
     add_action('shopp_init', array($this, 'bouncer'), 100);
 }