فرم تسویه متفاوت برای محصولات دانلودی

خرید کالای مجازی و فیزیکی

اگر شما دارای یک فروشگاه کالا فیزیکی و همزمان کالای مجازی هستید، شاید با این مشکل مواجه شده باشین که فرم تسویه ای که به کاربر نمایش داده میشه در زمان خرید کالای مجازی با زمانی که یک کالای فیزیکی خریداری میشه باید تفاوت داشته باشه.

چون طبیعتا شما زمان خرید یک کالای فیزیکی باید از کاربر اطلاعات آدرس اون رو هم دریافت کنید، درصورتی که برای خرید کالای مجازی این اطلاعات نیاز نیست. طبیعتا هرچی شما فرآیند تسویه و دریافت اطلاعات رو ساده تر کنید کاربر احساس بهتری نسبت به سایت شما و خرید ازون خواهد داشت.

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;
}

خوشحال میشیم اگر شما هم پیشنهادتون رو با ما درمیون بذارید…

12 ساعت آموزش آنلاین خصوصی وردپرس 700 هزارتومان

برای مشاوره و راهنمایی همین الان می تونید تماس بگیرید

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *