
In Progress
Posted
Paid on delivery
Our Elementor-based “Search” widget is meant to return only boats that are actually available, yet right now it simply reads from the custom post type and ignores all the booking and stock metadata stored by WooCommerce. I need code that intervenes at query time so the widget stops showing boats that are out of stock or already booked for the dates a visitor selects. Here is exactly what has to happen: • Hook into the WP_Query (or the specific AJAX filter the Elementor widget fires) and merge in logic from WooCommerce Bookings. • Cross-reference each returned post’s product_id against the wc_booking and/or order_item_meta tables. • Append a meta_query that removes any post whose _stock_status equals “outofstock”. • For the visitor’s requested start_date and end_date, check existing orders with status processing or completed; if there is any overlap, push that boat’s ID into post__not_in before the final query runs. I am happy with either a pure SQL JOIN approach or the official WooCommerce Bookings API—whichever proves cleaner and more future-proof. What matters is that the final JSON response powering the Elementor results contains only boats that are simultaneously in stock and free for the chosen date range. Please deliver a commented PHP snippet ([login to view URL] ready) plus brief notes describing where to hook it and how to adjust if we later add new booking statuses.
Project ID: 40322942
11 proposals
Remote project
Active 28 days ago
Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs

Hi, the key detail here is filtering the Elementor Search results before the final JSON is returned, not patching things after render. That’s the right place to solve it. I’d wire the query so stock status and booking overlap are handled together, using either the widget’s AJAX hook or WP_Query depending on how your Search widget is firing. I can deliver the functions.php-ready PHP snippet with comments, plus notes on where the hook sits and how to extend booking statuses later. One thing worth handling carefully is timezone/date normalization, since overlap checks can go wrong fast if the incoming dates don’t match WooCommerce Bookings storage format. Are your selected start_date and end_date coming through as timestamps, Y-m-d, or another format in the Elementor request?
₹1,200 INR in 5 days
0.0
0.0
11 freelancers are bidding on average ₹1,018 INR for this job

Hey, I checked your project and I’m ready to make it happen. Simple, fast, and exactly how you want it. Just message me and we’ll begin
₹1,000 INR in 1 day
2.6
2.6

Hello there, I’ve carefully reviewed your project details and fully understand your requirements. I’m confident that I can deliver high-quality results that meet your expectations within the given timeframe. I’d be happy to discuss your project further and get started right away. Best regards, Thanks
₹1,050 INR in 1 day
1.0
1.0

Customize the Elementor search query so it only returns boats that are in stock and not already booked for selected dates. Implement WooCommerce Bookings logic to filter results dynamically and ensure only available boats appear.
₹1,050 INR in 2 days
0.0
0.0

Hi, I can fix your Elementor search so it only shows boats that are in stock and available for selected dates. I’ll: → Hook into WP_Query / AJAX filter → Exclude `outofstock` products → Check booking overlap using WooCommerce Bookings data → Dynamically remove unavailable boats from results I’ve handled similar booking logic before and can implement this cleanly. Do you want this via WooCommerce Bookings API or direct SQL optimization? Ready to start immediately. – Nitesh
₹1,050 INR in 7 days
0.0
0.0

Parbhani, India
Payment method verified
Member since Nov 26, 2025
₹12500-37500 INR
₹12500-37500 INR
₹12500-37500 INR
₹12500-37500 INR
₹12500-37500 INR
₹100-400 INR / hour
$30-250 USD
$250-750 USD
£10-25 GBP
₹12500-37500 INR
$500-5000 USD
$30-250 AUD
$30-250 USD
$15-25 USD / hour
₹1500-12500 INR
₹12500-37500 INR
$750-1500 USD
$30-250 NZD
₹12500-37500 INR
$250-750 USD
€250-750 EUR
₹600-1500 INR
$15-25 USD / hour
₹600-1500 INR
$10-30 USD