etimbersale.com is a timber auction platform built on WordPress using the Ultimate Auction Pro plugin. The client is planning to revive the platform and requires a key usability enhancement: the ability for users to place bids on multiple auctions — up to approximately 20 — from a single page, without having to navigate into each individual auction product page.
Currently, Ultimate Auction Pro requires users to open each auction product page individually to place a bid. This creates significant friction when a user wants to bid across multiple active auctions simultaneously.
The goal of this project is to enhance the existing Ultimate Auction Pro default shortcode so that each auction card on the listing page includes a fully functional inline bid widget. Users can place bids on any number of auctions from this single page without any page navigation, with real-time bid price updates shown as other users bid. No new shortcode will be created — the existing default shortcode will be updated.
The following describes the end-to-end user experience for the single-page bidding feature, from the user visiting the page through to a successful bid placement.
Phase 1 — Viewing the Auction Listing
Step 1: User Visits the Single-Page Bidding View
The user navigates to a dedicated URL (e.g. etimbersale.com/live-auctions) — or any page where the shortcode is placed. All active auctions are displayed as cards on this page. Up to ~20 auctions can be shown, with pagination available if more are needed.
Step 2: Each Auction Card is Displayed
Every auction card shows: product image, auction title, current highest bid, countdown timer (days / hours / minutes / seconds), a bid amount input field, and a Bid button. No navigation to individual product pages is required.
Phase 2 — Placing a Bid
Step 4: User Enters a Bid Amount
The user types their bid amount directly into the input field on the auction card. The system shows the minimum required bid amount as a helper note below the input field.
Step 5: User Clicks the Bid Button
The user clicks the Bid button on that card. The bid is submitted via AJAX — no page reload occurs. The user can continue browsing other auction cards while the bid is being processed.
Step 6: Success or Error Feedback Displayed
The result is shown directly on the auction card: • Success: “Your bid has been placed successfully” — current price updates to the new bid • Error (bid too low): “Please enter a bid higher than the current bid of $X” • Error (not logged in): “Please log in to place a bid” • Error (auction ended): “This auction has ended”
Step 7: User Bids on Additional Auctions
The user can immediately move to the next auction card and repeat the process — placing bids across multiple auctions from the same page without any navigation.
The following assumptions have been made in scoping this feature. Please review and confirm before development begins.
A1. The existing Ultimate Auction Pro default shortcode will be enhanced — no new shortcode will be created. The inline bid widget will be added to the existing listing page output wherever the default shortcode is already placed.
A2. The page will display all currently active auctions — up to approximately 20 per page. Pagination will be available if more than 20 active auctions exist.
A3. Only live/active auctions will be displayed on this page. Ended, draft, or scheduled auctions will not appear.
A4. The design of the auction cards will follow the existing site theme styling. No bespoke design is included in this scope.
B1. Users must be logged in to place a bid. Guests will see a “Please log in to bid” message when they attempt to bid.
B2. All existing bid validation rules from the plugin apply — minimum bid increment, reserve price, auction end time — and are enforced on submission.
B3. Proxy bidding (Set My Maximum Bid) is out of scope for this feature. Only standard bid placement is included.
B4. Buy Now functionality is out of scope for this listing view. Users who want to use Buy Now must visit the individual product page.
C1. Current bid prices will update in real time using AJAX polling at a defined interval (e.g. every 5–10 seconds). True WebSocket-based push updates are out of scope.
C2. The countdown timer per auction card will update in real time on the client side using JavaScript.
C3. If an auction ends while a user is on the page, the card will update to show the auction as ended and disable the bid input.
D1. This feature is scoped and tested for up to 50 simultaneous users as specified by the client. Performance beyond this threshold is subject to the hosting server specifications.
D2. AJAX polling frequency will be optimised to minimise server load — a sensible interval (e.g. 10 seconds) will be used rather than continuous polling.
D3. We recommend enabling server-side caching (e.g. WP Rocket or similar) and real server cron jobs on the hosting environment for optimal performance.
E1. Proxy bidding / Set My Maximum Bid on the listing page is out of scope.
E2. Buy Now button on the listing page is out of scope.
E3. Watchlist (Add to Watchlist) on the listing page is out of scope unless agreed separately.
E4. Custom bespoke UI/UX design is out of scope — styling will match the existing site theme.
E5. WebSocket or server-sent events for real-time updates are out of scope — AJAX polling will be used.
We will extend the Ultimate Auction Pro default shortcode output by injecting the inline bid widget into each auction card rendered by the existing shortcode. No new shortcode will be created. The enhancement will be implemented via WordPress template overrides and hooks — without modifying the plugin core — ensuring compatibility with future plugin updates. All bid submissions will continue to use the plugin’s existing AJAX bid processing endpoints.
5.1 Default Shortcode Enhancement
5.2 Inline Bid Widget (AJAX)
5.3 Countdown Timer
6.1 Default Shortcode Enhancement — Inline Bid Widget on Listing Cards
Estimated effort: 10 hours
6.2 Bid Price Updates
Estimated effort: 8 hours
6.3 Inline Bid Submission & Validation
Estimated effort: 3 hours
6.5 Responsive Design & CSS
Estimated effort: 6 hours
6.7 Testing & Deployment
Estimated effort: 3 hours
| Deliverable | Hours |
| Default Shortcode Enhancement — Inline Bid Widget on Listing Cards | 10 |
| Real-Time Bid Price Updates (AJAX — no page reload) | 8 |
| Bid Validation & User Feedback (error/success messages) | 3 |
| Responsive Design & CSS Styling | 6 |
| Testing & Deployment | 3 |
| TOTAL ESTIMATED HOURS | 30 |
The following deliverables will be provided as part of this task:
Project Cost