?php /** * ru-product-enhancements.php — RetailUnlimit Product Page Improvements * ====================================================================== * Adds: * 1. Stock / availability badge with shipping estimate * 2. B2B Quote Request button (next to Add to Cart) * 3. Warranty & Return policy trust snippet */ if (!defined('ABSPATH')) exit; // ── 1. STOCK / AVAILABILITY BADGE ──────────────────────────────────────────── // Fires just before the price (priority 9 = just before default price at 10) add_action('woocommerce_single_product_summary', 'ru_availability_badge', 9); function ru_availability_badge() { global $product; if (!$product) return; $stock_status = $product->get_stock_status(); $stock_qty = $product->get_stock_quantity(); $manage_stock = $product->managing_stock(); if ($stock_status === 'instock') { if ($manage_stock && $stock_qty !== null && $stock_qty <= 5) { // Low stock $badge_html = '
Only ' . intval($stock_qty) . ' left — Estimated Shipping: 2-5 Business Days
'; } else { // In stock $badge_html = '
In Stock — Estimated Shipping: 1-3 Business Days
'; } } elseif ($stock_status === 'onbackorder') { $badge_html = '
Available for Backorder — Additional lead time may apply. Contact us for delivery estimates.
'; } else { $badge_html = '
Out of Stock — Contact us for availability and alternative sourcing options.
'; } // Check for special order meta $special_order = get_post_meta(get_the_ID(), '_special_order', true); if ($special_order) { $badge_html .= '
Special Order — Non-cancellable once placed
'; } echo $badge_html; } // ── 1b. SHARED FULFILLMENT-STATE MAPPING (Issue #108) ──────────────────────── // Reusable state classifier — #109 Product Fulfillment State vocabulary. // Used by category/search card badges (ru_card_availability_badge). // Deliberately excludes shipping-estimate copy and Special Order status; // both are surface-specific rendering concerns handled separately. // ru_availability_badge() (single-product page) is NOT yet refactored to // use this function — that is explicitly deferred (see #108 follow-on). function ru_map_to_fulfillment_state($product) { $stock_status = $product->get_stock_status(); $stock_qty = $product->get_stock_quantity(); if ($stock_status === 'onbackorder') { return array( 'state' => 'available_for_backorder', 'label' => 'Available for Backorder', 'class' => 'ru-stock-backorder' ); } if ($stock_status !== 'instock') { return array( 'state' => 'out_of_stock', 'label' => 'Out of Stock', 'class' => 'ru-stock-out' ); } if ($product->managing_stock() && $stock_qty !== null && $stock_qty <= 5) { return array( 'state' => 'low_stock', 'label' => 'Only ' . intval($stock_qty) . ' left', 'class' => 'ru-stock-low' ); } return array( 'state' => 'in_stock', 'label' => 'In Stock', 'class' => 'ru-stock-in' ); } // ── 1c. CATEGORY/SEARCH CARD AVAILABILITY BADGE (Issue #108) ───────────────── function ru_card_availability_badge() { global $product; if (!$product) { return; } $info = ru_map_to_fulfillment_state($product); echo '
' . esc_html($info['label']) . '
'; } // ── 2. B2B QUOTE REQUEST BUTTON ─────────────────────────────────────────────── // Fires after Add to Cart button (priority 32 = just after default 30) add_action('woocommerce_single_product_summary', 'ru_b2b_quote_button', 32); function ru_b2b_quote_button() { global $product, $post; $product_name = get_the_title(); $mpn = get_post_meta($post->ID, '_mpn', true); $sku = get_post_meta($post->ID, '_sku', true); $price = $product->get_price(); $product_id = $post->ID; $quote_url = '/b2b-enterprise-quote/?prod_name=' . urlencode($product_name) . '&mpn=' . urlencode($mpn) . '&sku=' . urlencode($sku) . '&price=' . urlencode($price) . '&product_id=' . $product_id; echo '
Request B2B Quote
'; } // ── 3. WARRANTY & RETURN POLICY TRUST SNIPPET ──────────────────────────────── // Fires after the Add to Cart area (priority 35) add_action('woocommerce_single_product_summary', 'ru_trust_snippet', 35); function ru_trust_snippet() { echo '
Manufacturer Warranty All products include full manufacturer warranty
30-Day Returns Hassle-free returns on eligible items
Secure Checkout SSL encrypted · Net terms available for B2B
Fast Shipping Same/next business day dispatch
'; } // ── CSS FOR ALL THREE ELEMENTS ──────────────────────────────────────────────── add_action('wp_head', 'ru_product_enhancements_styles'); function ru_product_enhancements_styles() { if (!(is_product() || is_shop() || is_product_category() || is_product_tag())) { return; } echo ''; } B2B Enterprise Quote - RetailUnlimit.com
Dark Light

B2B Enterprise Quote

Enterprise Hardware Catalog

High-value enterprise equipment — request a custom quote with volume pricing, financing, or leasing options.

ProAV EPSON EBPU2220B Laser Projector, Interchangeable Lens, 20,000 Lumens, WUXGA with 4KE, SDI, Black
Epson

ProAV EPSON EBPU2220B Laser Projector, Interchangeable Lens, 20,000 Lumens, WUXGA with 4KE, SDI, Black

Starting at $36,942.83
📦
APC

ADVANTAGE PRIME SERVICE PLAN FOR POWER MODULE WITH GALAXY VL, CRAC COOLING, UP T

Starting at $37,014.99
📦
APC

(1) YEAR ADVANTAGE ULTRA SERVICE PLAN FOR (1) SY 500 KVA UPS, (4) XR…

Starting at $37,074.99
📦
APC

APC SYMMETRA MW 1000KW 480V SPARE PART KIT LEVEL 2

Starting at $37,155.47
📦
APC

START-UP SERVICE 5X8 FOR POWER SKID WITH GALAXY VX UP TO 1500KW

Starting at $37,189.99
📦
APC

START-UP SERVICE 5X8 FOR POWER SKID WITH GALAXY VX UP TO 2000KW

Starting at $37,189.99
📦
APC

ADVANTAGE PLUS SERVICE PLAN FOR ALL-IN-ONE WITH GALAXY VS, DX COOLING, UP TO 80K

Starting at $37,269.99
📦
Epson

ProAV EPSON EBPQ2216B 16000LM 4K Projector, Black

Starting at $37,354.08
📦
Epson

ProAV EPSON EBPQ2216W 16000LM 4K Projector, White

Starting at $37,354.08
📦
APC

ADVANTAGE PLUS SERVICE PLAN FOR ALL-IN-ONE WITH EASY 3M, CW COOLING, UP TO 180KW

Starting at $37,399.99
📦
APC

START-UP SERVICE 5X8 FOR ALL-IN-ONE WITH EASY 3M, DX COOLING, UP TO 180KW

Starting at $37,419.99
📦
HPE

HPE Networking Comware 7510X Type C Fabric/Main Processing Unit

Starting at $37,443.36

Request Volume / Custom Quote

Tell us what you need and we'll respond within 24 hours with our best pricing.

Questions? Call (469) 251-0066 or email sales@retailunlimit.com

SHOPPING CART

close