I suggest using Discourse’s groups feature to create some good semblance of fine-grain control.
Anyone who has paid for classes or for single classes may be placed into specific corresponding groups created for them. And through these groups, you may then create also-corresponding categories only these-specific-groups may access.
As for freelance, one-time clients–aye; PM system makes sense to use. And then we return to your initial problem.
Ultimately, I feel my suggestions should be a generic deterrent. And if a non-staff member does attempt to ask for information you feel has monetary value on it, call them on it.
“Hey, thanks for your interest in my information; I appreciate you take value in my thoughts to ask me and thus trust what I say. I take care in dispensing that info, which is why I do charge for the specific info you are asking me for: I think a great deal about it–a lot of time–and I want to be able to provide the best information for you, tailored for you: this is why these questions must be covered with a fee. Check out my pricing pages, and if you want to discuss these options, please reply to this message.”
When you explain why you charge (you are devoting a lot of mental tasking and time to those questions) and thus place a lot of care and consideration to what answers you give then you put the onus on them to ask again, or even barter the value of the time and dedication you put to these classes and one-on-one sessions.
They just see information, not the care and passion you took to make them. Point that out–you may not need this strict option at all. And you assert the real value of your product.
EDIT: Or, Jeff’s reply below for what you seek. Classes, I personally suggest groups+categories.
Not being picky here to be a pain. Perhaps a minor edit along the lines of “the staff can always send messages to any member no matter what” may clear some confusion. Some (not a lot, obviously–hence why I admit this may be seen as a shallow suggestion to already in-practice-and-obviously-99ish%-great-to-everyone-else-sofar-copy) may read that as “staff to staff only communication”.
I do that. But it’s a tough one… Because even with multiple tries to make them read the bloody rules, still a lot don’t even bother (I know… frustrating). Then they still PM me expecting an answer. And since they are paid customers it looks bad if I don’t or if they haven’t read the rules saying that I won’t respond.
That’s why I wanted to simply block anyone to PM me, while still allowing (1) PM between themselves and (2) allowing me to start a PM with someone if I need it.
Well, actually, I’m happy with disabling PM entirely for my account as an admin
You may also consider idea I have put into practice with a previous (almost ten year old; now closed) community I ran–
Make the admin account a strict “root/utility-only” account and then make a Leader-level account for yourself. Now you can disable PMs on that Leader-only account. Admin account becomes the “if I need to send a PM for technical reasons, then here: not related to conversation and/or business dealings.” And those who insist on sending you these “just want your small opinion” PMs to your admin account shall go unanswered–as long as you make it clear the admin account is only as a tech-support channel; reporting issues RE: using your site or Discourse instance et al.
That sounds like they know that too and are taking advantage of you from that: they are previous clients, paid for some classes already gone and archived, or some freelance. That does not give them carte blanche to pinch free intel off you because of a past that is open and closed; paid and done.
And if they get upset, learn the lesson I learned long ago: you are not going to please everyone. After you accept that truth, you get more respect when you stand up for yourself, even though from that you are now not necessarily liked first. I–from personal experience–prefer that. Respect be business gold versus the lowly pewter: only being liked or seen as “nice”. And thus seen as possibly a pushover.
(Apologies; this second suggestion does not really attempt to “answer” your technical question. It does offer insight into a larger situation I see, that this technical question only seeks to avoid or hide from and ultimately be part of your paid membership biz model–and a weakness in it some be exploiting.)
About your second point: totally agreed on that! I do let it go the “nice” guy approach most of the time Usually it’s my way or the highway.
That being said, if we can avoid unecessary conflict — specially with paid customers — then that would be ideal.
You should see some controversial posts that I promote via Facebook ads: everyone and their dog have an opinion about it! And a LOT of them simply hate me just because… well… I’m there. And they got curse someone lol
It sounds like you want to hide—which is perfectly acceptable!
If there isn’t a coding option, can’t you just ignore all PMs?
If they don’t have it, maybe Discourse needs a “Automatically send PMs to Trash” (like gmail labels), with a button to “Flush” it whenever you want. Or auto setting to flush the junk daily or on set days, weekly, or monthly.
But I would be concerned that some things might be of a more sensitive nature where members would not want to make a public post but would feel comfortable sharing knowing that the information was more private.
I recently lost my job, my wife left and took the kids and the house, and I’m now living at the YMCA.
I have a new job lined up, but it will take a while for me to get back on my feet.
Can I arrange to make installment payments?
An OK question as a one-to-one with the Admin. NOT something I’d want posted for anyone and everyone to see.
IMHO instead of seeking for a code solution to the problem, if a particular member is harassing you with messages it’s time to take more personalized steps to have them stop.
Sorry to bring up an old topic, but I tried disabling this feature and don’t see the option for staff to continue to message. Do you have to already have an existing thread? Also, if a staff member messages a regular user, can the regular user respond?