1
我發現此要點隱藏虛擬產品的不需要的結賬字段。如果有虛擬產品和實物產品,我如何調整它以便不隱藏字段?我擅長編寫WordPress條件語句,但我無法理解如何編寫此條款。WooCommerce - 條件語句刪除不需要的結帳字段
我希望有任何幫助。
<?php
add_filter('woocommerce_checkout_fields' , 'woo_remove_billing_checkout_fields');
/**
* Remove unwanted checkout fields
*
* @return $fields array
*/
function woo_remove_billing_checkout_fields($fields) {
if(woo_cart_has_virtual_product() == true) {
unset($fields['billing']['billing_company']);
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']);
unset($fields['billing']['billing_phone']);
unset($fields['order']['order_comments']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_city']);
}
return $fields;
}
/**
* Check if the cart contains virtual product
*
* @return bool
*/
function woo_cart_has_virtual_product() {
global $woocommerce;
// By default, no virtual product
$has_virtual_products = false;
// Default virtual products number
$virtual_products = 0;
// Get all products in cart
$products = $woocommerce->cart->get_cart();
// Loop through cart products
foreach($products as $product) {
// Get product ID and '_virtual' post meta
$product_id = $product['product_id'];
$is_virtual = get_post_meta($product_id, '_virtual', true);
// Update $has_virtual_product if product is virtual
if($is_virtual == 'yes')
$virtual_products += 1;
}
if(count($products) == $virtual_products)
$has_virtual_products = true;
return $has_virtual_products;
}
是的,這個工程。謝謝! 如果我改變 '如果(woo_cart_has_virtual_product()==真)'來 '如果(woo_cart_has_virtual_product()==假)' 它不工作。因此,如果我想在沒有任何虛擬產品的情況下取消結帳字段,我該如何編寫它? – Angela
a)從我的代碼中刪除'else'部分。 b)在'if'子句中改變'$ virtual_products + = 1;'並返回true;'c)將if(woo_cart_has_virtual_product()== true)'改爲'if(woo_cart_has_virtual_product()== false)'。 –
謝謝!有效。 :) – Angela