我深入挖掘了一下,在摘要中发现WC_Product
同学们,这里有needs_shipping()
方法:
/**
* Checks if a product needs shipping.
*
* @access public
* @return bool
*/
public function needs_shipping() {
return apply_filters( \'woocommerce_product_needs_shipping\', $this->is_virtual() ? false : true, $this );
}
而且它是可过滤的,这意味着我们可以忽略我们喜欢的任何产品的运输成本需求。假设您有一个包含slug的shipping类:
shipping-class
您可以将具有该类的任何项目设置为不需要发货:
function wpa_123136_no_shipping( $needs_shipping, $product ){
if( $product->get_shipping_class() == \'free-shipping\' ){
$needs_shipping = false;
}
return $needs_shipping;
}
add_filter(\'woocommerce_product_needs_shipping\',\'wpa_123136_no_shipping\', 10, 2 );
或者,如果您有一个价格点,不想为免费送货类而烦恼:
function wpa_123136_no_shipping( $needs_shipping, $product ){
if( $product->get_price() < 200 ){
$needs_shipping = false;
}
return $needs_shipping;
}
add_filter(\'woocommerce_product_needs_shipping\',\'wpa_123136_no_shipping\', 10, 2 );