Function Reference: geodir_change_invoice_status

Summary

This function has not been documented yet.

Source Code

function geodir_change_invoice_status() {
	global $wpdb;
	
	$all_status = geodir_payment_all_payment_status();

	if ( current_user_can( 'manage_options' ) ) {
		if ( isset( $_REQUEST['invoice_action'] ) && $_REQUEST['invoice_action'] == 'invoice' ) {
			$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '';
			
			if ( !wp_verify_nonce( $wpnonce, 'invoice_status_update_nonce' ) ) {
				return;
			}
			
			$invoice_id = isset( $_REQUEST['invoiceid'] ) ? (int)$_REQUEST['invoiceid'] : '';
			$invoice_info = geodir_get_invoice( $invoice_id );
			
			$status = isset( $_REQUEST['inv_status'] ) ? sanitize_text_field($_REQUEST['inv_status']) : '';
			
			if ( in_array( $status, $all_status ) && !empty( $invoice_info ) && $status != $invoice_info->status ) {
				// Update invoice status
				geodir_update_invoice_status( $invoice_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;
			}
		}
		
		return;
	} else {
		wp_redirect( geodir_login_url() );
		exit;
	}	
}