اگر شما دارای یک فروشگاه کالا فیزیکی و همزمان کالای مجازی هستید، شاید با این مشکل مواجه شده باشین که فرم تسویه ای که به کاربر نمایش داده میشه در زمان خرید کالای مجازی با زمانی که یک کالای فیزیکی خریداری میشه باید تفاوت داشته باشه.
چون طبیعتا شما زمان خرید یک کالای فیزیکی باید از کاربر اطلاعات آدرس اون رو هم دریافت کنید، درصورتی که برای خرید کالای مجازی این اطلاعات نیاز نیست. طبیعتا هرچی شما فرآیند تسویه و دریافت اطلاعات رو ساده تر کنید کاربر احساس بهتری نسبت به سایت شما و خرید ازون خواهد داشت.
Digital Goods for WooCommerce Checkout
یک افزونه رایگان و موجود در مخزن وردپرس که می تونیم برای این منظور به شما معرفی کنیم، افزونه Digital Goods for WooCommerce Checkout هست که به کمک اون می تونید بسادگی فیلدهایی که برای خرید کالای مجازی نباید به کاربر نمایش داده بشه رو مشخص کنید:
Flexible Checkout Fields for WooCommerce
افزونه Flexible Checkout Fields پلاگین دیگری هست که برای مشخص کردن فیلدهای تسویه در زمان خرید کالای مجازی و کالاهای فیزیکی ازون میشه استفاده کرد، هرچند این قابلیت در نسخه پرو این افزونه وجود داره که من در سایت های ایرانی نسخه معتبری برای خرید یا دانلود پیدا نکردم، اما اگر بعدا کسی منتشر کردم پیشنهاد من استفاده از این افزونه بجای افزونه قبلی هست چون قابلیت های این افزونه کاملتر و بهتر هست، البته نسخه پرو این افزونه امکانات بیشتری هم داره، مثل امکان مشخص کردن فیلدهای مشخص تسویه برای یک دسته محصول در زمان خرید.
این نکته رو هم درنظر داشته باشید که این افزونه یک افزونه کامل برای مدیریت فیلدهای تسویه حساب در زمان پرداخت توسط مشتری هست که این قابلیت هایی که بالاتر صحبت کردیم بعلاوه کلی فیچر دیگر، امکانات جانبی اون هستند.
حذف فیلدهای غیرضروری با استفاده از افزودن تابع به فانکشن
با افزودن تابع زیر و البته ادیت فیلدهایی که در این تابع مشخص هستند شما می توانید بدون نیاز به افزونه و بسادگی فیلدهای مدنظر را در فرم تسویه یک محصول دانلودی مشخص بفرمایید:
add_filter( 'woocommerce_checkout_fields' , 'woo_remove_billing_checkout_fields' ); // Remove unwanted checkout fields function woo_remove_billing_checkout_fields( $fields ) { if( woo_cart_virtual_downloadable_product_only() == 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['order']['order_comments']); unset($fields['billing']['billing_address_2']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_company']); unset($fields['billing']['billing_city']); } return $fields; } // Check if the cart contains virtual/downloadable product only 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 downloadable $is_downloadable = $product['data']->downloadable; // is variation virtual $is_virtual = $product['data']->virtual ; // Update $virtual_downloadable_products_only if product is not virtual or downloadable and exit loop if( $is_virtual == 'no' && $is_downloadable == 'no' ){ $virtual_downloadable_products_only = false; break; } } return $virtual_downloadable_products_only; }
خوشحال میشیم اگر شما هم پیشنهادتون رو با ما درمیون بذارید…