home.social

Search

9 results for “woooo”

  1. Woohoo! So happy to see the first commercial flight, Jetstar JQ362 to the Gold Coast, depart from the brand new Western Sydney International Airport (aka Nancy Bird-Walton) in Australia.

    #australia #aviation #sydney #WSI #airport #AvGeek

  2. I run the WooCommerce store behind a small online clothing shop. Most of the orders are made to order and ship from print partners in several countries, so the delivery promise differs by destination. Google's merchant listings can show that promise, and the return window, right in search results, but only if the product markup says so. WooCommerce's built-in Product schema does not.

    This post walks through adding hasMerchantReturnPolicy and shippingDetails to the offer that WooCommerce already prints, without a plugin.

    What WooCommerce outputs by default


    WooCommerce prints JSON-LD for each product through the WC_Structured_Data class. The offer part comes from generate_product_data(), and before it is added to the markup it passes through a filter:

    apply_filters( 'woocommerce_structured_data_product_offer', $markup_offer, $product );

    That filter is the cleanest place to hook in. It receives one offer array and the WC_Product, and whatever you return becomes the offer in the final JSON-LD.

    The return policy


    Schema.org models returns as a MerchantReturnPolicy. For a fixed return window, Google wants the country it applies to, the category of the policy and the number of days. The shop in this example accepts returns for 30 days.

    function shop_return_policy() {
    return array(
    '@type' => 'MerchantReturnPolicy',
    'applicableCountry' => 'US',
    'returnPolicyCategory' => 'https://schema.org/MerchantReturnFiniteReturnWindow',
    'merchantReturnDays' => 30,
    'returnMethod' => 'https://schema.org/ReturnByMail',
    );
    }

    Add returnFees only if you can state it truthfully for every product. Leaving out a property is better than guessing.

    Shipping details per destination


    Delivery time is split into handling time (the days before the parcel leaves) and transit time. Here processing takes 1 to 5 business days, and transit depends on the region, so the code builds one OfferShippingDetails entry per country:

    function shop_shipping_details() {
    $transit = array(
    'US' => array( 8, 15 ),
    'CA' => array( 8, 15 ),
    'GB' => array( 8, 15 ),
    'AU' => array( 10, 20 ),
    );

    $details = array();
    foreach ( $transit as $country => $days ) {
    $details[] = array(
    '@type' => 'OfferShippingDetails',
    'shippingDestination' => array(
    '@type' => 'DefinedRegion',
    'addressCountry' => $country,
    ),
    'shippingRate' => array(
    '@type' => 'MonetaryAmount',
    'value' => SHOP_SHIPPING_RATE, // your real rate for this destination
    'currency' => 'USD',
    ),
    'deliveryTime' => array(
    '@type' => 'ShippingDeliveryTime',
    'handlingTime' => array(
    '@type' => 'QuantitativeValue',
    'minValue' => 1,
    'maxValue' => 5,
    'unitCode' => 'DAY',
    ),
    'transitTime' => array(
    '@type' => 'QuantitativeValue',
    'minValue' => $days[0],
    'maxValue' => $days[1],
    'unitCode' => 'DAY',
    ),
    ),
    );
    }
    return $details;
    }

    The rate is a constant here on purpose. If the rate differs by country or by cart total, read it from your shipping zones instead of hard-coding one number for everything.

    Hooking it in


    add_filter( 'woocommerce_structured_data_product_offer', function ( $offer, $product ) {
    if ( ! $product instanceof WC_Product || ! $product->is_purchasable() ) {
    return $offer;
    }
    $offer['hasMerchantReturnPolicy'] = shop_return_policy();
    $offer['shippingDetails'] = shop_shipping_details();
    return $offer;
    }, 10, 2 );

    Put this in a small site plugin or in the child theme's functions.php. A site plugin survives a theme switch, which is why I prefer it.

    Checking the result


    View the page source of a product and search for application/ld+json. WooCommerce prints the block near the end of the page. Then paste the product URL into Google's Rich Results Test and into the Schema Markup Validator at validator.schema.org. The first tells you whether the page is eligible for merchant listing features, and the second catches typos in types and property names.

    After a few days, the Merchant listings report in Search Console shows whether Google has picked the fields up across the catalog, along with any products that are missing a required property.#woocommerce #wordpress #php #seo #software #coding #development #engineering #inclusive #community
    Adding return and shipping details to WooCommerce product schema

  3. Woohoo! Freight Fate: Delivery complete.
    Delivered 15 tons of retail goods to Sheboygan, Wisconsin.
    Trip time: 4.1 hours, on time.
    Receiver service after check-in: 0.3 hours.
    It is 1:22 AM.
    Parked at Sheboygan Company Yard for the Sheboygan, Wisconsin service area.
    Carrier gross: 1,157 dollars.
    Carrier-paid or reimbursed charges: 0 dollars, including tolls 0 and accessorials none.
    Business status: company driver.
    No driver-responsibility charges and no balance owed.
    Net driver pay: 458 dollars.
    Money after settlement: 31,350 dollars.
    On-time delivery bonus: 151 dollars.
    Route: Escanaba to Green Bay to Sheboygan.
    Distance credited: 176 miles.
    Level up! You are now level 11: Specialized Company Driver. Unlock: Specialized freight now appears more often on your board. #FreightFateRuns

  4. Benefits of Hosting #WooCommerce Store on #cPanel #VPS

    This article outlines the benefits of hosting WooCommerce store on cPanel VPS.
    🛒 Benefits of Hosting WooCommerce Store on cPanel VPS: The Expert Guide
    Ready to turbocharge your WooCommerce store? Hosting on a cPanel VPS is the smart move for serious growth. Let’s dive into ...
    Continued 👉 blog.radwebhosting.com/benefit #speedupwordpress #modsecurity #ecommerce #quic #shoppingcart #websiteperformance #quiccloud #performance #wordpresssecurity

  5. Learn how Equalize Digital partnered with WooCommerce to identify and remediate accessibility barriers, document WCAG 2.2 conformance, and make accessibility information more transparent in the WooCommerce Marketplace.

    equalizedigital.com/woocommerc

    #WordPress #WooCommerce #WebAccessibility #a11y #WCAG

  6. 📝 New Article!

    European Accessibility Act (EAA) pour WooCommerce : Comment auditer votre boutique

    Préparez votre boutique WooCommerce pour l'European Accessibility Act (EAA). Découvrez pourquoi les analyses de pages rendues sont essentielles et comment générer le document de l'Annexe V.

    Read here:
    groundedwp.com/fr/blog/eaa-acc

    #WordPress #WebDev #Accessibility #AI

  7. 👋 Hey DEV Community!


    Have you ever tried setting up a WhatsApp CRM for your startup, agency, or side project?

    If you have, you’ve probably hit the grim reality of the current WhatsApp SaaS ecosystem:

    • 💸 Insane Seat-Based Pricing: Paying $50 to $150 per agent per month just to let a couple of teammates share one phone number.
    • 🔒 Aggressive Vendor Lock-In: Your customer conversations, contacts, and custom fields trapped inside closed proprietary databases.
    • 🤖 Restricted AI Gating: Rigid chatbots with heavy markups on tokens and zero ability to choose your own LLM.
    • 🏋️ Bloated Self-Hosted Alternatives: Requiring a bulky 2GB+ RAM multi-container stack just to spin up basic webhook handlers.

    I got tired of these artificial barriers. So I decided to build OpenWAB — a lightweight, 100% self-hostable WhatsApp CRM powered by a Universal Multi-Provider AI Engine.

    And the best part? Zero software subscription fees. Zero seat pricing. No middlemen. You only pay Meta’s raw API charges directly to Meta.

    I’m preparing to launch OpenWAB as a premier open-source project, and I’m looking for passionate developers, UI/UX designers, and open-source contributors to help build the future of WhatsApp automation! 🤝

    ⚡ What is OpenWAB?


    OpenWAB is a production-grade, self-hosted WhatsApp CRM designed from day one to run on ultra-affordable infrastructure (strictly engineered to run under a ~510 MB active RAM budget on a standard $5/month VPS).

    It connects directly to the official Meta WhatsApp Cloud API, avoiding unofficial web scrapers, QR code hacks, and risk-prone reverse-engineered protocols.

    +----------------------------------------------------------------------------+
    | OpenWAB Flow |
    +----------------------------------------------------------------------------+
    | |
    | 📱 WhatsApp Customer |
    | │ |
    | ▼ (Webhook < 50ms) |
    | ⚡ Next.js 16 Webhook Ingestion ────► 🔒 HMAC SHA-256 Signature Guard |
    | │ |
    | ▼ (BullMQ Queues + Redis) |
    | 📦 Message Worker ──────────────► 🐘 PostgreSQL + Drizzle ORM |
    | │ │ |
    | ├─────────────────────────┐ ▼ |
    | ▼ ▼ 📡 SSE Real-Time Broker |
    | 🤖 Universal AI Worker 📥 Media Download │ |
    | (OpenAI/Anthropic/ (Encrypted Temp) ▼ |
    | Gemini/Groq/Ollama) 💻 Shared Agent Inbox |
    | |
    +----------------------------------------------------------------------------+

    🔥 Features Built & Running Today


    Here is what's already built, tested, and running under the hood:

    1. 💬 Real-Time Shared Agent Inbox


    • Multi-Agent Collaboration: Your entire support or sales team can work together on a single official WhatsApp Business number.
    • Server-Sent Events (SSE) Streaming: Ultra-lean, zero-polling live updates powered by an in-memory Pub/Sub broker — no heavy WebSocket server needed.
    • Human-in-the-Loop Takeover: Instant toggle allows agents to pause AI auto-replies on the fly and resume manual customer conversations with zero latency.
    • Threaded Quoted Replies: Send outbound messages quoting specific customer messages natively.


    2. 🧠 Universal Multi-Provider AI Engine (BYOK)


    • Bring Your Own Key (BYOK): Plug in your own API keys for OpenAI, Anthropic Claude, Google Gemini, Groq, OpenRouter, Mistral, Ollama, and DeepSeek.
    • Reasoning Token Suppression: Strips internal Chain-of-Thought (<think>...</think>) reasoning tokens so customers never see messy internal model thoughts.
    • Sliding-Window Burst Debouncing: When a customer sends 3–4 rapid-fire messages ("Hi", "I have a question", "Are you available?"), OpenWAB pauses for 4 seconds, combines them into one context payload, and generates a single thoughtful reply.
    • Dynamic Failover: If your primary model hits rate limits or service hiccups, it seamlessly falls back to your configured secondary model.


    3. 🛡️ Military-Grade Security & Vault Architecture


    • Hardware-Grade AES-256-GCM Vault: Meta access tokens, App secrets, and AI provider keys are encrypted at rest with authenticated encryption.
    • Webhook HMAC-SHA256 Verification: Pre-deserialization HMAC verification defends against DoS and memory exhaustion attacks.
    • Zero Client Leaks: Encrypted secrets never touch the browser bundle or client-side telemetry.


    4. ⚙️ Robust WhatsApp Cloud API Engineering


    • Monotonic Message Status Ladder: Prevents out-of-order webhook deliveries (read arriving before delivered) from regressing message checkmarks backwards.
    • 24-Hour Messaging Window Guard: Warns agents when Meta's 24-hour customer care window has elapsed, prompting pre-approved template messages.
    • Asynchronous Media Mirroring: Inbound photos, voice notes, documents, and videos are automatically downloaded into encrypted storage before Meta’s short-lived CDN URLs expire.
    • Interactive Messages: Built-in validator for WhatsApp reply buttons (1–3 buttons) and interactive list menus.


    5. 🗃️ Lightweight Data Layer


    • Drizzle ORM + PostgreSQL: Blazing-fast, type-safe queries with minimal memory overhead compared to heavier ORMs.
    • Better-Auth: Secure, session-based authentication with role-based access.
    • BullMQ & Redis: Distributed background workers (message, ai, media, broadcast, outbound) ensuring zero dropped webhooks during traffic spikes.


    🛠️ The Tech Stack


    We intentionally selected a modern, developer-friendly, and lightweight stack:

    LayerTechnologyFrameworkNext.js 16 (App Router + Turbopack Standalone)LanguageTypeScript (Strict mode)StylingVanilla CSS / Modern Tailwind CSS v4 & Radix PrimitivesDatabasePostgreSQL + Drizzle ORMQueuing & CacheRedis + BullMQAuthenticationBetter-AuthRealtimeHTTP/2 Server-Sent Events (SSE) BrokerAI IntegrationUniversal Streaming Client (Multi-Provider BYOK)

    🗺️ What We're Building Next (Roadmap)


    This is where YOU come in! Here are the big features on our upcoming development roadmap:

    • [ ] 🤖 Model Context Protocol (MCP) Server: Allow external AI agents (like Claude Desktop, Cursor, and Antigravity) to query contacts and trigger messages via standard MCP tools.
    • [ ] 📊 Kanban Sales Deals Pipeline: Drag-and-drop sales pipeline stages directly linked to WhatsApp chat threads.
    • [ ] 🏢 Multi-WABA & Multi-Phone Support: Route multiple WhatsApp phone numbers across multiple internal workspaces.
    • [ ] 🔑 Scoped Public REST API (/api/v1): Secure API keys with fine-grained permissions for external webhooks, Zapier, and n8n integrations.
    • [ ] 🦾 And Much more features.


    💡 Why Contribute?


    By contributing to OpenWAB, you will:

    1. Work with modern tech: Production Next.js 16, BullMQ concurrency, Drizzle ORM, and high-performance AI streaming.
    2. Solve real-world distributed challenges: Webhook deduplication, HMAC cryptography, sliding-window debouncing, and monotonic state machines.
    3. Shape an open-source alternative: Help break the monopoly of expensive SaaS WhatsApp platforms and empower indie hackers, small businesses, and agencies worldwide.


    🙋 How to Get Involved


    Whether you are a frontend wizard, a backend specialist, a DevOps enthusiast, or a technical writer, we would love your help!

    We're looking for contributors in:


    • Frontend / UI: Refining the message composer, chat bubbles, audio player waveforms, and responsive mobile views.
    • Automations: Building the React Flow canvas for visual automations.
    • DevOps: Creating 1-click deploy templates for Docker Compose, Coolify, Railway, and Dokploy.
    • Integrations: Adding connectors for Shopify, WooCommerce, Supabase, and Webhooks.


    💬 Let's Discuss in the Comments!


    • What is the #1 feature you miss in existing WhatsApp CRMs?
    • What AI model would you use for automated customer replies?
    • Are you interested in contributing to the upcoming open-source release?

    Drop a comment below, leave your feedback, or share what you'd like to see added. Let’s build something incredible together! 🚀🔥

    Note : I have vibe coded this whole project cuz i am a lazy developer but i have checked code for any tweaks and fixes, surprisingly AI wrote code more efficiently and optimal. So basically for further development i need other developers support and contribution to make this platform more effective.

    #opensource #webdev #nextjs #ai #software #coding #development #engineering #inclusive #community
    🚀 I Built a Self-Hosted, Low-Memory WhatsApp CRM with Universal AI (And I’m Looking for Contributors!)

Share on Mastodon

Enter the server where you have an account.