صفحه پرداخت شبیه edd برای محصولات دانلودی در ووکامرس

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
27/9/12
3,477
3
38
لنگرود
سلام.

کافیه کد زیر رو تو فانکشن قالبتون بذارید تا برای محصولات مجازی و دانلودی صفحه پرداختتون شبیه افزونه edd بشه و فیلدهای اضافه مانند آدرس و .... حذف بشن .

با کد زیر اگه تو سبد خریدتون ترکیبی از مجازی و فیزیکی داشته باشید بخاطر محصولات فیزیکی دیگه فیلدها حذف نمیشن و اگه فقط محصول مجازی یا دانلودیداشته باشید حذف میشن .

کد:
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );function custom_override_checkout_fields( $fields ) {	global $woocommerce;	$hasPhysicalProduct = false;	if ( ! empty( $woocommerce->cart->cart_contents ) ) {		// Cart is not empty, now loop through the cart 		$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_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;}
 
آخرین ویرایش توسط مدیر:

amir525

تازه وارد
18/6/15
11
0
1
ببخشید فانکیشن کجاست دقیقا؟؟؟

 
آخرین ویرایش توسط مدیر:

MahdiY

راهبر انجمن
25/1/13
2,109
33
48
اینترنت!
منظور از فایل فانکشن اینه :

wp-content/themes/قالب شما/functions.php

اگر این فایل وجود ندارد آن را بسازید

 

onlinearchitect

تازه وارد
10/4/15
7
0
1
29
مرسی از توضیحاتتون

ولی متاسفانه جواااب نداد؟؟

 
آخرین ویرایش توسط مدیر:

amirrezajoon

تازه وارد
25/6/15
42
0
6
18
مرسی از توضیحاتتون

ولی متاسفانه جواااب نداد؟؟
آیا مطمئن هستید که درست انجام دادید تنظیمات رو...

اینجوری باید باشه

wp-content/thems/yourthem/funcations

اگر اشتباه نکنم اینه

دوست عزیز باید هنگام ثبت محصول مجازی و دانلود رو انتخاب کنید

درضمن اگر ترکیب محصول فیزیکی و مجازی رو داشته باشید بخاطر محصوالات دانلودی فیلد هارو حذف نمیکنه وهمش هست... باید محصولاتتون مجازی باشه فقط تو سبد خرید

 

onlinearchitect

تازه وارد
10/4/15
7
0
1
29
بله شما درست میگفتید....

ممممنون و سپاسگذارم

کلی وقت دنبال حل کردن این موضوع بودم....تا به امروز :53: :53:

 

jamshimi

کاربر عضو
22/2/09
746
19
18
سلام.

کافیه کد زیر رو تو فانکشن قالبتون بذارید تا برای محصولات مجازی و دانلودی صفحه پرداختتون شبیه افزونه edd بشه و فیلدهای اضافه مانند آدرس و .... حذف بشن .

با کد زیر اگه تو سبد خریدتون ترکیبی از مجازی و فیزیکی داشته باشید بخاطر محصولات فیزیکی دیگه فیلدها حذف نمیشن و اگه فقط محصول مجازی یا دانلودیداشته باشید حذف میشن .

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );function custom_override_checkout_fields( $fields ) { global $woocommerce; $hasPhysicalProduct = false; if ( ! empty( $woocommerce->cart->cart_contents ) ) { // Cart is not empty, now loop through the cart $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_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;}
با تشکر از شما دوست عزیز

من این کد رو در فانگشن کپی کردم و برای محصولات دانلودی گزینه های اضافی حذف شدن اما چون در کنارش محصولات فیزیکی هم دارم روشهای ارسال هم درووکامرس فعال است و در فرم پرداخت محصولات دانلود نشون داده میشه و خطای زیر میده "روش حمل و نقل صحیح نمی باشد



 

Mohammad

مدیر انجمن
عضو کادر مدیریت
6/4/08
15,317
261
83
31
PersianScript
برای فروشگاه هایی که هر دو روش رو دارن ، پیشنهاد نمیشه تغییر بدید

 

jamshimi

کاربر عضو
22/2/09
746
19
18
چطور میشه وقتی یه محصول دانلوی با ووکامرس پستش رو ارسال می کنیم به جای دکمه افزودن به سبد خرید عبارت پرداخت  ودریافت آنی نمایش داده بشه؟

 

Mohammad

مدیر انجمن
عضو کادر مدیریت
6/4/08
15,317
261
83
31
PersianScript
علتش اینه که افزونه های حذف فیلد روی کل فروشگاه اعمال میشن ، نه تنها روی محصولات دانلودی... اینطوری برای محصولات فیزیکی به مشکل می خورید

 

jamshimi

کاربر عضو
22/2/09
746
19
18
علتش اینه که افزونه های حذف فیلد روی کل فروشگاه اعمال میشن ، نه تنها روی محصولات دانلودی... اینطوری برای محصولات فیزیکی به مشکل می خورید
خوب من الان تست کردم دیدم که تنها برا محصولات دانلودی ادرس حذف شده وبرا فیزیکی اون فیلدهایی که حذف شده بود وجود داره!
 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
27/9/12
3,477
3
38
لنگرود
علتش اینه که افزونه های حذف فیلد روی کل فروشگاه اعمال میشن ، نه تنها روی محصولات دانلودی... اینطوری برای محصولات فیزیکی به مشکل می خورید
نه آقا کد رو اصلاح کردم :|

توی توضیحاتشم نوشتم اگه فقط محصول دانلودی وجود داشته باشه حذف میکنه اگه حتی یه محصول فیزیکی داشته باشه حذف نمیکنه !

 

rjmb

تازه وارد
21/10/15
22
0
1
من این کد رو در اخرین خط تابع قرار دادم ولی خطا میده. دقیقا در کدام قسمت باید این کد رو قرار داد؟

 

lytner

تازه وارد
24/11/15
1
0
1
سلام مهندس.من این کد را وارد می کنم ولی متأسفانه با خطای 500 مواجه میشم.چطوری باید حلش کنم؟؟

با تشکر از زحمات شما

 

Mohammad

مدیر انجمن
عضو کادر مدیریت
6/4/08
15,317
261
83
31
PersianScript
این کد رو باید در فانکشن وارد کنید و ربطی به ارور 500 نداره... مطمئنید درست طی مسیر کردید؟

 

rjmb

تازه وارد
21/10/15
22
0
1
من که کد رو میذارم کلا سایت بالا نمیاد و میگه خطا در خط فلان از function