public function omise_3ds_handler() { if (!$_GET["order_id"]) { wp_die("Order was not found", "Omise Payment Gateway: Checkout", array("response" => 500)); } $order_id = $_GET["order_id"]; $posts = get_posts(array("post_type" => "omise_charge_items", "meta_query" => array(array("key" => "_wc_order_id", "value" => $order_id, "compare" => "=")))); if (empty($posts)) { wp_die("Charge was not found", "Omise Payment Gateway: Checkout", array("response" => 500)); } $order = wc_get_order($order_id); if (!$order) { wp_die("Order was not found", "Omise Payment Gateway: Checkout", array("response" => 500)); } $confirmed_url = get_post_custom_values("_wc_confirmed_url", $posts[0]->ID); $confirmed_url = $confirmed_url[0]; $charge_id = get_post_custom_values("_omise_charge_id", $posts[0]->ID); $charge_id = $charge_id[0]; $omise = new Omise(); $result = $omise->get_charge($this->private_key, $charge_id); if ($this->is_charge_success($result)) { $order->payment_complete(); $order->add_order_note("Payment with Omise successful"); WC()->cart->empty_cart(); header("Location: " . $confirmed_url); die; } else { if ($result->failure_code && $result->failure_message) { $order->add_order_note("Charge was not completed, " . $result->failure_message); wp_die($result->failure_message, "Charge was not completed", array("response" => 500)); } else { wp_die("Charge still in progress", "Charge still in progress", array("response" => 500)); } } wp_die("Access denied", "Access Denied", array("response" => 401)); die; }