یکی از بزرگترین دلایل رها شدن سبد خرید در سایتهای فروشگاهی، پیچیده و طولانی بودن فرم تسویه حساب است. وقتی مشتری در دنیای واقعی وارد یک فروشگاه میشود، برای کشیدن کارت بانکی نیازی به نوشتن ایمیل، کد پستی ده رقمی یا نام شرکت ندارد؛ اما در بسیاری از سایتهای وردپرسی، به محض اینکه کاربر قصد پرداخت دارد، با بیش از ۱۰ فیلد اجباری روبهرو میشود!
در این مقاله از وان ابزار، قصد داریم نحوه حذف فیلدهای تسویه حساب ووکامرس بدون افزونه و تنها با یک قطعه کد استاندارد را آموزش دهیم تا صفحه پرداخت سایت خود را به ۳ فیلد اصلی (نام، موبایل و آدرس) خلاصه کنید و نرخ تبدیل (Conversion Rate) فروشگاهتان را به شکل چشمگیری افزایش دهید.
چرا باید فیلدهای اضافه صفحه پرداخت ووکامرس را حذف کنیم؟
طبق آمارهای جهانی در حوزه تجربه کاربری (UX) و بهینهسازی نرخ تبدیل (CRO)، نزدیک به ۲۰ تا ۳۰ درصد از کاربران تنها به دلیل طولانی بودن فرآیند تسویه حساب، در ثانیه آخر از خرید منصرف میشوند.
مزایای سادهسازی صفحه تسویه حساب عبارتاند از:
- افزایش مستقیم فروش: کاربر بدون کلافگی و در کمتر از ۳۰ ثانیه اطلاعات را وارد و مبلغ را پرداخت میکند.
- تجربه کاربری عالی در موبایل: تایپ کردن اطلاعات زیاد و تغییر کیبورد به انگلیسی (برای نوشتن ایمیل) در گوشی موبایل بسیار آزاردهنده است.
- عدم نیاز به نصب افزونه اضافی: با استفاده از قطعه کد PHP، نیازی به نصب پلاگینهای سنگین ویرایشگر تسویه حساب نخواهید داشت و سرعت سایتتان حفظ میشود.
کد حذف فیلدهای تسویه حساب ووکامرس (آماده کپی)
در حالت پیشفرض، ووکامرس فیلدهای نام، نام خانوادگی، نام شرکت، کشور، استان، شهر، آدرس ۱، آدرس ۲، کد پستی، تلفن و ایمیل را نمایش میدهد.
کد زیر تمام فیلدهای غیرضروری را حذف کرده، فیلد نام و نام خانوادگی را در یک باکس ادغام میکند و در نهایت فقط نام و نام خانوادگی، شماره موبایل، استان/شهر و آدرس دقیق را نگه میدارد:
<?php
/**
* سادهسازی و حذف فیلدهای تسویه حساب ووکامرس - وان ابزار
*/
add_filter( 'woocommerce_checkout_fields' , 'oneabzar_simplify_wc_checkout_fields' );
function oneabzar_simplify_wc_checkout_fields( $fields ) {
// ۱. حذف فیلدهای غیرضروری صورتحساب
unset($fields['billing']['billing_last_name']); // حذف نام خانوادگی
unset($fields['billing']['billing_company']); // حذف نام شرکت
unset($fields['billing']['billing_country']); // حذف کشور
unset($fields['billing']['billing_address_2']); // حذف آدرس دوم
unset($fields['billing']['billing_postcode']); // حذف کد پستی
unset($fields['billing']['billing_email']); // حذف ایمیل
// ۲. تغییر عنوان فیلد نام به «نام و نام خانوادگی» و تمامعرض کردن آن
$fields['billing']['billing_first_name']['label'] = 'نام و نام خانوادگی';
$fields['billing']['billing_first_name']['placeholder'] = 'نام و نام خانوادگی خود را وارد کنید';
$fields['billing']['billing_first_name']['class'] = array('form-row-wide');
// ۳. تنظیم عنوان و ظاهر فیلد موبایل
$fields['billing']['billing_phone']['label'] = 'شماره موبایل';
$fields['billing']['billing_phone']['placeholder'] = 'مثال: 09120000000';
$fields['billing']['billing_phone']['class'] = array('form-row-wide');
// ۴. تنظیم ظاهر فیلد آدرس
$fields['billing']['billing_address_1']['label'] = 'آدرس دقیق پستی';
$fields['billing']['billing_address_1']['placeholder'] = 'خیابان، کوچه، پلاک، واحد';
$fields['billing']['billing_address_1']['class'] = array('form-row-wide');
return $fields;
}
// غیرفعال کردن بخش «حمل و نقل به آدرس دیگر»
add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false' );
این کد را کجا قرار دهیم؟ (۲ روش استاندارد)
برای قرار دادن کد ویرایش فیلدهای صفحه پرداخت ووکامرس در سایت خود، یکی از دو روش زیر را انتخاب کنید:
روش اول: استفاده از فایل functions.php (مخصوص قالب چایلد)
- وارد پیشخوان وردپرس شوید و به مسیر نمایش > ویرایشگر پرونده پوسته بروید.
- از ستون سمت چپ، فایل توابع پوسته (
functions.php) را انتخاب کنید (حتماً از چایلد تم یا قالب فرزند استفاده کنید تا با آپدیت قالب، کد شما پاک نشود). - کد بالا را در انتهای فایل قرار داده و دکمه بهروزرسانی پرونده را بزنید.
روش دوم: استفاده از افزونه WPCode (روش امن و پیشنهادی)
اگر قالب فرزند (Child Theme) ندارید، بهترین کار استفاده از افزونه رایگان و سبک WPCode (یا Code Snippets) است:
- افزونه را نصب و فعال کنید.
- از منوی Code Snippets > Add Snippet یک قطعه کد جدید بسازید.
- نوع کد را روی PHP Snippet قرار دهید، کد بالا را پیست کنید و وضعیت آن را روی Active بگذارید.
نکات مهم در شخصیسازی کد (بسته به نوع فروشگاه شما)
- چرا فیلد استان و شهر را حذف نکردیم؟در کد بالا، فیلدهای
billing_state(استان) وbilling_city(شهر) دستنخورده باقی ماندهاند. دلیل آن این است که تقریباً تمام افزونههای حملونقل و محاسبه هزینه پست در ایران، برای محاسبه کرایه ارسال به استان و شهر مشتری نیاز دارند. - اگر به کد پستی نیاز دارید چه کنید؟برخی فروشگاهها که با اداره پست قرارداد مستقیم دارند، حتماً به کد پستی ۱۰ رقمی مشتری نیاز دارند. اگر شما هم جزو این دسته هستید، کافی است خط زیر را از داخل کد بالا پاک کنید تا فیلد کد پستی همچنان نمایش داده شود:
unset($fields['billing']['billing_postcode']); - فروشگاههای محصولات دانلودی و مجازی:اگر فقط فایل، دوره آموزشی یا خدمات مجازی میفروشید و اصلاً به آدرس پستی نیازی ندارید، میتوانید خطوط زیر را هم به بخش حذف فیلدها اضافه کنید تا فقط نام و شماره موبایل باقی بماند:
<?php
unset($fields['billing']['billing_state']); // حذف استان
unset($fields['billing']['billing_city']); // حذف شهر
unset($fields['billing']['billing_address_1']); // حذف آدرس
سوالات متداول (FAQ)
۱. آیا حذف فیلد ایمیل در ووکامرس باعث اختلال در درگاه پرداخت نمیشود؟
خیر؛ درگاههای پرداخت ایرانی نیازی به اجباری بودن ایمیل ندارند و تراکنشها بدون هیچ مشکلی با شماره موبایل انجام میشوند.
۲. آیا با آپدیت شدن ووکامرس، این تنظیمات به حالت اول برمیگردد؟
خیر. از آنجایی که این کد از هوکهای استاندارد خود ووکامرس (woocommerce_checkout_fields) استفاده میکند، با آپدیت افزونه ووکامرس تداخلی ندارد؛ فقط مطمئن شوید کد را در چایلد تم یا افزونه مدیریت کد قرار دادهاید تا با آپدیت «قالب» حذف نشود.
۳. آیا این کد روی قالبهای آماده مثل وودمارت، فلتسام یا آسترا کار میکند؟
بله، این کد روی هسته ووکامرس اعمال میشود و با تمام قالبهای استاندارد وردپرس کاملاً سازگار است.
وان ابزار | دانلود افزونه وردپرس (کاربردی)