تغییر ترتیب فیلد آدرس در ووکامرس
پلاگین وکامرس که این روزها به شدت بین کاربران وردپرسی محبوب است یک افزونهی غیر ایرانی است که با توجه به فعال بودن کاربران ایرانی و فارسی سازی آن به شدت استفاده میشود. اکثر فروشگاههای اینترنتی که در حال حاضر در ایران راه اندازی میشود و در گذشته هم شروع به کار کرده اند با کمک ووکامرس راه اندازی شده است. اما با توجه به اینکه این سیستم یک سیستم از پایه ایرانی نیست گاهی مشکلات ساختاری با اطلاعات در کشور ما دارد. در کشورهای مختلف دنیا سبک آدرس دهی برای منزل به این سبک است که ابتدا نام کشور، آدرس خانه، شهر، کد پستی و … دریافت میشود اما این موضوع در ایران به سبک کشور، استان، شهر، آدرس، کدپستی یا سیستمهای مختلف آدرس دهی است. در این نوشته به شما روش تغییر ترتیب این سبک ارائه میشود.
تغییر ترتیب فیلد آدرس در ووکامرس
بعد از پایان این آموزش نحوهی ترتیب فیلدهای آدرس در صفحه خرید یا تسویه حساب ووکامرس به شکل زیر میشود:
مراحل انجام کار
- ابتدا وارد کنترل پنل هاست خود شوید.
- در مرحله ی بعد وارد فایل منیجر شوید. (ممکن است بخواهید از طریق ftp این کار را انجام دهید که تفاوتی از این نظر ندارد.)
- سپس وارد مسیر زیر شوید:
public_html/wp-content/themes/your-theme - خب مسیر بالا که مشخص شده است به جای your-theme در واقع پوسته یا قالب فعال سایت خود را انتخاب کنید.
- بعد از ورود به مسیر ذکر شده به دنبال فایل functions.php بگردید و آنرا را برای ویرایش باز کنید. (ممکن است این فایل در قالب شما وجود نداشته، در این صورت میتوانید این فایل را به صورت دستی بسازید.)
- در انتهای این فایل کد زیر را اضافه کنید:
<?php add_filter( 'woocommerce_default_address_fields' , 'bistscript_override_address_fields', 999, 1 ); function bistscript_override_address_fields( $fields ) { $persian_sort = array( 1 => 'country', 'state', 'city', 'address_1', 'address_2', 'postcode' ); foreach( $fields as $key => $field ) { if( ! in_array( $key, $persian_sort ) ) { $fields[ $key ][ 'persian_sort' ] = 0; } else { $fields[ $key ][ 'persian_sort' ] = array_search( $key, $persian_sort ); } } uasort( $fields, function( $val1, $val2 ) use( $persian_sort ) { if( $val1[ 'persian_sort' ] == 0 || $val2[ 'persian_sort' ] == 0 ) { return 0; } return $val1[ 'persian_sort' ] > $val2[ 'persian_sort' ] ? 1 : -1; } ); $i = 10; foreach( $fields as $key => $field ) { $fields[ $key ][ 'priority' ] = $i; $i += 10; } return $fields; } ?>
- تگ باز و بستهی پی اچ پی را نیاز نیست به این فایل اضافه کنید و در آخرین خطهای این فایل کد بالا را اضافه کنید و آنرا را ذخیره کنید.
- تذکر: حتما قبل از انجام این کار از سایت خود بکاپ تهیه کنید.
- بعد از انجام این کار به صفحهی تسویه حساب/پرداخت که مرحلهی نهایی خرید در ووکامرس است بروید و تغییرات را مشاهده کنید.
راستی یه خبر خوش براتون داریم؛ یک دورهی ویدیویی وردپرس به صورت رایگان برای شما کاربران عزیز تهیه شده است که از این لینک به آن دسترسی پیدا کنید. اگر روشهای بهتری برای انجام “تغییر ترتیب فیلد آدرس در وکامرس” را دارید آنرا با ما به اشتراک بگذارید.
سلام دمتون گرم از بین ۱۰ تا کد که کار نکرد کد شما کار کرد کارتون درسته
تمام کدهایی که در وبسایت موجود هست حاصل تجربیات تیم فنی در پروژه های مختلف است از این رو میتوانید به سادگی از این کدها استفاده کنید.
موفق باشید