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 geodir_payment_detail_fields_update($invoice_id) { $invoice_info = geodir_get_invoice($invoice_id); if (!empty($invoice_info)) { $payment_info = array(); $payment_info['paymentmethod'] = $invoice_info->paymentmethod; $payment_info['paid_amount'] = $invoice_info->paied_amount; geodir_save_post_info($invoice_info->post_id, $payment_info); // if listing not expired and goes to upgrade listing with same package $update = true; if (!empty($payment_info) && !empty($_REQUEST['price_select']) && !empty($_REQUEST['paymentmethod']) && !empty($_REQUEST['pid']) && $_REQUEST['ajax_action'] == 'paynow') { $session_listing = isset($_SESSION['listing']) && is_serialized($_SESSION['listing']) ? unserialize($_SESSION['listing']) : NULL; $prev_package_id = !empty($_SESSION) && !empty($_SESSION['geodir_prev_package_id']) ? $_SESSION['geodir_prev_package_id'] : geodir_get_post_meta($_REQUEST['pid'], 'package_id', true); $prev_expire_date = !empty($_SESSION) && !empty($_SESSION['geodir_prev_expire_date']) ? $_SESSION['geodir_prev_expire_date'] : geodir_get_post_meta($_REQUEST['pid'], 'expire_date', true); if ($prev_package_id == $_REQUEST['price_select'] && $prev_expire_date && strtotime($prev_expire_date) >= strtotime(date('Y-m-d'))) { $update = false; } } // if ($update && $payment_info['paid_amount'] > 0) { $post['ID'] = $invoice_info->post_id; $post['post_status'] = 'draft'; $last_post_id = wp_update_post($post); } } /*print_r($session_listing); print_r($_SESSION); print_r($_POST); if($prev_package_id==$_REQUEST['price_select']){echo '###1';} if($prev_expire_date){echo '###2';} if(strtotime($prev_expire_date) >= strtotime(date('Y-m-d'))){echo '###3';} exit;*/ }