根据WooCommerce中的产品类别定制缺货文本(&O)

每件缺货产品都会显示缺货

有很多functions.php脚本可以覆盖文本,但我只是尝试覆盖特定于类别A&q;的文本,或者如果我知道类别&id&q;编号,也可以这样做。

我找到此脚本,但它仅允许您修改每个产品ID的txt。

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 10, 2);       
function wcs_custom_get_availability( $availability, $_product ) { 
    // custom 
    if ( $_product->is_in_stock() && $_product->get_id() == '6498' ) {
        $availability['availability'] = sprintf( __('✔️ Available but low in stock | 30-day No Questions Asked Money-Back Guarantee Applies', 'woocommerce'), $_product->get_stock_quantity());
    }

    // Out of stock
    if ( ! $_product->is_in_stock() ) {
        $availability['availability'] = __('Sorry, All sold out!', 'woocommerce');
    }

    return $availability;
}

如何在考虑类别的情况下进一步调整此脚本?


解决方案

要检查产品类别,可以使用has_term()

has_term( string|int|array $term = '', string $taxonomy = '', int|WP_Post $post = null )

检查当前帖子是否有任何给定术语。


因此您得到:

function filter_woocommerce_get_availability( $availability, $product ) {
    // Specific categories
    $specific_categories = array( 'Categorie-A', 'categorie-1' );
    
    // Out of stock and has certain category     
    if ( ! $product->is_in_stock() && has_term( $specific_categories, 'product_cat', $product->get_id() ) ) {
        $availability['availability'] = __('My custom text', 'woocommerce' );
    }

    return $availability;
}
add_filter( 'woocommerce_get_availability', 'filter_woocommerce_get_availability', 10, 2 );

相关文章