Добавьте суффикс к отображаемой цене для большинства товаров в Woocommerce. - PullRequest
0 голосов
/ 04 марта 2019

Я попытался добавить is_product и if ( $product->get_id() !== xxx ) к функции, но это не работает.

Вот функция, которую я пытаюсь добавить ко всем продуктам, кроме одного.

function change_product_price_html($price){
    if ( $product->get_id() !== 555 ) {
    $newPrice   = $price;
    $newPrice   .= " / m3";
    return $newPrice;
    }
}

add_filter('woocommerce_get_price_html', 'change_product_price_html');

Может мне сначала нужен массив для получения идентификатора продукта?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

вызовите $ product как глобальную переменную.Вот и все

function change_product_price_html($price){
global $product
if ( $product->ID !== 555 ) {
$newPrice   = $price;
$newPrice   .= " / m3";
return $newPrice;
}
}

add_filter('woocommerce_get_price_html', 'change_product_price_html');
0 голосов
/ 04 марта 2019

Вы забыли аргумент $product в функции и другие ошибки.попробуйте вместо этого:

add_filter('woocommerce_get_price_html', 'change_product_price_html', 10, 2 );
function change_product_price_html( $price, $product ){
    if ( $product->get_id() !== 555 ) {
        $price .= __(" / m3");
    }
    return $price;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Должно работать.


Только для отдельных страниц товара, используя is_product() условный тег:

add_filter('woocommerce_get_price_html', 'change_product_price_html', 10, 2 );
function change_product_price_html( $price, $product ){
    if ( is_product() && $product->get_id() !== 555 ) {
        $price .= __(" / m3");
    }
    return $price;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).).Должно работать.

...