Loading
Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    AI দিয়ে ফ্রি ল্যান্ডিং পেজ ডিজাইন সম্পূর্ণ ফ্রি 

    02/12/2025

    WooCommerce Pre-Orders Plugin ব্যবহার গাইড

    17/09/2025

    Automation WooCommerce Orders with WhatsApp

    29/08/2025
    Facebook X (Twitter) Instagram YouTube LinkedIn TikTok
    Wednesday, February 18
    Facebook X (Twitter) Instagram
    This is FL FaysalThis is FL Faysal
    • Home
    • Branding
    • Tuotorial
    • Freelancing
      • Fiverr
      • UP Work
    • Ethical Hacking
    • WordPress
    • Web Design
    • About Me
    This is FL FaysalThis is FL Faysal
    Home » WooCommerce ফেক অর্ডার বন্ধ করার সেরা উপায়
    Tuotorial

    WooCommerce ফেক অর্ডার বন্ধ করার সেরা উপায়

    Fl_FaysalBy Fl_Faysal13/06/2025No Comments5 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr WhatsApp VKontakte Email
    WooCommerce-এ ফেক অর্ডার কিভাবে বন্ধ করবেন প্লাগইন ছাড়াই (সম্পূর্ণ গাইড)
    Share
    Facebook Twitter LinkedIn Pinterest

    🛡️ WooCommerce-এ ফেক অর্ডার কিভাবে বন্ধ করবেন প্লাগইন ছাড়াই (সম্পূর্ণ গাইড)

    বর্তমানে WooCommerce ওয়েবসাইটে ফেক অর্ডার একটি সাধারণ কিন্তু গুরুতর সমস্যা। কেউ বারবার ফোন নাম্বার বা ইমেইল দিয়ে অর্ডার করে কিন্তু সেই অর্ডার কখনো সম্পন্ন করে না। এতে করে স্টক ম্যানেজমেন্ট, রিপোর্টিং, কাস্টমার সার্ভিস সবই নষ্ট হয়ে যায়।

    এই ব্লগে আমরা দেখাবো কীভাবে একটি মাত্র PHP কোড ব্যবহার করে আপনি ফেক অর্ডার পুরোপুরি ব্লক করতে পারেন, প্লাগইন ছাড়াই!

    ⚠️ ফেক অর্ডারের ক্ষতি কী?

    • প্রতিনিয়ত ভুয়া অর্ডার আসে
    • COD (Cash on Delivery) মিসইউজ হয়
    • বারবার একই নাম্বার/ইমেইল দিয়ে অর্ডার
    • প্রোডাক্ট রিজার্ভ হয়ে থাকে অথচ অর্ডার কমপ্লিট হয় না
    • আসল কাস্টমার বঞ্চিত হয়

    ✅ এই সমাধানটি কী কী ফিচার দিচ্ছে?

    🔐 ডিভাইস আইডি ট্র্যাকিং

    একই ডিভাইস থেকে একাধিক অর্ডার ব্লক করে যতক্ষণ না আগের অর্ডার কমপ্লিট হয়।

    📧 ইমেইল ও 📞 ফোন নাম্বার ব্লক

    একই ফোন বা ইমেইল দিয়ে বারবার অর্ডার করা যাবে না।

    🌍 আইপি অ্যাড্রেস চেক

    একই IP থেকে আগের অর্ডার পেন্ডিং থাকলে নতুন অর্ডার ব্লক হবে।

    ⏳ টাইম/অর্ডার স্ট্যাটাস ভিত্তিক

    আগের অর্ডার “Completed” না হলে নতুন অর্ডার নেওয়া হবে না।

    🎨 সুন্দর স্টাইলিশ পপআপ

    অর্ডার ব্লক হলে সুন্দর একটি মেসেজ পপআপ হিসেবে আসবে, ইউজার ফ্রেন্ডলিভাবে।

    📲 কল ও WhatsApp বাটন

    পপআপে থাকবে “Call Now” ও “WhatsApp” বাটন, যাতে ইউজার সরাসরি যোগাযোগ করতে পারে।

    🔁 CartFlows সাপোর্টেড

    CartFlows দিয়ে বানানো কাস্টম চেকআউট পেজেও একই রুল কাজ করবে।

    🔧 কীভাবে কোডটি কাজ করে?

    1. যখন একজন ইউজার অর্ডার করতে যায়, তখন সিস্টেম চেক করে সে আগেই কোনো পেন্ডিং অর্ডার করেছে কিনা।
    2. যদি করে থাকে, তবে নতুন অর্ডার ব্লক করে দেয়।
    3. এর পরিবর্তে একটি সুন্দর Error Popup দেখায়, যেখানে কাস্টমারের সঙ্গে যোগাযোগের অপশন থাকে।

    📥 কোড কোথায় বসাবেন?

    • আপনার থিমের functions.php ফাইলে
    • অথবা Code Snippets প্লাগইন ব্যবহার করে
    • চাইলে কাস্টম প্লাগইন হিসেবেও ব্যবহার করতে পারেন

    🛠️ কাস্টমাইজেশন টিপস

    • শুধু আপনার নম্বরটা কোডে বসিয়ে দিলেই কাজ করবে
    • WhatsApp লিংকও নিজের মতো করে সেট করতে পারবেন
    • CSS দিয়ে চাইলে ব্র্যান্ড কালারে পপআপ সাজাতে পারবেন
    <?php
    /**
     * Plugin Name: WooCommerce Multi-Factor Order Blocker with Stylish Popup + CartFlows Support
     * Description: Block multiple orders from same device, phone or IP until previous order completes. Supports normal WooCommerce checkout & CartFlows Ajax checkout. Shows popup with Call & WhatsApp buttons.
     * Version: 1.1
     * Author: Your Name
     */
    
    // === ১. সাধারণ WooCommerce Checkout Process এ ব্লক চেক করা ===
    add_action('woocommerce_checkout_process', 'custom_block_multiple_orders_check');
    function custom_block_multiple_orders_check() {
        $email = sanitize_email($_POST['billing_email'] ?? '');
        $phone = sanitize_text_field($_POST['billing_phone'] ?? '');
        $ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown_ip';
        $device_id = $_COOKIE['device_id'] ?? '';
    
        // আগের অর্ডার খুঁজছি যা সম্পন্ন হয়নি
        $args = [
            'limit' => -1,
            'status' => ['pending', 'processing', 'on-hold'],
            'billing_email' => $email,
        ];
    
        $orders = wc_get_orders($args);
        $block_order = false;
    
        foreach ($orders as $order) {
            $order_phone = $order->get_billing_phone();
            $order_ip = get_post_meta($order->get_id(), '_user_ip', true);
            $order_device = get_post_meta($order->get_id(), '_device_id', true);
    
            if (
                ($phone && $phone === $order_phone) ||
                ($ip && $ip === $order_ip) ||
                ($device_id && $device_id === $order_device)
            ) {
                $block_order = true;
                break;
            }
        }
    
        if ($block_order) {
            // ====== নিচের দুই নম্বর পরিবর্তন করো ======
            $phone_number = '01234567890';      // কল করার নম্বর
            $whatsapp_number = '8801234567890'; // WhatsApp নম্বর (country code সহ)
            // ========================================
    
            $msg = '
            <div class="custom-popup-error">
                <p>⚠️ আপনার একটি অর্ডার এখনও সম্পন্ন হয়নি। নতুন অর্ডার করতে নিচের নম্বরগুলোতে যোগাযোগ করুন।</p>
                <div class="btn-group">
                    <a href="tel:' . esc_attr($phone_number) . '" class="btn-call" target="_blank">📞 Call Now</a>
                    <a href="https://wa.me/' . esc_attr($whatsapp_number) . '" class="btn-whatsapp" target="_blank">💬 WhatsApp</a>
                </div>
            </div>';
            wc_add_notice($msg, 'error');
        }
    
        // ডিভাইস আইডি Cookie তৈরি (যদি না থাকে)
        if (!$device_id) {
            $device_id_new = bin2hex(random_bytes(10));
            setcookie('device_id', $device_id_new, time() + (86400 * 30), "/"); // ৩০ দিন মেয়াদ
        }
    }
    
    // === ২. CartFlows Ajax Checkout Submit এও ব্লক চেক করা ===
    add_action('wp_ajax_wc_cartflows_submit_checkout', 'custom_cartflows_ajax_checkout_check');
    add_action('wp_ajax_nopriv_wc_cartflows_submit_checkout', 'custom_cartflows_ajax_checkout_check');
    
    function custom_cartflows_ajax_checkout_check() {
        $email = sanitize_email($_POST['billing_email'] ?? '');
        $phone = sanitize_text_field($_POST['billing_phone'] ?? '');
        $ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown_ip';
        $device_id = $_COOKIE['device_id'] ?? '';
    
        $args = [
            'limit' => -1,
            'status' => ['pending', 'processing', 'on-hold'],
            'billing_email' => $email,
        ];
    
        $orders = wc_get_orders($args);
    
        foreach ($orders as $order) {
            $order_phone = $order->get_billing_phone();
            $order_ip = get_post_meta($order->get_id(), '_user_ip', true);
            $order_device = get_post_meta($order->get_id(), '_device_id', true);
    
            if (
                ($phone && $phone === $order_phone) ||
                ($ip && $ip === $order_ip) ||
                ($device_id && $device_id === $order_device)
            ) {
                // ====== নিচের দুই নম্বর পরিবর্তন করো ======
                $phone_number = '01234567890';      // কল করার নম্বর
                $whatsapp_number = '8801234567890'; // WhatsApp নম্বর (country code সহ)
                // ========================================
    
                wp_send_json_error([
                    'messages' => '<div class="custom-popup-error">
                        <p>⚠️ আপনার একটি অর্ডার এখনও সম্পন্ন হয়নি। নতুন অর্ডার করতে নিচের নম্বরগুলোতে যোগাযোগ করুন।</p>
                        <div class="btn-group">
                            <a href="tel:' . esc_attr($phone_number) . '" class="btn-call" target="_blank">📞 Call Now</a>
                            <a href="https://wa.me/' . esc_attr($whatsapp_number) . '" class="btn-whatsapp" target="_blank">💬 WhatsApp</a>
                        </div>
                    </div>'
                ]);
            }
        }
    
        wp_send_json_success();
    }
    
    // === ৩. অর্ডার তৈরি হলে IP ও Device ID মেটাডেটা সেভ করা ===
    add_action('woocommerce_checkout_update_order_meta', function ($order_id) {
        $ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown_ip';
        $device_id = $_COOKIE['device_id'] ?? 'unknown_device_id';
    
        update_post_meta($order_id, '_user_ip', sanitize_text_field($ip));
        update_post_meta($order_id, '_device_id', sanitize_text_field($device_id));
    });
    
    // === ৪. স্টাইলিং ===
    add_action('wp_head', function () {
        if (is_checkout() || function_exists('cartflows')) { // Checkout অথবা CartFlows পেজে CSS যোগ করবো
            ?>
            <style>
                .custom-popup-error {
                    background: #fff0f0;
                    border: 2px solid #ff4d4d;
                    padding: 20px 25px;
                    border-radius: 10px;
                    color: #b30000;
                    font-size: 17px;
                    font-weight: 600;
                    text-align: center;
                    box-shadow: 0 6px 15px rgba(255, 0, 0, 0.2);
                    animation: popupFadeIn 0.7s ease forwards;
                    margin-bottom: 20px;
                }
                .custom-popup-error .btn-group {
                    margin-top: 15px;
                    display: flex;
                    justify-content: center;
                    gap: 20px;
                }
                .custom-popup-error .btn-call,
                .custom-popup-error .btn-whatsapp {
                    display: inline-block;
                    padding: 12px 22px;
                    border-radius: 30px;
                    font-weight: 700;
                    color: white !important;
                    text-decoration: none;
                    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
                    transition: background-color 0.3s ease;
                    min-width: 130px;
                }
                .custom-popup-error .btn-call {
                    background-color: #e60000;
                }
                .custom-popup-error .btn-call:hover {
                    background-color: #b30000;
                }
                .custom-popup-error .btn-whatsapp {
                    background-color: #25D366;
                }
                .custom-popup-error .btn-whatsapp:hover {
                    background-color: #1DA851;
                }
                @keyframes popupFadeIn {
                    0% {opacity: 0; transform: translateY(-10px);}
                    100% {opacity: 1; transform: translateY(0);}
                }
            </style>
            <?php
        }
    });
    
    // === ৫. Checkout পেজে error message এটো-স্ক্রল করার জন্য JS ===
    add_action('wp_footer', function () {
        if (is_checkout()) {
            ?>
            <script>
                document.addEventListener("DOMContentLoaded", function () {
                    const errorBox = document.querySelector(".woocommerce-error");
                    if(errorBox){
                        errorBox.scrollIntoView({behavior: "smooth"});
                    }
                });
            </script>
            <?php
        }
    });
    
    Follow on Facebook Follow on YouTube Follow on TikTok
    Share. Facebook LinkedIn WhatsApp Email
    Previous ArticleHow I Enabled 50% Advance Payment in WooCommerce Without Using Any Plugin
    Next Article WordPress এ কিভাবে অ্যাডভান্স পেমেন্ট নেওয়া যায় (BD Shop Style)

    Related Posts

    WooCommerce Pre-Orders Plugin ব্যবহার গাইড

    17/09/2025

    Automation WooCommerce Orders with WhatsApp

    29/08/2025

    WC Incomplete order Recovery (Single-file WooCommerce Plugin)

    23/08/2025

    How to Create a WordPress Website for Selling Digital Products

    10/08/2025
    fast
    Follow Me
    • Facebook
    • YouTube
    • LinkedIn
    • WhatsApp

    Categories

    • BRANDING
    • FREELANCING
    • FIVERR
    • UPWORK
    • ETHICAL HACKING
    • WORDPRESS
    • ABOUT FL FAYSAL

    FREELANICNG COURSE

    • WORDPRESS
    • WEB SECURITY
    • BUNDLE COURSE
    • Privacy Policy

    Subscribe to Updates

    © 2026 FL Blog. Designed by FL Faysal.
    Facebook Vimeo WhatsApp TikTok Instagram YouTube

    Type above and press Enter to search. Press Esc to cancel.