افزودن فرم بررسی وضعیت سفارش ووکامرس با شماره سفارش (بدون ورود کاربر)

در فروشگاه‌های اینترنتی مبتنی بر ووکامرس، گاهی مشتریان پس از خرید نیاز دارند بدون ورود به حساب کاربری، تنها با داشتن شماره سفارش وضعیت سفارش خود را بررسی کنند. این امکان به‌ویژه در فروشگاه‌هایی که کاربران معمولاً مهمان (Guest) هستند یا از لاگین استفاده نمی‌کنند، بسیار کاربردی است.

در این مقاله یاد می‌گیرید چطور با ایجاد یک شورت‌کد اختصاصی، فرم ساده‌ای برای بررسی وضعیت سفارش بسازید که فقط با وارد کردن شماره سفارش، وضعیت آن را نمایش دهد.


✅ چرا چنین فرمی مفید است؟


? مراحل ساخت فرم بررسی سفارش در ووکامرس

۱. افزودن شورت‌کد به قالب

برای شروع، وارد فایل functions.php قالب فعال وردپرس خود شوید (ترجیحاً child theme برای جلوگیری از حذف در بروزرسانی).

سپس کد زیر را قرار دهید:

phpCopyEdit
function zidar_check_order_status_form() { ob_start(); if (isset($_POST['zidar_order_id'])) { $order_id = absint($_POST['zidar_order_id']); $order = wc_get_order($order_id); echo '<div class="zidar-order-result">'; if ($order) { echo '<p><strong>شماره سفارش:</strong> ' . esc_html($order->get_order_number()) . '</p>'; echo '<p><strong>وضعیت:</strong> ' . esc_html(wc_get_order_status_name($order->get_status())) . '</p>'; } else { echo '<p style="color:red;">سفارشی با این شماره یافت نشد.</p>'; } echo '</div>'; } ?> <form method="post" class="zidar-order-status-form" style="display:flex; gap:10px; align-items:center; flex-wrap:wrap;"> <input type="number" name="zidar_order_id" placeholder="شماره سفارش" required style="padding: 6px 10px; font-size: 14px; border: 1px solid #ccc; border-radius: 4px; width: 180px;"> <button type="submit" style="padding: 7px 16px; font-size: 14px; background-color: #28a745; color: white; border: none; border-radius: 4px; cursor: pointer;">بررسی وضعیت</button> </form> <?php return ob_get_clean(); } add_shortcode('zidar_order_lookup', 'zidar_check_order_status_form'); 

۲. درج شورت‌کد در برگه

پس از ذخیره کد بالا، می‌توانید شورت‌کد زیر را در هر برگه‌ای از سایت (مثلاً «پیگیری سفارش» یا «وضعیت خرید») قرار دهید:

csharpCopyEdit
[zidar_order_lookup] 

۳. ظاهر فرم

این فرم:


? سفارشی‌سازی ظاهر

شما می‌توانید رنگ دکمه را با رنگ دکمه‌های اصلی سایتتان هماهنگ کنید. به‌عنوان مثال اگر دکمه‌های سایتتان آبی هستند، رنگ #28a745 را با #007bff جایگزین کنید.

اگر قصد دارید ظاهر را با CSS جداگانه طراحی کنید، می‌توانید کلاس سفارشی برای فرم (.zidar-order-status-form) در فایل style.css قالب اضافه کنید.


? نکته امنیتی (اختیاری)

از آن‌جایی که کاربر بدون ورود می‌تواند شماره سفارش وارد کند، ممکن است دیگران بتوانند با حدس زدن شماره‌ها اطلاعات را ببینند.

برای امنیت بیشتر، می‌توانید ایمیل سفارش را نیز به‌عنوان تأیید دوم بگیرید:

من می‌تونم نسخه‌ای از این فرم رو هم برایت طراحی کنم اگر بخوای.


✅ نتیجه‌گیری

فرم بررسی وضعیت سفارش با شماره، یک قابلیت ساده ولی بسیار کاربردی است که می‌تواند هم تجربه کاربری فروشگاه را بهبود بخشد و هم از بار پشتیبانی فروش بکاهد. با چند خط کد ساده، این امکان را می‌توانید بدون نصب افزونه‌های اضافی به سایت خود اضافه کنید.


افزودن فرم بررسی وضعیت سفارش ووکامرس با شماره سفارش (بدون ورود کاربر)

در فروشگاه‌های اینترنتی مبتنی بر ووکامرس، گاهی مشتریان پس از خرید نیاز دارند بدون ورود به حساب کاربری، تنها با داشتن شماره سفارش وضعیت سفارش خود را بررسی کنند. این امکان به‌ویژه در فروشگاه‌هایی که کاربران معمولاً مهمان (Guest) هستند یا از لاگین استفاده نمی‌کنند، بسیار کاربردی است.

در این مقاله یاد می‌گیرید چطور با ایجاد یک شورت‌کد اختصاصی، فرم ساده‌ای برای بررسی وضعیت سفارش بسازید که فقط با وارد کردن شماره سفارش، وضعیت آن را نمایش دهد.


✅ چرا چنین فرمی مفید است؟


? مراحل ساخت فرم بررسی سفارش در ووکامرس

۱. افزودن شورت‌کد به قالب

برای شروع، وارد فایل functions.php قالب فعال وردپرس خود شوید (ترجیحاً child theme برای جلوگیری از حذف در بروزرسانی).

سپس کد زیر را قرار دهید:

function zidar_check_order_status_form() {
    ob_start();

    if (isset($_POST['zidar_order_id'])) {
        $order_id = absint($_POST['zidar_order_id']);
        $order = wc_get_order($order_id);

        echo '<div class="zidar-order-result">';
        if ($order) {
            echo '<p><strong>شماره سفارش:</strong> ' . esc_html($order->get_order_number()) . '</p>';
            echo '<p><strong>وضعیت:</strong> ' . esc_html(wc_get_order_status_name($order->get_status())) . '</p>';
        } else {
            echo '<p style="color:red;">سفارشی با این شماره یافت نشد.</p>';
        }
        echo '</div>';
    }
    ?>

    <form method="post" class="zidar-order-status-form" style="display:flex; gap:10px; align-items:center; flex-wrap:wrap;">
        <input type="number" name="zidar_order_id" placeholder="شماره سفارش" required style="padding: 6px 10px; font-size: 14px; border: 1px solid #ccc; border-radius: 4px; width: 180px;">
        <button type="submit" style="padding: 7px 16px; font-size: 14px; background-color: #28a745; color: white; border: none; border-radius: 4px; cursor: pointer;">بررسی وضعیت</button>
    </form>

    <?php
    return ob_get_clean();
}
add_shortcode('zidar_order_lookup', 'zidar_check_order_status_form');

۲. درج شورت‌کد در برگه

پس از ذخیره کد بالا، می‌توانید شورت‌کد زیر را در هر برگه‌ای از سایت (مثلاً «پیگیری سفارش» یا «وضعیت خرید») قرار دهید:

csharpCopyEdit
[zidar_order_lookup] 

۳. ظاهر فرم

این فرم:


? سفارشی‌سازی ظاهر

شما می‌توانید رنگ دکمه را با رنگ دکمه‌های اصلی سایتتان هماهنگ کنید. به‌عنوان مثال اگر دکمه‌های سایتتان آبی هستند، رنگ #28a745 را با #007bff جایگزین کنید.

اگر قصد دارید ظاهر را با CSS جداگانه طراحی کنید، می‌توانید کلاس سفارشی برای فرم (.zidar-order-status-form) در فایل style.css قالب اضافه کنید.


? نکته امنیتی (اختیاری)

از آن‌جایی که کاربر بدون ورود می‌تواند شماره سفارش وارد کند، ممکن است دیگران بتوانند با حدس زدن شماره‌ها اطلاعات را ببینند.

برای امنیت بیشتر، می‌توانید ایمیل سفارش را نیز به‌عنوان تأیید دوم بگیرید:

من می‌تونم نسخه‌ای از این فرم رو هم برایت طراحی کنم اگر بخوای.


✅ نتیجه‌گیری

فرم بررسی وضعیت سفارش با شماره، یک قابلیت ساده ولی بسیار کاربردی است که می‌تواند هم تجربه کاربری فروشگاه را بهبود بخشد و هم از بار پشتیبانی فروش بکاهد. با چند خط کد ساده، این امکان را می‌توانید بدون نصب افزونه‌های اضافی به سایت خود اضافه کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *