تغییر ترتیب فیلدهای آدرس در ووکامرس
اطلاعات آدرس نمایش داده شده در صفحه تسویه حساب ووکامرس به صورت استاندارد برای زبان انگلیسی طراحی شدهاند ابتدا فیلد کشور، آدرس، شهر و سپس استان در معرض دید بازدیدکنندگان از سایت قرار میگیرد. اگر میخواهید تجربه کاربری بهتری برای خریداران از فروشگاه اینترنتی خود فراهم کنید و فیلدهای آدرس را به شکل استاندارد برای زبان فارسی مرتب کنید باما همراه شوید تا به آسانی با اضافه کردن قطعه کدی به آسانی ترتیب آنهارا تغییر دهید.
قطعه کد زیر را در فایل functions.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; }
همان طور که مشاهده میکنید، در ابتدای تابع فوق، ترتیب مورد نظر از فیلدها به شکل «کشور»، «استان»، «شهر»، «آدرس» و «کد پستی» قابل مشاهده است. در صورت تمایل میتوانید ترتیب این فیلدها را تغییر دهید تا در صفحه پرداخت ووکامرس، ترتیب مورد نظر شما دیده شود.
لازم به ذکر است این تابع تمامی فیلدهای این بخش را پشتیبانی نمیکند و تنها میتوانید فیلدهای مربوط به آدرس را در این بخش مرتب نمایید.
همچنین در نوشتن این کد تلاش شده است، تا حداکثر سازگاری با افزونههای دیگر از جمله «ووکامرس فارسی» وجود داشته باشد. افزونههای دیگری که بخواهند در این بخش ووکامرس فیلدهای جدیدی اضافه کنند یا ترتیب آنها را تغییر دهند، میبایست بدون مشکل با این افزونه به درستی عمل کنند.
نوشته تغییر ترتیب فیلدهای آدرس در ووکامرس اولین بار در بیست اسکریپت. پدیدار شد.