Function Reference: geodir_update_invoice_status

Summary

This function has not been documented yet.

Actions

‘geodir_payment_invoice_status_changed’ [Line: 1439]

Source Code

function geodir_update_invoice_status( $invoice_id, $new_status = '', $subscription = '' ) {
	global $wpdb;
	
	$new_status = $new_status != '' ? geodir_strtolower( $new_status ) : '';
	
	if ( !$invoice_id > 0 || $new_status == '' ) {
		return false;
	}
	
	$all_status = geodir_payment_all_payment_status();
	
	$invoice_info = geodir_get_invoice( $invoice_id );
	
	if ( in_array( $new_status, $all_status ) && !empty( $invoice_info ) ) {	
		$old_status = $invoice_info->status;
		
		if ( $new_status != $old_status || $subscription) {
			$sql_subscription = $subscription !== '' ? ", subscription = " . (int)$subscription : '';
			
			$query = $wpdb->prepare( "UPDATE `" . INVOICE_TABLE . "` SET `status` = %s " . $sql_subscription . " WHERE id = %d ", array( $new_status, $invoice_id ) );
			$wpdb->query( $query );
			
			geodir_payment_invoice_coupon_usage_count($invoice_id);
			
			do_action( 'geodir_payment_invoice_status_changed', $invoice_id, $new_status, $old_status, (bool)$subscription );
			
			return $invoice_id;
		}
	}
	
	return false;
}