Сделайте расчеты по цене продукта Woocommerce html и отобразите ее

В Woocommerce у меня есть этот PHP-код, который выводит цену продукта и все в порядке.

Но мне нужно, чтобы он тоже распечатал цену, разделенную на 10. Я пробовал много способов, и это просто не работает.

Вот код:

    if ($hide_price !== '0') :
        $output_price .= '<div class="dhvc-woo-price dhvc-woo-span6">';
        $output_price .= $product->get_price_html (); //this is where the price is called
        $output_price .= '<p><br>Em até 10x de</p>'; //this is where it should print the price / by 10
        $output_price .= '</div>';
    endif;
    $output .= apply_filters('dhvc_woo_price', $output_price, $product, $display);

Я пробовал $output_price .= $product->get_price_html() / 10; // это дает мне 0

Также пробовал другие способы, и это просто дало мне ошибку php.

Любая помощь приветствуется.


person ncesar    schedule 26.03.2018    source источник
comment
Покажите свою функцию get_price_html(). Это помогло бы понять проблему.   -  person Avi_B    schedule 27.03.2018
comment
Похоже, что get_price_html() возвращает HTML, который нельзя разделить численно.   -  person showdev    schedule 27.03.2018
comment
Ави, вот цена_html из WooCommerce: docs.woocommerce. com/wc-apidocs/   -  person ncesar    schedule 27.03.2018
comment
Эй, Шоудев, большое тебе спасибо, чувак. Это сработало!! Вот как я это сделал, как в теме, которую вы разместили: $cartao = $product-›get_price(); // должно возвращать числовое значение вместо строки $totalPrice = $cartao / 10; if ($hide_price !== '0'): $output_price .= '‹div class=dhvc-woo-price dhvc-woo-span6›'; $output_price .= $product-›get_price_html (); $output_price .= number_format($totalPrice, 2, ',', '.'); $output_price .= '‹/div›'; Черт, чувак, ты спас мой день. Спасибо всем, кто также прокомментировал! Извините за мой плохой английский, это не мой родной язык.   -  person ncesar    schedule 27.03.2018
comment
Не дубликат, так как он также включает HTML, а предоставленное решение с get_price() не подходит в этой связанной ветке… Правильно использовать wc_get_price_to_display($product) который будет заботиться об отображаемых необработанных вариантах налога на цену  -  person LoicTheAztec    schedule 27.03.2018


Ответы (2)


Вам нужно использовать wc_get_price_to_display($product) вместо $product->get_price_html(), чтобы вывести необработанную числовую цену.

wc_get_price_to_display($product) будет заботиться о том, отображается с налогом или нет общего варианта(что не относится к $product->get_price()).

Код:

if ($hide_price !== '0') :
     $output_price .= '<div class="dhvc-woo-price dhvc-woo-span6">';
     $output_price .= $product->get_price_html (); //this is where the price is called

     // Here your correct price divided by 10 and formatted for the output
     $price_d10 = wc_price(wc_get_price_to_display($product) / 10);
     $output_price .= '<p><br>Em até 10x de '. $price_d10 .'</p>';
     $output_price .= '</div>';
 endif;

 $output .= apply_filters('dhvc_woo_price', $output_price, $product, $display);

Проверено и работает

person LoicTheAztec    schedule 26.03.2018
comment
По какой-то причине таким образом он показывает только текст. Но все равно спасибо, вы молодцы!! - person ncesar; 27.03.2018

Может быть:

$product->get_price()/10; 

or

number_format((float)$product->get_price()/10, 2, '.', '');

с 2 знаками после запятой?

person Raphael    schedule 26.03.2018