Function Reference: geodir_payment_detail_fields_update

Summary

Updates the invoice and post details after invoice created.

Global Values

$gd_session
(object) (required) GeoDirectory Session object.

Default: None

Parameters

$invoice_id
(int) (required) The payment invoice id.

Default: None

Change Log

Since: 1.0.0

Source Code

function geodir_payment_detail_fields_update($invoice_id) {
	global $gd_session;
	
	$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);
		
		$post_status = get_post_status($invoice_info->post_id);
		
		// if listing not expired and goes to upgrade listing with same package
		$update = true;
		if (!empty($_REQUEST['price_select']) && !empty($_REQUEST['paymentmethod']) && !empty($_REQUEST['pid']) && $_REQUEST['ajax_action']=='paynow') {
			$session_listing = $gd_session->get('listing');
			$prev_package_id = $gd_session->get('geodir_prev_package_id') ? $gd_session->get('geodir_prev_package_id') : geodir_get_post_meta($_REQUEST['pid'], 'package_id', true);
			$prev_expire_date = $gd_session->get('geodir_prev_expire_date') ? $gd_session->get('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 (!empty($_POST['gd_pay_type']) && $_POST['gd_pay_type'] == 'renew' && $post_status != 'draft') {
			$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 );
		}
	}	
}