function geodir_change_invoice_status() { global $wpdb; if (current_user_can('manage_options')) { if ($_REQUEST['postid'] != '' && $_REQUEST['postid'] != '' && isset($_REQUEST['_wpnonce'])) { if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'invoice_status_update_nonce')) { return; } $id = $_REQUEST['invoiceid']; $invoice_info = geodir_get_invoice($id); $invoice_package_id = ''; if (!empty($invoice_info) && isset($invoice_info->package_id)) { $invoice_package_id = $invoice_info->package_id; $invoice_alive_days = $invoice_info->alive_days; $invoice_status = $invoice_info->status; } $my_post = array(); $my_post['ID'] = $_REQUEST['postid']; $status = $_REQUEST['inv_status']; if ($status == 'paid') { $my_post['post_status'] = 'publish'; $post_id = $_REQUEST['postid']; $post_info = get_post($post_id); $geodir_post_info = geodir_get_post_info($post_id); if (!empty($geodir_post_info) && !empty($post_info) && isset($post_info->post_status)) { $post_package_id = $geodir_post_info->package_id; $post_expire_date = $geodir_post_info->expire_date; if (!empty($invoice_package_id) && $invoice_alive_days > 0 && $invoice_package_id == $post_package_id && strtolower($post_expire_date) != 'never' && strtotime($post_expire_date) >= strtotime(date('Y-m-d')) && $post_info->post_status == 'publish') { $expire_date = date('Y-m-d', strtotime($post_expire_date . "+" . $invoice_alive_days . " days")); geodir_save_post_meta($post_id, 'alive_days', $geodir_post_info->alive_days + $invoice_alive_days); geodir_save_post_meta($post_id, 'expire_date', $expire_date); } else { if ($post_info->post_status != 'publish') { $my_post['post_date'] = current_time('mysql'); $my_post['post_date_gmt'] = current_time('mysql', 1); } $alive_days = (int) $geodir_post_info->alive_days; if (strtolower($post_expire_date) != 'never' && strtotime($post_expire_date) < strtotime(date('Y-m-d'))) { $alive_days = $invoice_alive_days; } $expire_date = $alive_days > 0 ? date('Y-m-d', strtotime(date('Y-m-d') . "+" . $alive_days . " days")) : 'Never'; geodir_save_post_meta($post_id, 'alive_days', $alive_days); geodir_save_post_meta($post_id, 'expire_date', $expire_date); } } } else { $my_post['post_status'] = 'draft'; } // Update the post into the database wp_update_post($my_post); // Update invoice status geodir_update_invoice_status($id, $status); $msg = urlencode(GD_INVOICE_MSG); wp_redirect(admin_url() . "admin.php?page=geodirectory&tab=paymentmanager_fields&subtab=geodir_invoice_list&success_msg=" . $msg); exit; } } else { wp_redirect(home_url() . '/?geodir_signup=true'); exit; } }
function payment_handler() { if (isset($_REQUEST['geodir_ajax']) && $_REQUEST['geodir_ajax'] == 'add_listing') { switch ($_REQUEST['ajax_action']) { case "paynow": $request = isset($_SESSION['listing']) ? unserialize($_SESSION['listing']) : ''; if (isset($request['geodir_spamblocker']) && $request['geodir_spamblocker'] == '64' && isset($request['geodir_filled_by_spam_bot']) && $request['geodir_filled_by_spam_bot'] == '') { if (isset($_REQUEST['paymentmethod']) && isset($_SESSION['listing'])) { $last_id = geodir_save_listing(); $invoice_id = geodir_create_invoice($last_id, $_REQUEST['price_select'], $_REQUEST['paymentmethod'], $_REQUEST['coupon_code']); geodir_update_invoice_status($invoice_id, 'unpaid'); $paymentmethod = $_REQUEST['paymentmethod']; do_action('geodir_payment_form_handler_' . $paymentmethod, $invoice_id); } else { $postlink = get_permalink(get_option('geodir_add_listing_page')); $redirect_url = geodir_getlink($postlink, array('listing_type' => $_REQUEST['listing_type']), false); wp_redirect($redirect_url); } } else { if (isset($_SESSION['listing'])) { unset($_SESSION['listing']); } wp_redirect(home_url()); } break; } } }