我正在使用以下php代码在Woocommerce产品页面上的产品可用性文本(有货/无货)旁边添加自定义的全局消息。
add_filter( 'woocommerce_get_availability_text', 'filter_product_availability_text', 10, 2 );
function filter_product_availability_text( $availability_text, $product ) {
if( $product->is_in_stock() && $product->managing_stock() &&
! $product-> is_on_backorder( 1 ) && $product->get_stock_quantity() > 0 ) {
$availability_text .= 'Free Shipping' . __("", "woocommerce");
}
return $availability_text;
}
当前,“免费送货”消息显示在所有产品页面上。如何排除特定产品以显示该自定义可用性消息?
更新
通过在您的IF语句中添加要排除的产品ID数组,如下所示:
&& ! in_array( $product->get_id(), array(37, 45, 46, 58) )
因此,在您的代码中:
add_filter( 'woocommerce_get_availability_text', 'filter_product_availability_text', 10, 2 );
function filter_product_availability_text( $availability_text, $product ) {
if( $product->is_in_stock() && $product->managing_stock()
&& ! $product->is_on_backorder( 1 ) && $product->get_stock_quantity() > 0
&& ! in_array( $product->get_id(), array(37, 45, 46, 58) ) ) {
$availability_text .= ' ' . __("Free Shipping", "woocommerce");
}
return $availability_text;
}
它应该工作。
要处理可变产品,也可以替换代码行:
&& ! in_array( $product->get_id(), array(37, 45, 46, 58) ) ) {
通过以下代码行:
&& ! array_intersect( array($product->get_id(), $product->get_parent_id()), array(37, 45, 46, 58) ) ) {
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句