Osclass Themes and Osclass Plugins

Why One-Click 'Mark as' Flags Stopped Working

One click used to flag a listing. Crawlers did the same. Osclass 8.4 asks for a reason, details, and a way to talk to the seller before you decide.
Product Updates & Releases
1. September 2026
8 min read
54 views
Why One-Click 'Mark as' Flags Stopped Working

If you have run an Osclass site for more than a few years, you know the old Mark as links. Spam. Duplicate. Offensive. Wrong category. Expired. One click, and the listing was flagged.

That feature landed around Osclass 2.4 or 3.0. We will not pretend we remember the exact point release. It was about 15 years ago. In 2008 or 2010 a public link was a fair report button. A visitor saw a bad ad, clicked, and you got a counter in admin.

That model does not hold up on a live classifieds site today.

Two problems with one-click flags

Crawlers treat a report link like any other URL

The old report was a GET link. No form. No login. You could put nofollow on it. You could tell robots.txt to skip it. Search crawlers and other bots still walk listing pages and follow the URLs they find.

Each hit looked like a person had marked the listing. You opened admin and saw spam, duplicate, or offensive flags on ads that were fine. The queue was noise. The numbers stopped meaning anything.

Real people had no place to explain

Even a genuine report was thin. You got a type and nothing else. Spam. Offensive. No "this phone number is on 12 other ads" and no "these photos belong to another shop." You still had to open the listing and guess.

If the listing was borderline, you had no thread with the seller. No place to ask what happened. No place for them to disagree on the record.

Osclass listing detail page with a Report listing link under the listing actions

What Osclass 8.4 puts in its place

Reports replace Mark as. A logged-in visitor opens a form, picks a reason, writes what they saw, and can attach a file. That ticket lands in a new Reports section in oc-admin. You can ask the seller for their side on the same record.

Old theme links still work. A Mark as spam URL now opens the report form with Spam already selected. You do not have to rewrite every theme the day you upgrade.

What the visitor actually does

From a listing they report the listing. From a public profile they report the user. Guests see the link; submitting it requires login. You cannot report your own listing or your own profile.

The form asks for three things:

  • Reason (required). The first option is empty: Select a reason... so nobody submits the default by accident.
  • Details (required). At least a short comment about what is wrong.
  • One file, if you turned attachments on: a screenshot, extra photo, or document. Files go to oc-content/uploads/report/.

Listing reasons include spam, duplicate listing, fraud or scam, wrong category, prohibited item, misleading information, already sold, abusive or offensive, copyright, legal issue, and other. User reports use the subset that fits a profile (spam, fraud, abusive, impersonation, and similar). You choose which reasons stay enabled.

After submit, the reporter does not get a public ticket page. They can get an email that you received the report, and another when you close it. That is on purpose: the person who filed it is not sitting in a chat with the seller.

Osclass report listing form with reason dropdown, details field and submit button

What you see in oc-admin

There is a dedicated Reports area:

  • A manage table with search, filters, bulk actions and row actions.
  • An edit page with the reason, the comment, the attachment, status, and the conversation history.
  • A settings page for limits, emails, seller feedback, auto-close, retention and attachments.
  • Toolbar notices for new reports and unseen replies.
  • A dashboard widget with report counts.

Statuses you will actually use:

  • Submitted: new, waiting for you.
  • In progress: you are handling it.
  • On hold: paused; nothing expected right now.
  • Awaiting feedback: the reported user can reply on the front report page (if you enabled that).
  • Resolved / Rejected / Cancelled: closed. You can reopen a closed report; it returns to In progress.

Osclass backoffice Reports table with status, reason, listing and user columns

Talk to the seller on the report itself

This is the gap the old feature never filled.

Someone reports a listing. You read the reason and the comment. If it is obvious spam, you act on the listing and close the report. If it is not obvious, you set status to Awaiting feedback and write what you need from the seller: explain the photos, confirm the price, say whether the item is still for sale.

The seller gets an email and can open the front report page (friendly URL like report/view/{id}). They add their comment on that report. Status moves back to In progress. You can ask again. You close it when you have enough.

A few rules that keep this usable:

  • The reporter's identity is never shown to the seller.
  • Only the reported user (and admins) can open the front report page.
  • The seller can send that front reply while status is Awaiting feedback. Then it is your turn again.
  • You can keep the whole discussion on the report. You do not need a side email thread that the rest of the team cannot find.

Front Osclass report page for the seller with awaiting feedback status and a reply form

Who gets an email

Each notice is a checkbox in Reports settings. Leave on what you will actually read.

  • Admin: new report submitted.
  • Admin: a new reply was added.
  • Reporter: report received (email only; they have no front ticket).
  • Reporter: report closed (resolved, rejected or cancelled).
  • Seller: a report was filed about their listing or profile.
  • Seller: that report was closed.

Templates are email_report_admin and email_report_user. Edit the wording under Settings > Emails. Placeholders cover the event, report id, type, reason, status, comment and links.

Settings to check after you upgrade

Path: oc-admin > Reports > Settings

Turn these on first if you moderate by hand:

  1. Reports enabled (logged-in users only).
  2. Daily limit per user, so one account cannot flood the queue.
  3. Notify admin on new report.
  4. Allow the reported user to reply when status is Awaiting feedback.
  5. Attachments, if you want screenshots with the report.

Then decide, based on volume:

  • Notify the seller when a report is filed. Useful on a small site. Noisy if you get a lot of junk reports.
  • Auto-close tickets that sit in Awaiting feedback with no activity, after N days.
  • Retention in months. 0 keeps reports forever. Daily cron removes older ones when the value is above 0.
  • Which reasons appear on the form. Disable the ones your vertical does not need.
  • Whether the same user may file more than one report on the same listing or profile.

Optional, and off by default: store website contact form messages as Contact form reports (type webcontact, no listing or user attached). That switch lives in General settings, not Reports. Skip it unless you want contact mail in the same queue.

Osclass Reports settings page with enable, daily limit and email notification options

Old Mark as vs new Reports

 

Mark as (legacy)

Reports (Osclass 8.4)

How it fires

GET link, one click

Logged-in form, POST

What you receive

A type flag on the listing

Reason, required details, optional file

Who can be reported

Listing only

Listing or user

Conversation

None

Admin and seller on the same ticket

Emails

None built in

Admin, reporter, seller (per setting)

Crawlers

Each hit counted as a report

Following the URL does not submit the form

Where you work

Listing stats / reported items

Reports queue, filters, statuses

If your theme still prints Mark as links

Leave them for now if you want. osc_item_mark_url, osc_item_mark_disable and ItemActions::mark() still exist so older themes do not break. Those URLs open the report form and preselect the matching reason:

  • spam --> Spam
  • bad category --> Wrong category
  • repeated / duplicate --> Duplicate listing
  • offensive --> Abusive or offensive
  • expired --> Already sold or unavailable

When you next edit the theme, switch to osc_report_item_url() and osc_report_user_url(). Hide the control with osc_can_report_item() / osc_can_report_user() so owners do not see a report button on their own ads. Guests still see the link; login happens when they try to submit.

A handling loop that stays short

  1. Open the new report. Read the reason and the comment. Open the listing or profile.
  2. If it is clearly spam, fraud, or a banned item: act on the listing or user, then mark the report Resolved. If the report itself was wrong, mark it Rejected.
  3. If you need the seller: set Awaiting feedback and write the question in the report.
  4. When they reply, status returns to In progress. Decide. Close it.
  5. If they never reply, auto-close can finish idle tickets after the days you set.

Frequently asked questions

Question: Why did Mark as spam flags appear on good Osclass ads before Osclass 8.4 Reports?

Answer: Old Mark as used GET links with no login, so crawlers hitting those URLs counted as flags. Osclass 8.4 Reports replaces that with a POST form. A logged-in visitor picks a reason, writes details, and can attach a file. Guests can see the link but cannot submit. Test the form on a listing after you upgrade.

Question: What must a visitor fill on the Osclass 8.4 Reports form?

Answer: Osclass 8.4 Reports requires a reason and a details comment. An optional file can go to oc-content/uploads/report/ if you enabled attachments. The first reason option is empty so nobody submits the default. Listing and user reports use different reason lists. Save Reports settings, then open a listing as a logged-in user.

Question: Can guests submit an Osclass 8.4 listing report without login?

Answer: Guests see the report link but Osclass 8.4 requires login to submit. You cannot report your own listing or profile. After submit, reporter, reported user, and admin can be part of the report workflow. Emails on receive and close are optional. Log in on staging and send a test report to confirm the flow.

Question: How do I ask the reported user about an Osclass 8.4 report?

Answer: In Osclass 8.4, set the report to Awaiting feedback when you want the reported user to reply. That user can answer from the report page, then status returns to In progress. The reporter is not hidden from that workflow. Statuses include Submitted, In progress, On hold, Awaiting feedback, Resolved, Rejected, and Cancelled.

Question: What happens to old Mark as links after Osclass 8.4 with osc_item_mark_url?

Answer: Keep osc_item_mark_url in the theme after Osclass 8.4; it opens the Reports form with that reason already selected, for example Spam. You do not have to rewrite every theme the day you upgrade. New themes should call osc_report_item_url() for a report button. Reports replaces the legacy Mark as GET flow.

Question: How do I hide report links on my own Osclass listing with osc_can_report_item?

Answer: Use osc_can_report_item() in the theme to hide the control on the viewer own ads. Osclass 8.4 already blocks submitting a report on your own listing. The helper keeps the button from showing. Reports settings in oc-admin control reasons, attachments, and retention. Check an item you own after the theme change.

About the Author

My passion is building classifieds marketplaces, automating workflows, and turning messy data into useful products. From PHP, HTML, CSS, and JavaScript to Python, crawlers, imports, and SEO, I enjoy solving technical challenges and sharing lessons learned from real-world projects. Most ideas start with a problem, a cup of coffee, and a curiosity to see how far automation can go.
Osclass, PHP, JavaScript, CSS, Python
52 posts Publishing since 04/2018

Shopping cart
Support tickets Downloads Reviews Orders & Invoices Payments
Dashboard My profile Change password Download user data
Logout