Woocommerce php code get_price_html ()

Я новичок в WordPress и WooCommerce, я считаю, что я определил строку кода, которая производит вывод, который я хочу изменить.

Я использую тему бесплатного artificer от WooCommerce, а index.php имеет строку:

<h3> <?php the_title(); ?> <span class="price"> <?php echo $_product->get_price_html(); ?> </span> </h3> 

Это создает нечто вроде «Black Stone – $ 43» (то есть название продукта – цена )

Я хочу что-то вроде «Черный камень»
$ 43"
(т.е. название продукта <br/> цена )

Похоже, существуют некоторые фильтры для функции “ get_price_html () `, но документация не очень хорошая или я просто не понимаю, как перемещаться по ней.

Любое направление будет оценено по достоинству.
Благодарю.

все $product->get_price_html(); производит что-то вроде этого:

 <del><span class="amount">£8.00</span>–<span class="amount">£9.00</span></del> <ins><span class="amount">£7.00</span>–<span class="amount">£8.00</span></ins> 

чтобы манипулировать этими данными, вы должны извлечь их из этой строки

Если вы используете фильтры WP – вы будете изменять get_price_html() вывод везде, и если вам нужно изменить get_price_html() вывод только в одном месте, вы должны сделать следующее:

 global $product; $price_html = $product->get_price_html(); $price_html_array = price_array($price_html); function price_array($price){ $del = array('<span class="amount">', '</span>','<del>','<ins>'); $price = str_replace($del, '', $price); $price = str_replace('</del>', '|', $price); $price = str_replace('</ins>', '|', $price); $price_arr = explode('|', $price); $price_arr = array_filter($price_arr); return $price_arr; } 

теперь у вас одинаковые данные в массиве

 Array ( [0] => £8.00–£9.00 [1] => £7.00–£8.00 ) 

и вы можете сделать с ним все, что хотите

для применения глобального фильтра вы должны добавить

 add_filter( 'woocommerce_get_price_html', 'price_array', 100, 2 ); 

Вероятно, это фильтр, который вы ищете:

 add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2); function custom_variation_price( $price, $product ) { $price = ''; $price .= woocommerce_price($product->min_variation_price); return $price; } 

Это просто меняет его так, чтобы отображалась минимальная цена (и ничего больше), так как непонятно, как вы хотите форматировать / стилизовать ее. Вы можете получить доступ к другим сведениям через объект $ product для настройки вывода. Используйте его в файле functions.php.

Вы можете добиться этого, изменив указанную строку и добавив небольшой код css в файл custom.css темы.

Замените данный код следующим образом:

 <h3> <?php the_title(); ?> <br/> <span class="price"> <?php echo $_product->get_price_html(); ?> </span> </h3> 

И добавьте следующий код css либо в файл custom.css (рекомендуется), либо в последнюю строку файла style.css .

 ul.featured-products li h3 .price::before{ content : '' !important; } 

Обратите внимание: приведенный выше код проверен и отлично работает с Artificer версии 1.3.16 (который был выпущен 05 мая 2016 года).

Надеюсь это поможет!