اگر محصول فروشی مان مجازی و دانلودی باشد، هنگام تسویه حساب، ووکامرس از مشتری اطلاعات آدرس را نیز درخواست می کند. چطور این قسمت از فرم را برای اینگونه محصولات حذف کنیم؟
- نفیسه افقی 4 سال قبل سوال کرد
- آخرین ویرایش 4 سال قبل
- شما باید برای ارسال دیدگاه وارد شوید
برای این کار به قسمت نمایش > ویرایشگر پوسته رفته و از منوی سمت چپ، گزینه توابع پوسته (functions.php
) را انتخاب کنید. در انتهای این فایل، کدهای زیر را قرار دهید:
//حذف آدرس از محصولات مجازی
function woo_cart_virtual_downloadable_product_only()
{
global $woocommerce;
// By default, virtual/downloadable product only
$virtual_downloadable_products_only = true;
// Get all products in cart
$products = $woocommerce->cart->get_cart();
// Loop through cart products
foreach ($products as $product) {
// Get product ID
$product_id = $product['product_id'];
// is variation virtual
$is_virtual = $product['data']->virtual;
if ($is_virtual == "no") {
$virtual_downloadable_products_only = false;
if ($product['data']->is_type('yith_bundle') == true || $is_virtual != "no") {
$virtual_downloadable_products_only = true;
}
break;
}
}
return $virtual_downloadable_products_only;
}
add_filter('woocommerce_checkout_fields', 'custom_override_checkout_fields');
function custom_override_checkout_fields($fields)
{
if (woo_cart_virtual_downloadable_product_only() == true) {
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
}
return $fields;
}
با اضافه کردن این کدها، فیلدهای مورد نیاز برای ورود آدرس از فرم تسویه حساب حذف خواهد شد (فقط برای محصولاتی که دانلودی و مجازی باشند).
- نفیسه افقی 4 سال قبل پاسخ داد
- آخرین ویرایش 4 سال قبل
- شما باید برای ارسال دیدگاه وارد شوید