function jigoshop_process_checkout() { if (!is_checkout() || is_jigoshop_single_page(JIGOSHOP_PAY)) { return; } if (count(jigoshop_cart::get_cart()) == 0) { wp_safe_redirect(get_permalink(jigoshop_get_page_id('cart'))); exit; } /** @var jigoshop_checkout $_checkout */ $_checkout = jigoshop_checkout::instance(); $result = $_checkout->process_checkout(); if (isset($result['result']) && $result['result'] === 'success') { wp_safe_redirect(apply_filters('jigoshop_is_ajax_payment_successful', $result['redirect'])); exit; } if (isset($result['redirect'])) { wp_safe_redirect(get_permalink($result['redirect'])); exit; } }
function jigoshop_pay_action() { if (!is_jigoshop_single_page(JIGOSHOP_PAY)) { return; } if (isset($_GET['pay_for_order']) && isset($_GET['order']) && isset($_GET['order_id'])) { // Pay for existing order $order_key = urldecode($_GET['order']); $order_id = (int) $_GET['order_id']; $order = new jigoshop_order($order_id); if ($order->id == $order_id && $order->order_key == $order_key && $order->status == 'pending') { // Set customer location to order location if ($order->billing_country) { jigoshop_customer::set_country($order->billing_country); } if ($order->billing_state) { jigoshop_customer::set_state($order->billing_state); } if ($order->billing_postcode) { jigoshop_customer::set_postcode($order->billing_postcode); } // Pay form was posted - process payment if (isset($_POST['pay']) && jigoshop::verify_nonce('pay')) { // Update payment method if ($order->order_total > 0) { $payment_method = jigowatt_clean($_POST['payment_method']); $data = (array) maybe_unserialize(get_post_meta($order_id, 'order_data', true)); $data['payment_method'] = $payment_method; update_post_meta($order_id, 'order_data', $data); $available_gateways = jigoshop_payment_gateways::get_available_payment_gateways(); $result = $available_gateways[$payment_method]->process_payment($order_id); // Redirect to success/confirmation/payment page if ($result['result'] == 'success') { wp_safe_redirect($result['redirect']); exit; } } else { // No payment was required for order $order->payment_complete(); // filter redirect page $checkout_redirect = apply_filters('jigoshop_get_checkout_redirect_page_id', jigoshop_get_page_id('thanks')); wp_safe_redirect(get_permalink($checkout_redirect)); exit; } } } elseif ($order->status != 'pending') { jigoshop::add_error(__('Your order has already been paid for. Please contact us if you need assistance.', 'jigoshop')); } else { jigoshop::add_error(__('Invalid order.', 'jigoshop')); } } else { // Pay for order after checkout step if (isset($_GET['order'])) { $order_id = $_GET['order']; } else { $order_id = 0; } if (isset($_GET['key'])) { $order_key = $_GET['key']; } else { $order_key = ''; } if ($order_id > 0) { $order = new jigoshop_order($order_id); if ($order->order_key != $order_key || $order->status != 'pending') { wp_safe_redirect(apply_filters('jigoshop_get_myaccount_page_id', get_permalink(jigoshop_get_page_id('myaccount')))); exit; } } else { wp_safe_redirect(apply_filters('jigoshop_get_myaccount_page_id', get_permalink(jigoshop_get_page_id('myaccount')))); exit; } } }
/** * Checks if current page is one of given page types. * * @param string|array $pages List of page types to check. * @return bool Is current page one of provided? */ function is_jigoshop_page($pages) { $result = false; $pages = is_array($pages) ? $pages : array($pages); foreach ($pages as $page) { $result = $result || is_jigoshop_single_page($page); } return $result; }
jigoshop_render('shortcode/my_account/change_password', array()); } function get_jigoshop_view_order() { return jigoshop_shortcode_wrapper('jigoshop_view_order'); } function jigoshop_view_order() { $options = Jigoshop_Base::get_options(); $order = new jigoshop_order($_GET['order']); jigoshop_render('shortcode/my_account/view_order', array('order' => $order, 'options' => $options)); } add_action('template_redirect', function () { $isViewOrder = is_jigoshop_single_page(JIGOSHOP_VIEW_ORDER); $isEditAddress = is_jigoshop_single_page(JIGOSHOP_EDIT_ADDRESS); $isChangePassword = is_jigoshop_single_page(JIGOSHOP_CHANGE_PASSWORD); if (($isViewOrder || $isEditAddress || $isChangePassword) && !is_user_logged_in()) { wp_safe_redirect(apply_filters('jigoshop_get_myaccount_page_id', get_permalink(jigoshop_get_page_id(JIGOSHOP_MY_ACCOUNT)))); exit; } if ($isViewOrder) { if (!isset($_GET['order'])) { wp_safe_redirect(apply_filters('jigoshop_get_myaccount_page_id', get_permalink(jigoshop_get_page_id('myaccount')))); exit; } $order = new jigoshop_order($_GET['order']); if ($order->user_id != get_current_user_id()) { wp_safe_redirect(apply_filters('jigoshop_get_myaccount_page_id', get_permalink(jigoshop_get_page_id('myaccount')))); exit; } }
public function is_available() { return !is_jigoshop_single_page(JIGOSHOP_PAY); }