Изменить текст доступности WooCommerce для определенных авторов сообщений

Я хотел бы изменить текст доступности woocommerce только для определенных авторов сообщений.

У меня уже есть этот фрагмент, но мне нужно установить условие автора сообщения. На странице продукта, созданной автором ID 3, должен отображаться определенный текст доступности.

/**
 * Code snippet to change WooCommerce In Stock text 
 */ 

add_filter( 'woocommerce_get_availability', 'change_in_stock_text', 1, 2);

function change_in_stock_text( $availability, $_product) {
    
    // Change In Stock Text
    if ( $_product->is_in_stock() || $post->post_author == '3') {
                $availability['availability'] = sprintf( __('%s an Lager', 'woocommerce'), $_product->get_stock_quantity() );
    }
   
    return $availability;
}

person netzwerkstatt    schedule 13.09.2020    source источник


Ответы (1)


Используйте следующее, чтобы изменить текст доступности WooCommerce для определенного автора сообщения:

add_filter( 'woocommerce_get_availability', 'change_in_stock_text', 1, 2);
function change_in_stock_text( $availability, $product ) {
    global $post;

    if ( ! is_a( $post, 'WP_Post' ) ) {
        $post = get_post( $product->get_id() );
    }
    
    // Change In Stock Text for a specific post author
    if ( $product->is_in_stock() && $post->post_author == '3') {
        $availability['availability'] = sprintf( __('%s an Lager', 'woocommerce'), $product->get_stock_quantity() );
    }
   
    return $availability;
}

Для нескольких авторов сообщений вы будете использовать in_array() следующим образом:

add_filter( 'woocommerce_get_availability', 'change_in_stock_text', 1, 2);
function change_in_stock_text( $availability, $product ) {
    global $post;

    if ( ! is_a( $post, 'WP_Post' ) ) {
        $post = get_post( $product->get_id() );
    }
    
    // Change In Stock Text for specifics post authors
    if ( $product->is_in_stock() && in_array( $post->post_author, array('3' ,'5') ) ) {
        $availability['availability'] = sprintf( __('%s an Lager', 'woocommerce'), $product->get_stock_quantity() );
    }
   
    return $availability;
}

Он должен работать.

person LoicTheAztec    schedule 13.09.2020