hannanstd.ir
مدیر انجمن و توسعه دهنده ووکامرس پارسی
سلام.
کافیه کد زیر رو تو فانکشن قالبتون بذارید تا برای محصولات مجازی و دانلودی صفحه پرداختتون شبیه افزونه edd بشه و فیلدهای اضافه مانند آدرس و .... حذف بشن .
با کد زیر اگه تو سبد خریدتون ترکیبی از مجازی و فیزیکی داشته باشید بخاطر محصولات فیزیکی دیگه فیلدها حذف نمیشن و اگه فقط محصول مجازی یا دانلودیداشته باشید حذف میشن .
کافیه کد زیر رو تو فانکشن قالبتون بذارید تا برای محصولات مجازی و دانلودی صفحه پرداختتون شبیه افزونه 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;}
آخرین ویرایش توسط مدیر: