If I understand your problem, this procedure should work for you:
-
create a custom post type nameofplugin_offer
-
use a form to get the offers from customers, save them as the above CPT (see wp_insert_post())
-
in your CPT archive template ( that would be archive-nameofplugin_offer.php, see Template Hierarchy), within the loop, list all the public details of the offers, then add this code before the end of the loop:
if( is_user_logged_in() ): ?> <a href="https://wordpress.stackexchange.com/questions/278878/<?php the_permalink() ?>">Offer details</a> <?php endif;
-
in your CPT template ( single-nameofplugin_offer.php) display all the public details of the offer, then wrap the private information in this function – is_user_logged_in() – similar with the code above.
Following the links you should be able to implement this procedure in your code. If you need more help for any of the above steps, let me know in a comment and I’ll expand on that point.