The Crow
Новичок
Помогите дурачку разобраться!!!
При помощи данного кода можно занести цену в корзину из произвольного поля. Но как только задаешь формат вывода цены на экран в контейнере else (при чем исключительно для простого товара) корзина считает и суммирует только первый разряд чисел (т.е тысячи). Если же в контейнере else не задавать цене формат, все работает как часы, за исключением того что на экран выводиться неотформатированное число вместо нормальной цены (только для простого товара!!!). Вариативный товар можно форматировать и вывести на экран как хочешь. ПОЧЕМУ?
При помощи данного кода можно занести цену в корзину из произвольного поля. Но как только задаешь формат вывода цены на экран в контейнере 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 );
Последнее редактирование: