
Уже больше 2 недель не выходит ничего, подскажите пожалуйста, как же это правильно сделать?
Файл wc-formatting-functions.php (строка 426)
Вывод символа валюты мне не нужен (get_woocommerce_currency_symbol( $currency ) ) - я его убрал.
Через админку добавляю поля которые вывожу в карточке товара (там все работает)
К примеру в карточке товара я делаю вывод так: в файле price.php пишу:
С помощью $rooms = get_post_meta( $product->id, 'rooms', true ) - я рядом с суммой получаю вывод того что указываю в админке в доп. поле.
Возвращаемся к файлу wc-formatting-functions.php и что я здесь только не писал - ну ничего не выходит
Как же мне все-таки правильно сформировать этот $formatted_price ? По сути я так понимаю что сам wc-formatting-functions.php не поймет что от него хотят, он не понимает что такое $rooms = get_post_meta( $product->id, 'rooms', true ) или просто $rooms - может ему нужно отдельно какую-то функию прописать дополнительно в этом файле? Помогите пожалуйста понять что? где? как? куда?
Файл wc-formatting-functions.php (строка 426)
Код:
$formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, '<span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $currency ) . '</span>', $price );
$return = '<span class="woocommerce-Price-amount amount">' . $formatted_price . '</span>';
Через админку добавляю поля которые вывожу в карточке товара (там все работает)
Код:
add_action( 'woocommerce_product_options_general_product_data', 'wc_rooms_product_field' );
function wc_rooms_product_field() {
woocommerce_wp_text_input( array( 'id' => 'rooms', 'class' => 'wc_input_curency_price short', 'label' => __( 'Валюта', 'woocommerce' ) . ' ' ) );
}
add_action( 'save_post', 'wc_rooms_save_product' );
function wc_rooms_save_product( $product_id ) {
// Если это автосохранение, то ничего не делаем, сохраняем данные только при нажатии на кнопку Обновить
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( isset( $_POST['rooms'] ) ) { update_post_meta( $product_id, 'rooms', $_POST['rooms'] );
} else delete_post_meta( $product_id, 'rooms' );
}
/*************Показываем поле на самом сайте********/
/*add_action( 'woocommerce_single_product_summary', 'wc_rooms_show', 15 );
function wc_rooms_show() { global $product;
// Ничего не предпринимаем для вариативных товаров
if ( $product->product_type <> 'variable' ) {$rooms = get_post_meta( $product->id, 'rooms', true );
echo '<div style="width: 72%; height: 0; border-bottom: 1px dotted violet;"> </div> <div class="woocommerce_msrp">';
_e( 'Валюта: ', 'woocommerce' );
echo '<span class="woocommerce-rooms-price">' . woocommerce_clean( $rooms ) . '</span>';
echo '</div>';
}
}
К примеру в карточке товара я делаю вывод так: в файле price.php пишу:
Код:
<?php echo $product->get_display_price(), $rooms = get_post_meta( $product->id, 'rooms', true ); ?>
Возвращаемся к файлу wc-formatting-functions.php и что я здесь только не писал - ну ничего не выходит
Код:
$formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, $rooms = get_post_meta( $product->id, 'rooms', true ), $price );
$return = '<span class="woocommerce-Price-amount amount">' . $formatted_price . '</span>';
Как же мне все-таки правильно сформировать этот $formatted_price ? По сути я так понимаю что сам wc-formatting-functions.php не поймет что от него хотят, он не понимает что такое $rooms = get_post_meta( $product->id, 'rooms', true ) или просто $rooms - может ему нужно отдельно какую-то функию прописать дополнительно в этом файле? Помогите пожалуйста понять что? где? как? куда?