• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Отправить цену товара корзине из произвольного поля.

The Crow

Новичок
Помогите дурачку разобраться!!!
При помощи данного кода можно занести цену в корзину из произвольного поля. Но как только задаешь формат вывода цены на экран в контейнере else (при чем исключительно для простого товара) корзина считает и суммирует только первый разряд чисел (т.е тысячи). Если же в контейнере else не задавать цене формат, все работает как часы, за исключением того что на экран выводиться неотформатированное число вместо нормальной цены (только для простого товара!!!). Вариативный товар можно форматировать и вывести на экран как хочешь. ПОЧЕМУ?
PHP:
add_filter('woocommerce_get_price_html', 'sv_change_product_html', 10, 2 );

function sv_change_product_html( $price_html, $product ) {

    $rrp = get_post_meta( $product->id, 'rrp_price', true );
    
    if ( ! empty( $rrp ) ) {
        $price_html = '<span class="amount">' . wc_price( $rrp ) .'</span>';
 
       if($product->product_type=='variable') {
 
        $nrrp = number_format($rrp, 0, ',', ' ');
        $nrrp = 'от '. $nrrp;
        //$nrrp .= ' грн.';
        return $nrrp;

    } else {
    
        $nrrp = number_format($rrp, 0, ',', ' ');
        $nrrp .= ' грн.';
        return $nrrp;
        }
        return $rrp;
    }
 
}


function sv_change_product_price_cart( $price, $cart_item, $cart_item_key ) {
    $rrp = get_post_meta( $cart_item['product_id'], 'rrp_price', true );
    if ( ! empty( $rrp ) ) {
 
        $price = wc_price( $rrp );
        var_dump($price);
    }
    return $price;
}
add_filter( 'woocommerce_cart_item_price', 'sv_change_product_price_cart', 10, 3 );
 
Последнее редактирование:
Сверху Снизу