تغییر ترتیب فیلدهای آدرس در ووکامرس
اطلاعات آدرس نمایش داده شده در صفحه تسویه حساب ووکامرس به صورت استاندارد برای زبان انگلیسی طراحی شدهاند ابتدا فیلد کشور، آدرس، شهر و سپس استان در معرض دید بازدیدکنندگان از سایت قرار میگیرد.
اگر میخواهید تجربه کاربری بهتری برای خریداران از فروشگاه اینترنتی خود فراهم کنید و فیلدهای آدرس را به شکل استاندارد برای زبان فارسی مرتب کنید، قطعه کد زیر را در فایل functions.php قالب خود درج نمایید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
add_filter( 'woocommerce_default_address_fields' , 'roka_override_address_fields', 999, 1 ); function roka_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; } |
همان طور که مشاهده میکنید، در ابتدای تابع فوق، ترتیب مورد نظر از فیلدها به شکل «کشور»، «استان»، «شهر»، «آدرس» و «کد پستی» قابل مشاهده است. در صورت تمایل میتوانید ترتیب این فیلدها را تغییر دهید تا در صفحه پرداخت ووکامرس، ترتیب مورد نظر شما دیده شود.
لازم به ذکر است این تابع تمامی فیلدهای این بخش را پشتیبانی نمیکند و تنها میتوانید فیلدهای مربوط به آدرس را در این بخش مرتب نمایید.
همچنین در نوشتن این کد تلاش شده است، تا حداکثر سازگاری با افزونههای دیگر از جمله «ووکامرس فارسی» وجود داشته باشد. افزونههای دیگری که بخواهند در این بخش ووکامرس فیلدهای جدیدی اضافه کنند یا ترتیب آنها را تغییر دهند، میبایست بدون مشکل با این افزونه به درستی عمل کنند.
نمیدونم چجوری ازتون تشکر کنم. فیلد شهر قبل استان قرار میگرفت و نصب افزونه مشکلات زیادی به وجود می اورد. مشکلم با کد شما حل شد. خیلی ممنونم
سلام من استفاده کردم عالی بود ممنون
خیلی خیلی ممنون از کدی که گذاشتین.خیلی کمک کننده بود چند روزی بود که دنبال یه کد میگشتم که از شر افزونه ها راحت بشم