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

Работа с весовым товаром. Сгруппированные продукты. Произвольные поля. Скрытие цен.

GlowWormy

Форумчанин
Доброго времени суток!
При создании магазина бобинной пряжи столкнулась с проблемой весового товара (товара, который продается на развес). В принципе удается выкрутиться используя Сгруппированные товары (Пряжа +бобинки для отматывания).
НО если на простом товаре (бобина пряжи целиком) указывается "нормальная" цена, то на сгруппированном "цена за 1 грамм - цена за конус"
как-то совсем не красиво(
В атрибутах товара использую "Цену за кг"
Как сделать так, чтоб показывалась цена из атрибута, вместо обычной?
Спасибо

ПыСы Пример простого товара http://www.filato.in.ua/shop/summer/linen-400-m-100-g/
Пример сгруппированного товара http://www.filato.in.ua/shop/summer/hlopok-oranzhevyiy-1500-m-100-g-2/
 

GlowWormy

Форумчанин
Удалила атрибут
Сделала произвольным полем

Код:
// Добавиление поля «Цена за кг»
add_action( 'woocommerce_product_options_pricing', 'wc_kg_product_field' ); //простого товара

function wc_kg_product_field() {
woocommerce_wp_text_input( array( 'id' => 'kg_price', 'class' => 'wc_input_price short', 'label' => __( 'Цена за кг', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')' ) );
}

add_action( 'save_post', 'wc_kg_save_product' );

function wc_kg_save_product( $product_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ( isset( $_POST['kg_price'] ) ) {
if ( is_numeric( $_POST['kg_price'] ) )
update_post_meta( $product_id, 'kg_price', $_POST['kg_price'] );
} else delete_post_meta( $product_id, 'kg_price' );
}

add_action( 'woocommerce_single_product_summary', 'wc_kg_show', 5 );

function wc_kg_show() {
global $product;
$kg = get_post_meta( $product->id, 'kg_price', true );
echo '<div class="woocommerce_msrp">';
_e( 'Цена за кг : ', 'woocommerce' );
echo '<span class="woocommerce-kg-price">' . woocommerce_price( $kg ) . '</span>';
echo '</div>';
}

// Для вывода на страницах товарных категорий
add_action( 'woocommerce_after_shop_loop_item_title', 'wc_kg_show' );
Следующий вопрос, как сделать произвольное поле для вариативных товаров и для сгруппированных товаров? Либо в отдельной вкладке, либо создать произвольную вкладку Цена? Пока эту проблему решаю импортом-экспортом... Но хотелось бы из админки как-то...
Второй вопрос. Как не выводить цену базовую цену товара в магазине? Как не выводить Цену сгруппированного товара в магазине и на карточке товара? (Цены вариативных товаров как-то сами пропали и показываются только когда сделать выбор вариации)
 
Последнее редактирование:

GlowWormy

Форумчанин
Видимо тема никого не интересует(
Либо все всё знают и молчат
Второй вопрос снят

Код:
// Прячем цену в магазине
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

// Прячем цену сгруппированного товара в карточке товара
add_filter( 'woocommerce_grouped_price_html', 'wc_wc20_grouped_price_format', 10, 2 );
function wc_wc20_grouped_price_format( $price, $product ) {
    return $display_price;
}
 

GlowWormy

Форумчанин
Еще у меня была проблемка с видом карточки товара...
перенесу решение сюда - до кучи... вдруг надо будет вернуться...

Как расположить вкладки (по факту используется только таб "Дополнительная информация") между кратким описанием и добавить в корзину?

Код:
// Вывести дополнительную информацию из таба над кнопкой добавить в корзину
function woocommerce_template_product_information() {
woocommerce_get_template( 'single-product/tabs/additional-information.php' );
}
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_product_information', 25 );

function woo_remove_product_tab($tabs) {
unset( $tabs['additional_information'] ); // Отключить таб Дополнительная информация
return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tab', 98);
результат http://zakupka.filato.in.ua/product/verblyuzhya-sherst-camel-174-m-100-g/
ПыСы думаю, как было изначально все знают
 
Сверху Снизу