?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.

📦
APC

MODULAR UPS REVITALIZATION SERVICE

Starting at $21,904.99
📦
APC

ASSEMBLY SERVICE 5X8 FOR (1) GALAXY VX 1

Starting at $21,984.99
📦
SonicWall

SECURE UPGRADE BUNDLE 3YR APSS FOR NSA 4800 INCLUDING 1YR CSE

Starting at $21,990.24
📦
SonicWALL

SONICWALL NSA 6700

Starting at $22,004.81
📦
APC

GALAXY VX 500/625/750KW SPARE PART KIT LEVEL 2

Starting at $22,031.93
📦
APC

SYMMETRA LX – POWER ARRAY – EXTERNAL – ONLINE – AC 120/208/240 V (…

Starting at $22,044.99
📦
APC

ADVANTAGE PRIME SERVICE PLAN FOR ALL-IN-ONE WITH EASY 3S, CW COOLING, UP TO 20KW

Starting at $22,079.99
📦
APC

INFRASTRUXURE CENTRAL, 500 NODE LICENSE ONLY

Starting at $22,089.99
HPE Aruba Networking CX 6300M 48p SR10 1G/2.5G/5G/10G PTP/AVB Class8 PoE 4p 100G MACsec Switch – Switch – horizontal surface mounting only – L3 – managed – 48 x 100/1000/2.5G/5G/10GBase-T (PoE++) + 4 x 10 Gigabit / 25 Gigabit / 40 Gigabit / 100 Gigabit QSFP28 (uplink) – front and side to back – rack-mountable – PoE++ (2640 W)
HPE

HPE Aruba Networking CX 6300M 48p SR10 1G/2.5G/5G/10G PTP/AVB Class8 PoE 4p 100G MACsec…

Starting at $22,131.65
📦
APC

APC SYMMETRA MW 1200KW 400V SPARE PART KIT LEVEL 2

Starting at $22,173.79
📦
Eaton

Eaton Powerware PW9355, 15000VA Tower UPS

Starting at $22,187.59
📦
HPE

HPE Aruba Networking CX 8100 24x10G Base-T 4x10G SFP+ 4×40/100G QSFP28 FB 3Fan 2AC…

Starting at $22,188.51

Explore Equipment Leasing

Spread the cost over 24-60 months. Great for servers, networking equipment, and workstations.

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

SHOPPING CART

close