مخفی کردن فیلدهای آدرس برای محصولات مجازی در ووکامرس
اگر مشتریان فروشگاه اینترنتی ووکامرس شما در هنگام خرید فقط محصولات مجازی یا دانلودی را انتخاب کنند، در هنگام تکمیل مراحل خرید، ووکامرس همچنان فیلدهای زیادی شامل اطلاعات آدرس و شهر و کد پستی را از کاربر درخواست میکند.
پرسش این اطلاعات با این هدف انجام میشود که بتوانید صورتحساب کاغذی برای مشتریان خود ارسال نمایید.
در صورتی که قرار نیست صورتحسابی به آدرس مشتریان ارسال کنید، و قصد دارید تا فرآیند خرید برای محصولات دیجیتالی یا دانلودی را آسانتر و سریعتر برای مشتریان خود امکانپذیر نمایید به دو روش میتوانید این فیلدها را در سایت مخفی کنید:
۱- با استفاده از افزونه ووکامرس فارسی
اگر از نسخههای جدید افزونه ووکامرس فارسی استفاده میکنید با رفتن به بخش «ووکامرس فارسی > ابزارها > تسویه حساب»، گزینهی «حذف فیلدهای غیر ضروری» را فعال کنید.
اگر از این افزونه استفاده نمیکنید یا به کنترل بیشتری روی عملکرد این بخش نیاز دارید میتوانید از روش دیگر استفاده کنید.
۲- با درج کدها در فایل functions.php قالب
قطعه کد زیر را در فایل 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 34 35 36 37 38 39 40 41 42 43 44 45 46 |
add_filter( 'woocommerce_checkout_fields' , 'roka_remove_billing_checkout_fields' ); function roka_remove_billing_checkout_fields( $fields ) { if( roka_cart_has_virtual_product() == true ) { unset( $fields[ 'billing' ][ 'billing_company' ] ); unset( $fields[ 'billing' ][ 'billing_address_1' ] ); unset( $fields[ 'billing' ][ 'billing_address_2' ] ); unset( $fields[ 'billing' ][ 'billing_city' ] ); unset( $fields[ 'billing' ][ 'billing_postcode' ] ); unset( $fields[ 'billing' ][ 'billing_country' ] ); unset( $fields[ 'billing' ][ 'billing_state' ] ); unset( $fields[ 'billing' ][ 'billing_phone' ] ); unset( $fields[ 'billing' ][ 'billing_address_2' ] ); unset( $fields[ 'billing' ][ 'billing_postcode' ] ); unset( $fields[ 'billing' ][ 'billing_company' ] ); unset( $fields[ 'billing' ][ 'billing_city' ] ); unset( $fields[ 'order' ][ 'order_comments' ] ); } return $fields; } function roka_cart_has_virtual_product() { global $woocommerce; $has_virtual_products = false; $virtual_products = 0; $products = $woocommerce->cart->get_cart(); foreach( $products as $product ) { $product_id = $product[ 'product_id' ]; $is_virtual = get_post_meta( $product_id, '_virtual', true ); if( $is_virtual == 'yes' ) { $virtual_products += 1; } } if( count( $products ) == $virtual_products ) { $has_virtual_products = true; } return $has_virtual_products; } |
سلام
نیازی به کد نیست. از داخل تنظیمات ووکامرس فارسی قابل انجامه
مرسی از راهنمایی خوبت/ مشکل من حل شد.
سلام به شدت ممنونیم از کد خوبتون اگر بخوایم شماره تماس هم باشه باید چه کدی اضافه کنیم یا چه کدی رو از کدهاتون حذف کنیم ؟ چون شماره تماس خب خیلی مهمه و دیگه اگر شماره تماس باشه ثبت نام اجباری هم برمیداریم
با سلام
برای انجام این کار میبایست خطی که در آن عبارت billing_phone وجود دارد را از کدها حذف کنید یا با دو علامت slash در ابتدا آن خط را غیرفعال کنید.
با سلام
وقتی کد رو میذارم فیلدها رو برمیداره ولی بعد کلیک برای پرداخت خطای زیر رو میده
“لطفا برای ادامه یک آدرس وارد کنید.”
لطفا راهنمایی کنید
با سلام
کاربران زیادی از این کدها استفاده میکنند. به نظر میرسد روی ووکامرس شما تنظیمات خاصی یا افزونههای خاصی وجود داشته باشد که پیدا کردن و رفع آن به بررسی موردی نیازمند است و به این شکل چیزی قابل حدس نیست