Hello,
GeoDirectory doesn’t have any specific features for that, besides allowing you to restrict whether a certain GD post type can be added from the front end or not.
These options are at GD – Design – Navigation
For page restriction you will need a membership plugin like S2 Members. We don’t recommend any particular plugin.
If you are looking for help with setup, you can find a GD Expert here: https://geodirectoryexperts.com
A normal WordPress query could be used to find out if a user has already created a post of a particular type.
Example: https://wordpress.stackexchange.com/questions/95630/get-count-of-custom-post-type-created-by-current-user
Editing of the core plugin files is not recommended, but you can see this link for some best practices for overriding templates: https://wpgeodirectory.com/docs/customizing-geodirectory-templates/
It seems like, from what you have described, that this might be an alteration to the add-listing template. This is a complex page and we won’t be able to help with the customization as we do not do customizations here in the forum.
https://wpgeodirectory.com/support-policy/
It is possible to create an add listing form for a particular post type using the shortcode, and then it may be possible to restrict access to that with a membership plugin or custom code based on custom coded criteria.
https://wpgeodirectory.com/docs/core-shortcodes/#add-listing