function a000_remove_bundles_counting(){
global $woocommerce_bundles;
remove_filter( 'woocommerce_cart_contents_count',
array( $woocommerce_bundles->display, 'woo_bundles_cart_contents_count' ) );
}
add_action( 'init', 'a000_remove_bundles_counting' );
function d000_cart_contents_count( $count ) {
global $woocommerce;
$cat_check = false;
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
if ( has_term( 'VIP', 'product_tag', $product->id ) ) {
$cat_check = true;
if (!function_exists('woo_override_checkout_fields')) {
function woo_override_checkout_fields( $fields ) {
$fields['billing']['billing_country'] = array(
'type' => 'select',
'label' => __('Country', 'woocommerce'),
'options' => array('US' => 'United States(US)')
);
$fields['billing']['billing_state'] = array(
'type' => 'select',
'label' => __('State', 'woocommerce'),
'options' => array('CA' => 'California(CA)')
);
return $fields;
}
}
add_filter( 'woocommerce_checkout_fields' , 'woo_override_checkout_fields' );
}
}
return $count;
}
add_filter( 'woocommerce_cart_contents_count',
'd000_cart_contents_count' );
首先,您需要设置产品标签“VIP”或其他您喜欢的标签,然后将其添加到代码中。
if ( has_term( 'VIP', 'product_tag', $product->id ) ) {//search product_cat
$cat_check = true;
}
在这个函数中,查看是否有带“VIP”产品标签的任何产品。
并且
$cat_check = true;
然后在函数内部,我们添加函数
woo_override_checkout_fields($fields)
以设置限制国家为运输国家字段。
在
woo_override_checkout_fields($fields) { }
内部
设置您想要显示的国家。
$fields['billing']['billing_country'] = array(
'type' => 'select',
'label' => __('Country', 'woocommerce'),
'options' => array('US' => 'United States(US)')
);
$fields['billing']['billing_state'] = array(
'type' => 'select',
'label' => __('State', 'woocommerce'),
'options' => array('CA' => 'California(CA)')
);
WC()->countries->get_countries()
来获取国家数组。 - Petschko