/** * 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; }
/** * 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); }
/** * @deprecated Use Shopp::safe_redirect() **/ function shopp_safe_redirect($location, $status = 302) { Shopp::safe_redirect($location, $status); }
/** * 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); }