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

jamshimi

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

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

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

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

با تشکر

 

behe_s

تازه وارد
درستش کد زیره
 

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

infodeta

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

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

 

rezarnmsh

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

 

jamshimi

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

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

os.PNG


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

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

jamshimi

کاربر عضو
سلام.

کافیه کد زیر رو تو فانکشن قالبتون بذارید تا برای محصولات مجازی و دانلودی صفحه پرداختتون شبیه افزونه 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

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

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

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

با تشکر

 

Mohammad

مدیر انجمن
پرسنل مدیریت
<p class="order-again">
<a href="/my-account/view-order/14587/*********" class="button">سفارش دوباره</a>
</p>




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

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

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

 

jamshimi

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


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

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

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

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

 

jamshimi

کاربر عضو
@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
واکنش‌ها[ی پسندها]: Mohammad

MahdiY

راهبر انجمن
@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
واکنش‌ها[ی پسندها]: jamshimi

jamshimi

کاربر عضو
سلام
دقیقا متوجه سوالتون نشدم اما این کد بصورت ابزار در ووکامرس فارسی اضافه شده. ووکامرس فارسی > ابزارها > تسویه حساب > حذف فیلدهای غیرضروری

درود
یعنی برای محصولات مجازی با فعال کردن اون ابزار، فیلدهای غیر ضروری نشون داده نمیشه؟
و اگر سفارش ترکیبی از هر دو مجازی و فیزیکی باشه نشون داده میشه؟
 
بالا