حذف فیلد های آدرس از صفحه checkout در ووکامرس برای محصولات دانلودی
اگر در فروشگاه ووکامرسی خود محصولات دانلودی میفروشید، برای محصولات دانلودی باید فیلدهای آدرس ، کد پستی را حذف کنید چراکه با حذف نکردن آن ها مشتریانتان شاید حس بدی بگیرند و از خرید منصرف شوند یا اطلاعات را به درستی وارد نکنند.
آموزشی که در زیر می نوسیم برای دو دسته از فروشگاه ها قابل استفاده هست.
- فروشگاه هایی که فقط فایل دانلودی میفروشند و اصلا نیازی به دریافت آدرس از مشتری ندارند
- فروشگاه هایی که برخی از فایل های آن ها دانلودی و برخی دیگر فیزیکی (که برای محصولات فیزیکی نیاز به اخذ آدرس از مشتری دارند)
پس اگر جز دو دسته بالا هستید حتما این آموزش برای شما مفید است:
اضافه کردن کد مربوطه به فایل functions.php قالب فعال
مجدد از قسمت منو —> نمایش —> ویرایشگر پوسته را انتخاب کنید.
در سمت چپ صفحه یک فایلی به نام functions.php را بیابید.(معمولا در کنارش نوشته توابع پوسته)
فقط یه خواهش!!!
این قسمت رو اگر بلد نیستید دست کاری نکنید چرا که ممکنه سایتتون پایین بیاد، پس با دقت این کار رو انجام بدید
کد زیر رو به انتهای این فایل جایی که دیگه هیچی نیست، اضافه کنید
function woo_cart_virtual_downloadable_product_only() { global $woocommerce; // By default, virtual/downloadable product only $virtual_downloadable_products_only = true; // Get all products in cart $products = $woocommerce->cart->get_cart(); // Loop through cart products foreach ($products as $product) { // Get product ID $product_id = $product['product_id']; // is variation virtual $is_virtual = $product['data']->virtual; if ($is_virtual == "no") { $virtual_downloadable_products_only = false; if ($product['data']->is_type('yith_bundle') == true || $is_virtual != "no") { $virtual_downloadable_products_only = true; } break; } } return $virtual_downloadable_products_only; }
add_filter('woocommerce_checkout_fields', 'custom_override_checkout_fields'); function custom_override_checkout_fields($fields) { if (woo_cart_virtual_downloadable_product_only() == true) { 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']); } return $fields; }
خب تبریک میگم!!!
شما اگر الآن در قسمت ویرایش یک محصول بروید ودر آن جا گزینه مجازی را تیک بزنید، برای خرید این محصول نیازی به وارد کردن آدرس نیست اما اگر داخل سبد خرید چند تا محصول دیگر هم داشته باشید که آن ها مجازی نباشند و مشتری می خواهد در یک سفارش هم دانلودی را بخرد و هم فیزیکی را ، باز این کاری کردید به خوبی کار می کند و اطلاعات آدرس را از مشتری میگیرد.
اگر این آموزش برای شما مفید بود، حتما با نظراتتون ما را مطلع کنید