function _pre_checkout_validate() { $validate = true; if (!STCart::get_total()) { STTemplate::set_message(__('Can not process free payment', ST_TEXTDOMAIN), 'danger'); return false; } if ($this->is_available()) { $paypal = new STPaypal(); $pp = $paypal->test_authorize(); if (isset($pp['redirect_url']) and $pp['redirect_url']) { $pp_link = $pp['redirect_url']; } if (!isset($pp_link)) { STTemplate::set_message(isset($pp['message']) ? $pp['message'] : __('Paypal Payment Gateway Validate Fail'), 'danger'); $validate = false; } } return $validate; }
function get_paypal_args($order) { $order_id = $order['id']; // PayPal Args $paypal_args = array_merge(array('cmd' => '_cart', 'business' => st()->get_option('paypal_email'), 'no_note' => 1, 'currency_code' => TravelHelper::get_current_currency('name'), 'charset' => 'utf-8', 'rm' => is_ssl() ? 2 : 1, 'upload' => 1, 'return' => add_query_arg(array('gateway_name' => 'st_paypal', 'order_code' => $order_id, 'status' => 'success'), STCart::get_success_link()), 'cancel_return' => add_query_arg(array('gateway_name' => 'st_paypal', 'order_code' => $order_id, 'status' => 'error'), STCart::get_success_link()), 'page_style' => $this->page_style, 'paymentaction' => 'sale', 'bn' => 'ShinethemeCart', 'invoice' => 'ST_' . $order_id)); $paypal_args['no_shipping'] = 1; if (!($line_items = $this->get_line_items($order))) { //If can not show line itemss //Show all $args[] = array('name' => __('Travel Order', ST_TEXTDOMAIN), 'quantity' => 1, 'price' => STCart::get_total()); } else { $paypal_args = array_merge($paypal_args, $line_items); } return $paypal_args; }
<td class="text-left title"><?php st_the_language('tax:'); ?> </td> <td class="text-right"><?php echo TravelHelper::format_money($tax_money); ?> </td> </tr> <tr> <td class="text-left title"><?php st_the_language('total:'); ?> </td> <td class="text-right"><?php echo TravelHelper::format_money(STCart::get_total()); ?> </td> </tr> </table> </div> --> </div> </div> </div> <?php } ?> </div>
static function booking_form_submit($item_id = '') { if (STInput::post('st_payment_gateway') and wp_verify_nonce(STInput::post('travel_order'), 'submit_form_order')) { $payment_gateways = STInput::post('st_payment_gateway'); $payment_gateway_used = false; if (!is_array($payment_gateways) or empty($payment_gateways)) { return array('status' => false, 'message' => __('Sorry! No payment gateway found', ST_TEXTDOMAIN)); } else { foreach ($payment_gateways as $key => $value) { $payment_gateway_id = $key; $payment_gateway_used = STPaymentGateways::get_gateway($payment_gateway_id); } //Validate gateway is avaible if (!isset($payment_gateway_id) or !$payment_gateway_used) { return array('status' => false, 'message' => sprintf(__('Sorry! Payment Gateway: <code>%s</code> is not available!', ST_TEXTDOMAIN), $payment_gateway_id)); } } // Action before submit form do_action('st_before_form_submit_run'); $form_validate = true; if (!self::check_cart()) { return array('status' => false, 'message' => __('Your cart is currently empty.', ST_TEXTDOMAIN), 'code' => '1'); } if ($coupon_code = STInput::request('coupon_code')) { $status = self::do_apply_coupon($coupon_code); if (!$status['status']) { return array('status' => false, 'message' => $status['message']); } } if (st()->get_option('booking_enable_captcha', 'on') == 'on') { $st_security_key = STInput::request('st_security_key'); if (!$st_security_key) { return array('status' => false, 'message' => __('You dose not enter the captcha', ST_TEXTDOMAIN)); } $valid = STCoolCaptcha::validate_captcha($st_security_key); if (!$valid) { return array('status' => false, 'message' => __('Captcha is not correct', ST_TEXTDOMAIN), 'error_code' => 'invalid_captcha'); } } $default = array('st_note' => '', 'term_condition' => '', 'create_account' => false, 'paypal_checkout' => false); extract(wp_parse_args($_POST, $default)); //Term and condition if (!$term_condition) { return array('status' => false, 'message' => __('Please accept our terms and conditions', ST_TEXTDOMAIN)); } $form_validate = self::validate_checkout_fields(); if ($form_validate) { // Payment method pre checkout validate $form_validate = $payment_gateway_used->_pre_checkout_validate(); } if ($form_validate) { // Allow to hook before save order $form_validate = apply_filters('st_checkout_form_validate', $form_validate); } if (!$form_validate) { $message = array('status' => false, 'message' => STTemplate::get_message_content(), 'form_validate' => 'false'); STTemplate::clear(); return $message; } $post = array('post_title' => __('Order', ST_TEXTDOMAIN) . ' - ' . date(get_option('date_format')) . ' @ ' . date(get_option('time_format')), 'post_type' => 'st_order', 'post_status' => 'publish'); //save the order $insert_post = wp_insert_post($post); if ($insert_post) { $cart = self::get_items(); // Update checkout fields $fields = self::get_checkout_fields(); if (!empty($fields)) { foreach ($fields as $key => $value) { update_post_meta($insert_post, $key, STInput::post($key)); } } update_post_meta($insert_post, 'st_tax', STCart::get_tax()); update_post_meta($insert_post, 'st_tax_percent', STCart::get_tax(true)); update_post_meta($insert_post, 'st_is_tax_included_listing_page', STCart::is_tax_included_listing_page() ? 'on' : 'off'); update_post_meta($insert_post, 'st_currency', TravelHelper::get_current_currency('symbol')); update_post_meta($insert_post, 'coupon_code', STCart::get_coupon_code()); update_post_meta($insert_post, 'coupon_amount', STCart::get_coupon_amount()); update_post_meta($insert_post, 'status', 'pending'); update_post_meta($insert_post, 'st_cart_info', $cart); update_post_meta($insert_post, 'total_price', STCart::get_total()); update_post_meta($insert_post, 'ip_address', STInput::ip_address()); update_post_meta($insert_post, 'order_token_code', wp_hash($insert_post)); self::saveOrderItems($insert_post); if (!is_user_logged_in()) { $user_name = STInput::post('st_email'); $user_id = username_exists($user_name); //Now Create Account if user agree if ($create_account) { if (!$user_id and email_exists($user_name) == false) { $random_password = wp_generate_password($length = 12, $include_standard_special_chars = false); $userdata = array('user_login' => $user_name, 'user_pass' => $random_password, 'user_email' => $user_name, 'first_name' => STInput::post('st_first_name'), 'last_name' => STInput::post('st_last_name')); $user_id = wp_insert_user($userdata); //Create User Success, send the nofitication wp_new_user_notification($user_id, $random_password); } } } else { $user_id = get_current_user_id(); } if ($user_id) { //Now Update the Post Meta update_post_meta($insert_post, 'id_user', $user_id); //Update User Meta update_user_meta($user_id, 'st_phone', STInput::post('st_phone')); update_user_meta($user_id, 'first_name', STInput::post('st_first_name')); update_user_meta($user_id, 'last_name', STInput::post('st_last_name')); update_user_meta($user_id, 'st_address', STInput::post('st_address')); update_user_meta($user_id, 'st_address2', STInput::post('st_address2')); update_user_meta($user_id, 'st_city', STInput::post('st_city')); update_user_meta($user_id, 'st_province', STInput::post('st_province')); update_user_meta($user_id, 'st_zip_code', STInput::post('st_zip_code')); update_user_meta($user_id, 'st_country', STInput::post('st_country')); update_user_meta($user_id, 'st_zip_code', STInput::post('st_zip_code')); } update_post_meta($insert_post, 'payment_method', $payment_gateway_id); do_action('st_booking_success', $insert_post); // Now gateway do the rest return $payment_gateway_used->do_checkout($insert_post); } else { return array('status' => false, 'message' => __('Can not save order.', ST_TEXTDOMAIN)); } } }