افزونه استان و شهرهای ایران برای وردپرس: فرم آدرس ووکامرس را درست کنید

ووکامرس برای ایران فهرست استان دارد، ولی شهر را یک فیلد متنی خالی میگذارد که مشتری هر چه بخواهد در آن مینویسد. افزونه استان و شهرهای ایران برای وردپرس همین فیلد را به یک کشوی شهر تبدیل میکند که با استان انتخابشده عوض میشود.
این راهنما میگوید فیلد متنی شهر چه دردسری درست میکند، افزونه را با چه معیاری انتخاب کنید، و ترتیب و تعداد فیلدهای آدرس را روی هر دو نوع تسویهحساب ووکامرس چطور مرتب کنید.
ووکامرس با استان و شهر ایران چه میکند؟
وقتی کشور فروشگاه ایران باشد، فرم تسویهحساب ووکامرس یک کشوی استان نشان میدهد. شهر اما فیلد متنی است، چون ووکامرس برای هیچ کشوری فهرست شهر ندارد. پس اگر چیزی اضافه نکنید، مشتری اسم شهر را تایپ میکند.
این یکی از کارهایی است که با نصب بستهی زبان فارسی درست نمیشود. بقیهی این کارها، مثل تاریخ شمسی، تومان و پیامک، در فارسی سازی ووکامرس آمدهاند.
فیلد متنی شهر چه مشکلی درست میکند؟

مشکل اول املاست. در فهرست سفارشهای یک فروشگاه کوچک بعد از چند هفته چیزهایی مثل این پیدا میشود: «تهران»، «تهرن»، «tehran»، «تهران، خیابان آزادی»، و گاهی خالی. برای آدم قابل فهم است، ولی برای هر کاری که ماشین باید بکند نه.
مشکل دوم هزینهی ارسال است. اگر بخواهید برای شهر مرکز استان یک هزینه و برای بقیهی شهرها هزینهی دیگری بگذارید، ابزار حمل باید شهر را با یک مقدار مشخص مقایسه کند. «تهرن» با «تهران» یکی نیست.
مشکل سوم گزارش است. سؤال سادهای مثل «بیشتر از کدام شهرها سفارش داریم؟» با فیلد متنی جواب درستی نمیگیرد، چون یک شهر با پنج املا پنج ردیف جدا میشود.
کشوی شهر هر سه را با هم حل میکند: مشتری انتخاب میکند، تایپ نمیکند.
افزونهی استان و شهر را با چه معیاری انتخاب کنیم؟
اگر «افزونه استان و شهر» را جستوجو کنید، بخش بزرگی از نتیجهها نقشهی تعاملی ایراناند: نقشهای که روی هر استانش کلیک میکنید و به صفحهای میروید. اینها برای نمایش شعبهها یا نمایندگیها خوباند، ولی به فرم آدرس ووکامرس کاری ندارند. پیش از خرید ببینید صفحهی محصول از «تسویهحساب» یا «فرم آدرس» حرف میزند یا نه.
برای افزونهای که واقعا فیلد آدرس است، اینها را بپرسید:
| چه بپرسید | چرا مهم است |
|---|---|
| فیلد تسویهحساب است یا نقشه؟ | نقشه فرم آدرس را عوض نمیکند |
| روی تسویهحساب بلاکی کار میکند؟ | فروشگاههای تازهی ووکامرس پیشفرض بلاکیاند و خیلی از افزونههای قدیمی فقط کلاسیک را پوشش میدهند |
| شهری که در فهرست نیست را میشود اضافه کرد؟ | هیچ فهرستی کامل نیست، بهخصوص برای روستاها و شهرهای تازه |
| شهر اضافهشده کجا ذخیره میشود؟ | اگر در فایلهای افزونه برود، با بهروزرسانی بعدی پاک میشود |
| فیلد استاندارد «شهر» ووکامرس را نگه میدارد یا فیلد تازه میسازد؟ | سفارش، ایمیل و ابزار حمل همان فیلد استاندارد را میخوانند |
| استان را پیش از شهر نشان میدهد؟ | مشتری اول استان را انتخاب میکند تا فهرست شهر پر شود |
ردیف پنجم را کمتر کسی میپرسد. بعضی راهحلها فیلد شهر ووکامرس را حذف میکنند و یک فیلد سفارشی با نام دیگری جایش میگذارند. روی فرم درست به نظر میرسد، ولی هر ابزاری که دنبال «شهر» سفارش میگردد، چیزی پیدا نمیکند.
یک کار را هم با دو ابزار انجام ندهید. اگر افزونهی فارسیسازی شما خودش استان و شهر دارد، یا همان را نگه دارید یا آن بخشش را خاموش کنید.
تسویهحساب کلاسیک یا بلاکی: فرقشان برای فیلد آدرس

ووکامرس دو نوع صفحهی تسویهحساب دارد. نوع قدیمی با کد کوتاه ساخته میشود و نوع تازه با بلوکهای ویرایشگر وردپرس.
برای اینکه بفهمید فروشگاه شما کدام است، صفحهی تسویهحساب را در برگهها ویرایش کنید. اگر داخلش فقط کد کوتاه [woocommerce_checkout] هست، کلاسیک است. اگر یک بلوک تسویهحساب با زیربلوکهای آدرس و پرداخت میبینید، بلاکی است.
این فرق برای فیلد آدرس مهم است، چون در تسویهحساب بلاکی فرم را خود ووکامرس با کد جاوااسکریپت میسازد. افزونهها و تکهکدهایی که برای فرم کلاسیک نوشته شدهاند، روی آن یا اثری ندارند یا اثرشان ناقص است. پس افزونهای که فقط کلاسیک را پوشش میدهد، روی فروشگاهی که تازه راه انداختهاید احتمالا کار نمیکند.
جابجایی فیلد شهر و استان در ووکامرس
ترتیب فیلدهای آدرس در ووکامرس به تنظیمات هر کشور بستگی دارد، و در بعضی فروشگاهها شهر بالاتر از استان میآید. مشتری اول شهر را تایپ میکند و بعد تازه به استان میرسد. اگر کشوی شهر دارید، بدتر است: تا استان انتخاب نشده، فهرست شهر خالی است.
در تسویهحساب کلاسیک ترتیب فیلدها را عدد priority تعیین میکند و با یک فیلتر کوتاه عوض میشود. این کد را در functions.php قالب فرزند یا با یک افزونهی افزودن کد بگذارید:
add_filter( 'woocommerce_default_address_fields', function ( $fields ) {
$fields['state']['priority'] = 41;
$fields['city']['priority'] = 42;
return $fields;
} );
تکهکدهایی که در اینترنت برای همین کار دستبهدست میشوند، معمولا فیلد کشور را هم حذف میکنند. این کار را نکنید. کشوی استان به کشور وابسته است، و اگر روزی به خارج از ایران هم فروختید، فرم آدرس بیکشور به هم میریزد.
این کد برای تسویهحساب کلاسیک است. اگر فروشگاهتان بلاکی است، اثرش را حتما روی یک نسخهی آزمایشی سایت ببینید و بعد روی سایت اصلی بگذارید.
حذف آدرس صورتحساب ووکامرس، یا فقط کوتاهترکردنش؟

ووکامرس دو آدرس میگیرد: آدرس صورتحساب و آدرس ارسال. برای بیشتر فروشگاههای ایرانی که کالای فیزیکی میفرستند، یک آدرس کافی است، و فرم دوتایی فقط مشتری را خسته میکند.
راه سادهتر حذف کامل نیست. در ووکامرس ← پیکربندی ← حمل و نقل ← گزینههای حمل و نقل، مقصد ارسال را روی ارسال به آدرس صورتحساب مشتری بگذارید تا فرم دوم پیشفرض بسته بماند. فیلدهایی را که لازم ندارید، مثل نام شرکت یا خط دوم آدرس، میشود برداشت یا اختیاری کرد.
استان و شهر را اما نگه دارید. ابزار حمل، محاسبهی هزینهی ارسال و بیشتر درگاهها به آنها تکیه دارند. فقط اگر کالای شما فایل یا خدمت است و چیزی پست نمیشود، برداشتن کل فیلدهای آدرس منطقی است.
استان و شهر با ماژول راهکار وردپرس

افزونهی راهکار وردپرس رایگان است و یکی از ماژولهایش همین کار را میکند. ۳۱ استان و ۲٬۷۰۴ شهر ایران را با نام فارسی دارد و فهرست شهر را با استان انتخابشده هماهنگ میکند.
روی هر دو تسویهحساب کار میکند. در تسویهحساب بلاکی بلوک تازهای اضافه نمیکند. همان فیلد «شهر» خود ووکامرس را به کشویی وابسته به استان تبدیل میکند، پس سفارشها شهر را در همان جای استاندارد ذخیره میکنند.
راهاندازیاش این است:
- در پیشخوان به راهکار وردپرس ← ماژولها بروید و ماژول استان و شهر را روشن کنید. تازهنصبشده همهی ماژولها خاموشاند.
- برای دیدن فهرست به راهکار وردپرس ← شهرهای ایران بروید. استان را از کشو انتخاب کنید تا شهرهایش را ببینید.
- اگر شهری جا افتاده، اسمش را در جعبهی افزودن شهر تازه بنویسید.
شهرهای پایه از فایلهای خود افزونه خوانده میشوند و از این صفحه ویرایش یا حذف نمیشوند. دلیلش این است که هر تغییری روی آنها با بهروزرسانی بعدی از بین میرفت. شهری که خودتان اضافه میکنید جدا در دیتابیس سایت ذخیره میشود، پس بهروزرسانی افزونه پاکش نمیکند، و هر وقت خواستید کنار اسمش حذفش میکنید.
جزئیات بیشتر در تنظیم استان و شهرهای ایران در راهکار وردپرس آمده است. ماژولهای دیگر خاموش میمانند، پس اگر فقط استان و شهر لازم دارید، چیز دیگری به سایت اضافه نمیشود.
سؤالهای پرتکرار
روستای مشتری در فهرست نیست. چه کنم؟ اسمش را بهعنوان شهر تازه به همان استان اضافه کنید. در راهکار وردپرس این کار از صفحهی شهرهای ایران انجام میشود و شهر اضافهشده با شهرهای پایه هیچ فرقی در فرم ندارد.
افزونهی دیگری هم دارم که استان و شهر دارد. هر دو روشن بمانند؟ نه. دو ابزار که یک فیلد را عوض میکنند، یا با هم تداخل دارند یا یکی کار دیگری را خنثی میکند. یکی را نگه دارید. همین قاعده برای تاریخ شمسی ووکامرس هم صادق است.
فهرست استانها و شهرهای ایران را بهصورت فایل اکسل یا دیتابیس میخواهم. این راهنما دربارهی فرم آدرس فروشگاه است. افزونه فهرست را برای تسویهحساب نگه میدارد، نه برای دانلود.
نظرات
ایمیل شما نمایش داده نمیشود. نظرها پس از تأیید تیم منتشر میشوند.
هنوز نظری ثبت نشده. اولین نفر باش.



نظر خودت را بنویس