Ценовая позиция магазина Woocommerce
Я использую тему витрины магазина с woocommerce и хочу создать пользовательский макет на странице магазина.
В этом пользовательском макете нет миниатюры продукта, название и цена должны быть внутри одного и того же div, чтобы я мог легко настроить его с помощью css.
Однако, когда я пытаюсь получить цену внутри тегов h2, она не дает ожидаемого результата. Он появляется, но над заголовком и за пределами пользовательского раздела. Что я делаю не так?
Смотрите изображение для ссылка
remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );
add_filter( 'woocommerce_shop_loop_item_title' , 'custom_woocommerce_template_loop_product_title', 10);
function custom_woocommerce_template_loop_product_title () {
echo '
<div class="custom-title-wrapper">
<h1 class="woocommerce-loop-product__title custom-loop-product-title">' . get_the_title() . '</h1>
<h2>' . woocommerce_template_loop_price() . '</h2>
</div>'
;
}
1 answers
Он появляется, но над заголовком и за пределами пользовательского раздела. Что я делаю не так?
Это потому, что woocommerce_template_loop_price()
повторяет вывод.
Поэтому, чтобы устранить проблему, просто используйте ?> HTML here <?php
вместо echo 'HTML here';
:
function custom_woocommerce_template_loop_product_title() {
?>
<div class="custom-title-wrapper">
<h1 class="woocommerce-loop-product__title custom-loop-product-title"><?php the_title(); ?></h1>
<h2><?php woocommerce_template_loop_price(); ?></h2>
</div>
<?php
}
И (хотя это не большая проблема) вы должны использовать add_action()
, а не add_filter()
, потому что woocommerce_shop_loop_item_title
- это действие, а не фильтр:
add_action( 'woocommerce_shop_loop_item_title', 'custom_woocommerce_template_loop_product_title', 10 );