GlocalSaino Auctions Displayed by Shortcodes

Description

GlocalSaino Auctions Displayed by Shortcodes manages auctions through its own admin screen and a [glocalsaino_auction] shortcode that can be placed on any page or post — the description of the auctioned item does not need to live on a WooCommerce product page, or on any special page type at all. It supports two auction types: direct (the highest bid wins — for selling items) and reverse (the lowest offer wins — for sourcing services or quotes). Built on a clean MVC architecture, it delivers a full, entirely free auction experience for both administrators and visitors — no license key, no locked features, no usage caps.

Features

Auction management from the backend

  • Dedicated Auctions admin screen (custom post type) with a metabox containing:
    • Auction type — direct (highest bid wins) or reverse (lowest offer wins); locked once the first bid is placed.
    • Starting price — minimum amount for direct auctions, maximum starting amount for reverse ones.
    • Minimum step — smallest amount each bid must increase (direct) or decrease (reverse) compared to the previous one.
    • Closing date and time — the system automatically schedules closing events and notifications. Optionally leave it unset by checking No closing date, so the auction runs indefinitely until you manually give it a closing date.
    • Start date and time — optional; the auction displays as “Coming Soon” with a live countdown until it opens.
    • Instant-close price — an optional buy-it-now price for direct auctions, or a direct-award floor price for reverse ones. Direct auctions close immediately once a bid meets or exceeds this price; reverse auctions close immediately once an offer matches it exactly (no offer is accepted below it).
    • Public URL — the page where you place the shortcode, used as the link in emails and as the “View Auction” button target in the gallery shortcode.
    • Featured image — upload a photo for the auctioned item using WordPress’s standard Featured Image box; shown in the gallery shortcode.
  • Each auction shows its ready-to-use shortcode ([glocalsaino_auction id="123"]) directly in the edit screen and in the admin list, along with its type.
  • Auction categories: an optional, hierarchical taxonomy for grouping auctions (e.g. “Furniture”, “Electronics”), manageable from Auctions Categories. Use it to filter the gallery shortcode to a single category.
  • Bid list in the administration menu with columns for amount, user, auction, and date.

Shortcode — visitor experience

  • Place [glocalsaino_auction id="123"] anywhere in the content of any page or post to display the auction box:
    • Status badge (Active / Ended / Coming Soon).
    • Closing date and time in the format configured in WordPress settings.
    • Real-time countdown timer (DD:HH:MM:SS) calculated server-side to avoid clock drift.
    • Current bid and highest bidder; starting price if no bids have been placed.
    • Minimum increment indicator.
    • A matching instant-close button (“Buy now for X” / “Direct award at X”) when an instant-close price is set.
  • Bid form with server-side minimum amount validation. Bidders must be logged in.
  • When time runs out, the form hides automatically and the badge switches to “Ended”.
  • After a successful bid, the current bid updates without reloading the page.
  • History of the last 10 bids with bidder name, amount, and date/time.

Gallery shortcode

  • Place [glocalsaino_auctions] on any page to display a responsive grid of all published auctions, each card showing:
    • The auction’s featured image (or a neutral placeholder if none is set).
    • Its status badge (Active / Ended / Coming Soon).
    • A summary line — current bid or starting price, and the closing date (or “No closing date” for unlimited auctions).
    • A “View Auction” button linking to the auction’s Public URL (the button is omitted if that field is empty).
  • Optional attributes:
    • category="slug" — show only auctions in one auction category (comma-separate multiple slugs to match any of them).
    • limit="6" — cap the number of auctions shown (default: all).
  • Example: [glocalsaino_auctions category="furniture" limit="8"].

Bank transfer payment instructions

Configure your account holder name and IBAN under Auctions Settings Payment, and the “auction ended” email sent to the winner includes them automatically via the {payment_instructions} placeholder:

  • Direct auctions — the winner owes you, so they see your bank details and any additional instructions you add (e.g. a payment deadline or a reference to include).
  • Reverse auctions — it’s the other way round, you owe the winning bidder — so instead of showing your own IBAN, the email asks them to reply with their account details so you can arrange the transfer.
  • Leave the account holder name or IBAN empty to skip this entirely for direct auctions.
  • Every piece of wording used to present these details — the intro line, the “Account holder”/”IBAN”/”BIC”/”Bank” labels, and the reverse-auction request — can be reworded or translated under Auctions Settings Appearance Text strings Payment, the same as any other front-end text.

Customisable appearance

Everything under Auctions Settings Appearance, no CSS knowledge required:

  • Colors — pick the auction box background, text color, accent color (current bid amount, links), and the bid/gallery button’s background and text color, using WordPress’s standard color picker.
  • Text strings — reword any text shown on the front end: status badges, date/countdown labels, bid amount labels, the bid form, buttons and loading text, login/closed messages, the bid history, and the gallery — grouped into a table with the current default shown as each field’s placeholder. Leave a field empty to keep the default.

Automated email notifications

The plugin automatically sends the following emails:

  1. Bid confirmed bidder: confirms the bid was accepted, shows the amount, closing date, and a link to the auction’s public page.
  2. Outbid previous highest bidder: notifies the user they have been outbid and includes a link to bid again.
  3. New bid admin: notifies the administrator of every received bid with the bidder’s name and a link to the auction.
  4. Reminder all bidders and admin: sent automatically by WP-Cron before closing (lead time configurable); includes the current bid and closing date.
  5. Auction ended winner: congratulation email with the winning bid amount.
  6. Auction ended admin: summary with the winner’s name, email, and winning bid amount. If no bids were placed, the admin is still notified.

Every email’s subject and body can be customised from the Settings page, in plain text or HTML (with a full WordPress visual editor), using placeholders for dynamic content:

Placeholder
Description

{site_name}
Website name

{product_name}
Auctioned item’s name

{product_url}
Auction’s public URL

{bid_amount}
Bid amount

{bidder_name}
Bidder name

{winner_name}
Winner name

{winner_email}
Winner email address

{end_date}
Auction closing date and time

{payment_instructions}
Bank transfer details, or a request for the winner’s own details on reverse auctions (see Payment settings)

WP-Cron automation

  • When a closing date is saved on the auction, the plugin automatically schedules:
    • A reminder event before closing (lead time configurable, default 60 minutes).
    • A closing event at the exact end time.
  • If the closing date is updated, previous events are cancelled and rescheduled.

Security

  • Nonce verification on all AJAX requests and admin form submissions.
  • Sanitisation and validation of all input data.
  • Output escaped with esc_html, wp_kses_post and equivalent functions throughout all views.
  • Minimum bid calculated and validated server-side, not only on the client.
  • Prices in emails formatted with html_entity_decode to avoid visible HTML entities.

Internationalisation

  • Full i18n support; translations are loaded automatically by WordPress.
  • Source strings are in English; the .pot translation template is included in the languages/ folder for translators and tools like Loco Translate.
  • Text domain: glocalsaino-auctions-displayed-by-shortcodes.

Architecture

Clean MVC structure with clear separation of responsibilities:

  • controllers/ — CPT/taxonomy registration, admin metabox, shortcode rendering, and AJAX bid handling.
  • models/ — business logic (bid validation, notifications).
  • views/ — PHP frontend templates rendered by the auction and gallery shortcodes.
  • includes/ — static helper class and settings class.
  • assets/ — CSS stylesheet and JavaScript.
  • languages/.pot translation template.

This plugin makes no calls to any external service. Every feature — including plugin updates — runs entirely through WordPress core and your own site.

Usage

Creating an auction

  1. Go to Auctions Add Auction.
  2. Choose the auction type: direct (highest bid wins) or reverse (lowest offer wins). This cannot be changed once the first bid is placed.
  3. Fill in the fields: starting price, minimum step, and closing date/time.
  4. Optionally set a start date, an instant-close price, and the Public URL to the page where you’ll place the shortcode (used in emails).
  5. Publish the auction and copy the shortcode it displays.
  6. Paste the shortcode into any page or post describing the item or service.

Reverse auctions

Choose reverse as the auction type to run a “lowest offer wins” auction — useful for sourcing services or quotes. The starting price acts as a ceiling (the first offer must be at or below it), each subsequent offer must be strictly lower than the current best (respecting the minimum step), and an optional direct-award floor price closes the auction the moment it’s matched.

Scheduled start

In the auction’s metabox, fill in the Start date and time field. Leave it empty if you want the auction to begin immediately upon publishing.

Instant close

In the auction’s metabox, fill in the instant-close price field (labelled “buy-it-now” for direct auctions, “direct award” for reverse ones). Leave it empty to disable the feature.

Categories and images

Go to Auctions Categories to create categories (e.g. “Furniture”, “Electronics”), then assign one or more to each auction from the Categories box on its edit screen — just like WordPress’s built-in post categories. Upload a photo for the auctioned item using the Featured Image box on the same edit screen; it’s used by the gallery shortcode.

Gallery shortcode

Place [glocalsaino_auctions] on any page to list every published auction as a card grid — image, status, a bid/price summary, and a button to the auction’s page. Add category="slug" to show only one category (or several, comma-separated), and limit="6" to cap how many are shown.

Payment

Go to Auctions Settings Payment and enter your account holder name and IBAN (BIC/SWIFT, bank name, and additional instructions are optional). This is only used for direct auctions, where the winner owes you — it’s included automatically in the “auction ended winner” email via the {payment_instructions} placeholder. For reverse auctions, that same email instead asks the winning bidder to reply with their own bank details, since you’re the one who owes them.

Appearance

Go to Auctions Settings Appearance to restyle the plugin without editing any files:

  • Use the color pickers to set the auction box background, text color, accent color, and button colors.
  • Use the text strings table to reword anything shown on the front end — each field’s placeholder shows the current default; leave it empty to keep that default.

General settings

Go to Auctions Settings to:

  • Set the currency symbol and its position.
  • Set the reminder email lead time in minutes.
  • Switch between plain text and HTML email format.
  • Customise the subject and body of each email template.
  • Add custom CSS (Appearance tab).

Viewing received bids

Go to Auctions Auction Bids to see all registered bids with amount, user, auction, and date information.

Licence

This plugin is distributed under the GPLv2 or later licence.
More information: https://www.gnu.org/licenses/gpl-2.0.html

Screenshots

Installation

  1. Upload the plugin folder to /wp-content/plugins/ in your WordPress installation.
  2. Activate the plugin from the Plugins menu in the WordPress dashboard. No other plugin is required.
  3. Go to Auctions Add Auction, choose the auction type (direct or reverse), set the starting price, minimum step, and closing date, then publish.
  4. Copy the shortcode shown on the edit screen (e.g. [glocalsaino_auction id="123"]).
  5. Paste it into the page or post where you describe the auctioned item. The countdown timer and bid form will appear there automatically.
  6. Optionally, place [glocalsaino_auctions] on another page to show a gallery linking to all of your auctions.

FAQ

Do I need WooCommerce?

No. The plugin is fully independent and does not require WooCommerce or any other e-commerce plugin.

Can I change the email text?

Yes. Go to Auctions Settings Emails and edit the subject and body of each email type. Use the available placeholders to insert dynamic data.

Can users bid without an account?

Not currently — bidders must be logged in to place a bid.

What happens when the auction ends?

WP-Cron executes the closing event automatically: it sends a congratulation email to the winner and a summary to the administrator. If no bids were placed, the administrator is notified anyway. The bid form disappears wherever the shortcode is displayed.

What’s the difference between a direct and a reverse auction?

In a direct auction the highest bid wins, like a classic auction for selling an item. In a reverse auction the lowest offer wins — useful when you want service providers or suppliers to compete on price for a job you need done.

What is the instant-close feature?

When an instant-close price is set, a direct auction closes the moment a bid meets or exceeds it (“buy it now”); a reverse auction closes the moment an offer matches it exactly (“direct award”), and no offer below it is accepted. Either way the auction closes on the spot, all closing emails are sent, and the countdown disappears.

What happens if I update the closing date after saving?

The plugin automatically cancels the previous WP-Cron events and schedules new ones with the updated date.

Can an auction run without a closing date?

Yes. Check No closing date in the auction’s metabox and leave the closing date field empty — the auction stays active indefinitely (no automatic “ended” state, no reminder or closing emails) until you uncheck the box and set a real closing date.

Is the countdown timer reliable?

The remaining time is calculated server-side when the page loads and the JavaScript counts down from that value. This avoids drift caused by differences between the server clock and the user’s browser.

Is it compatible with Loco Translate?

Yes. The plugin includes a .pot translation template in the languages/ folder. Open the plugin in Loco Translate, select or create a language, and save — Loco Translate will compile the .mo file automatically.

How do I show a gallery of all my auctions?

Place [glocalsaino_auctions] on any page. Add category="slug" to only show one auction category, or limit="6" to cap how many are shown.

The gallery’s “View Auction” button doesn’t appear on one of my auctions — why?

That button links to the auction’s Public URL field. It’s hidden when that field is empty, since there’s nowhere for it to link to — fill it in on the auction’s edit screen.

Does the plugin process card payments (Stripe, PayPal, etc.)?

No. It supports bank transfer only: configure your IBAN under Auctions Settings Payment and it’s included automatically in the winner’s “auction ended” email for direct auctions. The plugin never touches card data or payment processing.

Why does the winner’s email ask for bank details instead of showing mine, for a reverse auction?

Because the money flows the other way in a reverse auction — the winning bidder is the one who gets paid, not the one who pays. The plugin doesn’t have that bidder’s bank details on file, so it asks them to reply with their account information instead of showing yours.

Can I restyle the auction box or gallery to match my theme?

Yes, without editing any plugin files or writing CSS: go to Auctions Settings Appearance and use the color pickers to set the box background, text, accent, and button colors.

Can I change the wording shown on the front end (button text, messages, etc.)?

Yes. Auctions Settings Appearance has a Text strings section listing every front-end string, grouped by where it appears. Each field shows the current default as its placeholder — type your own wording to override it, or leave it empty to keep the default.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“GlocalSaino Auctions Displayed by Shortcodes” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.4.0

  • Added extension points (actions/filters on bid submission, the auction metabox, the bid form, gallery cards, and the settings page) so an optional add-on can offer guest bidding and security deposits without forking this plugin’s code. No behavior changes with no add-on active.
  • New “Extensions” screen (Auctions menu) listing available add-ons — a static page with no external calls, since this plugin doesn’t bundle any third-party SDK.
  • Settings General now shows both shortcodes (single auction and gallery), with their optional attributes and an example — previously only documented in the readme.

1.3.0

  • Removed the Freemius SDK entirely: the plugin no longer contacts any external service for any reason, including update checks — those are now handled solely by WordPress.org.
  • Removed the free-form Custom CSS field from Appearance settings. Restyling is still available through the color pickers (auction box background, text, accent, and button colors).

1.2.0

  • New Payment settings tab: configure your account holder name and IBAN for bank transfer payment instructions, included automatically in the winner’s “auction ended” email for direct auctions (via a new {payment_instructions} placeholder). For reverse auctions, that same email asks the winning bidder for their own bank details instead, since it’s the site that owes them.
  • All of that wording (not just the emails it’s inserted into) can be reworded or translated under Appearance Text strings Payment.

1.1.1

  • Fixed: the closing date/time shown in emails ({end_date}), the auction box (“Starts:”/”Closes:”), the admin auctions list, and the gallery cards could be off by your site’s UTC offset (e.g. 1–2 hours) from the real closing time, due to a WordPress date-formatting function being used in a way that doesn’t suit a real UTC timestamp. Bid history timestamps were not affected.

1.1.0

  • Appearance tab: added five color pickers (auction box background, text, accent, button background, button text) — no CSS knowledge needed to restyle the plugin.
  • Appearance tab: every front-end text string is now editable (status badges, dates, bid form, buttons, messages, bid history, gallery) — leave a field empty to keep the built-in text.
  • Custom CSS is still there for anything the color pickers don’t cover.

1.0.0

  • Initial release.