- ۰ تومان
- هیچ محصولی در سبد خرید نیست.
سلام .
یکی از دلایلی که معمولا از Easy Digital Downloads برای فروش محصولات مجازی استفاده میکنیم ساده بودن فرایند خریدشه .
یعنی صرف نظر از کارهایی که شما بعنوان مدیر سایت باید انجام بدید ، Frontend و رابط کاربری ایزی دیجیتال دانلود هم بسیار کاربر پسند تر هست . چون مشتری خیلی راحت محصولشو به سبد خرید اضافه میکنه و بعدش با پر کردن فیلد نام و ایمیل به صفحه پرداخت هدایت میشه و بعد از پرداخت هم محصولشو دانلود میکنه .
حالا ما میخوایم این سادگی فرایند خرید رو از EDD به ووکامرس هم منتقل کنیم . طبق آموزش زیر اگه تمام محصولات موجود داخل سبد خرید مشتری از نوع محصولات مجازی یا دانلودی باشه تو صفحه تسویه فقط فیلدهای نام ، ایمیل و شماره تلفن ( بخاطر استفاده از پیامک ووکامرس ) . خب طبیعتا اگه حداقل یک محصول فیزیکی تو سبد خرید باشه باید این فیلدها باقی بمونن و حذف نشن .
خب ابتدا به قسمت زیر مراجعه کنید :
مدیریت وردپرس >> ووکامرس >> پیکربندی >> محصولات >> محصولات دانلودی .
از قسمت محدودیت های دسترسی ، تیک “دانلودها نیازمند ورود هستند” رو بردارید و برعکسش تیک “دسترسی به محصولات دانلودشدنی بعد از پرداخت” رو بزنید .
حالا هم کد زیر رو داخل functions.php قالبتون و خط آخر قرار بدید و تمام . البته اگه خط آخر کد های فانکشنتون عبارت <؟ وجود داشت باید اول این عبارت رو حذف کنید و بعد کدهای زیر رو قرار بدید . سعی کنید بعد قرار دادن کد های زیر فاصله یا space های اضافی رو از کدهای فانکشن مخصوصا خطوط آخر حذف کنید .
<?php add_filter( 'woocommerce_checkout_fields' , 'WooCommerce_EDD_Checkout' ); function WooCommerce_EDD_Checkout( $fields ) { global $woocommerce; $hasPhysicalProduct = false; if ( ! empty( $woocommerce->cart->cart_contents ) ) { $cart = $woocommerce->cart->get_cart(); foreach ( $cart as $key => $values ) { $_product = get_product( $values['variation_id'] ? $values['variation_id'] : $values['product_id'] ); if ( ! empty( $_product ) && $_product->exists() && $values['quantity'] > 0 ) { if ($_product->virtual == 'no' && $_product->downloadable == 'no') { $hasPhysicalProduct = true; break; } } } } if ($hasPhysicalProduct == false) { //unset($fields['billing']['billing_last_name']); //unset($fields['billing']['billing_phone']); unset($fields['billing']['billing_address_1']); unset($fields['billing']['billing_address_2']); unset($fields['billing']['billing_company']); unset($fields['billing']['billing_city']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_country']); unset($fields['billing']['billing_state']); } return $fields; }
توجه : اگه خواستید که فیلد شماره موبایل رو هم حذف کنید کافیه از ۴ خط مونده به آخر کد های بالا عبارت // رو حذف کنید .
برای کار با فیلد های صفحه خرید از فیلتر woocommerce_checkout_fields استفاده می کنیم . فیلد های ووکارس در چهار زیر مجموعه اصلی تعبیه شده اند که به شرح زیر است :
این پست هیچ دیدگاهی ندارد.