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

jamshimi

کاربر عضو
22/2/09
719
13
18
حنان عزیز سلامدر محصولات دانلودی چطور میشه به جای دکمه یا عبارت افزودن به سبد خرید ،عبارت خرید و دانلود فوری جایگزین کرد و تنها برای محصولات فیزیکی عبارت افزودن به سبد خرید وجود داشته باشد/

همین طور کلاس فونت دکمه افزودن به سبد خرید چیه؟ می خوام در افزونه تغییر فونت از اون کلاس استفاده کنم تا فونت دکمه افزودن به سبد خرید تغییر بدم

باتشکر از محبت شما بابت راهنمایی های ارزنده
حنان جان میشه این مورد هم به کدی که دادید اضافه کرد؟

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

با تشکر

 

behe_s

تازه وارد
23/11/09
2
0
1
درستش کد زیره
 

کد:
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;}
}
}
 
آخرین ویرایش توسط مدیر:

logofun

تازه وارد
11/4/14
62
1
8
من کد رو قرار دادم دیگه سایت بالا نمیاد

 

infodeta

تازه وارد
17/12/16
86
12
8
30
تهران
infojobsiran.ir
من میزارم بالا نمیاد چی کار کنم سایت من کل محصولاتم دانلودی هستش و به خیلی از فیلدهای موقع پرداخت رو لازم ندارم

باید چطوری حذفشون کنم ؟

 

rezarnmsh

تازه وارد
11/2/17
9
0
1
من فکر میکنم شما در لوکال هاست چک میکنید کد را  هاست اجرا کنید

 

jamshimi

کاربر عضو
22/2/09
719
13
18
بعد از بروز سانی افزونه Persian Woocommerce Shipping زمانی که محصول مجازی و دانلودی می باشد. ایتم نام استان در مرحله آخر تسویه حساب اضافه شده که هیچ کدوم از استان ها هم داخلش نیست و لزومی هم نداره این ایتم باشه

. حنان عزیز ممنون میشم کد بالا را ویرایش نمایید تا منوی استان هم مخفی بشه



در حالتی که محصول فیزیکی است مشکلی نیست و نام استان ها وجود داره

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

jamshimi

کاربر عضو
22/2/09
719
13
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;}
کد:
<p class="order-again">
	<a href="/my-account/view-order/14587/*********" class="button">سفارش دوباره</a>
</p>
حنان جان من این کد رو گذاشتم همه چی خوبه منتهی وقتی محصول مجازی هست باز هم شهر رو نشون میده که در لیست کشویی اون هم لیست شهر ها نیست. منتهی وقتی محصول فیزیکی هست یا مخلوط مجازی و فیزیکی هست درسته و هیچ مشکلی نداره. ممنون میشم یه بررسی در کد بفرمایید.

راستی من از افزونه Persian WooCommerce Shipping استفاده می کنم

با تشکر فراوان

 

jamshimi

کاربر عضو
22/2/09
719
13
18
از کد پست اول استفاده کردم و همه چی خوبه

منتهی می خوام بخش توضحیات تکمیلی و کادر یادداشت سفارش(اختیاری) که شامل یادداشت های شما درباره سفارش، برای مثال توضیحات مهم برای تحویل بار برای زمانی که محصول مجازی و دانلودی هست حذف بشه و به عبارتی نشون داده نشه

ممنون میشم دوستان کد مربوطه به پنهان کردن این بخش را قرار بدهند

با تشکر

 

Mohammad

مدیر انجمن
عضو کادر مدیریت
6/4/08
15,235
189
63
31
PersianScript
<p class="order-again">
<a href="/my-account/view-order/14587/*********" class="button">سفارش دوباره</a>
</p>




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

راستی من از افزونه Persian WooCommerce Shipping استفاده می کنم

با تشکر فراوان
لطفا فیلد کشور رو حذف نکنید.

 

jamshimi

کاربر عضو
22/2/09
719
13
18
لطفا فیلد کشور رو حذف نکنید.

از کد پست اول استفاده کردم و همه چی خوبه

منتهی می خوام بخش توضحیات تکمیلی و کادر یادداشت سفارش(اختیاری) که شامل یادداشت های شما درباره سفارش، برای مثال توضیحات مهم برای تحویل بار برای زمانی که محصول مجازی و دانلودی هست حذف بشه و به عبارتی نشون داده نشه

ممنون میشم دوستان کد مربوطه به پنهان کردن این بخش را قرار بدهند

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

 

jamshimi

کاربر عضو
22/2/09
719
13
18
@MahdiY
درود وقت بخیر
آیا در آخرین ورژن ووکامرس فارسی نیاز به این کد هست؟
کد:
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;}
 
  • Like
Reactions: Mohammad

MahdiY

راهبر انجمن
25/1/13
2,108
30
48
اینترنت!
@MahdiY
درود وقت بخیر
آیا در آخرین ورژن ووکامرس فارسی نیاز به این کد هست؟
کد:
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;}
سلام
دقیقا متوجه سوالتون نشدم اما این کد بصورت ابزار در ووکامرس فارسی اضافه شده. ووکامرس فارسی > ابزارها > تسویه حساب > حذف فیلدهای غیرضروری
 
  • Like
Reactions: jamshimi

jamshimi

کاربر عضو
22/2/09
719
13
18
سلام
دقیقا متوجه سوالتون نشدم اما این کد بصورت ابزار در ووکامرس فارسی اضافه شده. ووکامرس فارسی > ابزارها > تسویه حساب > حذف فیلدهای غیرضروری
درود
یعنی برای محصولات مجازی با فعال کردن اون ابزار، فیلدهای غیر ضروری نشون داده نمیشه؟
و اگر سفارش ترکیبی از هر دو مجازی و فیزیکی باشه نشون داده میشه؟