Спасибо, сейчас ознакомлюсь, подскажите пожалуйста, по моему посту второму в этой теме: "Тему "Woocommerce, каждому товару своя валюта" почитайте. На базе нее можно набросать решение.
В теме для прочтения есть ответ как снять ограничение на цифры с помощью передаваемого класса.Сам задаю вопросы, а потом сам себе даю ответы В общим так, добавил я дополнительное поле на странице добавления товара в админке, вывожу его, все работает, остаеться вопрос: как можно разрешить в это поле вводить буквы и символы, а то запрашивает только ввод цифр. (сделал по примеру который нашел здесь на форуме): http://wpincode.com/proizvolnye-polya-v-woocommerce/
Спасибо, получилось, а не подскажите, в каком файле подправить нужно что бы именно в строке Базовая цена можно было текст ввести? Не могу найти что-то(В теме для прочтения есть ответ как снять ограничение на цифры с помощью передаваемого класса.
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' );
}
<p class="price"><?php echo $product->get_price_html(); ?></p>
<p class="price"><?php echo $product->get_price_html(); ?> <?php echo '<span class="woocommerce-price">' .get_post_meta( $product->id, 'rooms', true ); '</span>'; ?></p>
$formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, '<span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $currency ) . '</span>', $price );
Дайте пожалуйста совет) Как правильно вывести это значение в wc-formatting-functions.php?Начал с самого начала Уже есть подвижки, добавляем произвольное поле с вводом текста и сохраняем его:
Код: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' ); }
Все ок! Поле добавилось, значение сохранилось! То что нужно!
Далее есть проблемка, например если я добавлю в price.php в эту строчку:
Код:<p class="price"><?php echo $product->get_price_html(); ?></p>
например так:
Код:<p class="price"><?php echo $product->get_price_html(); ?> <?php echo '<span class="woocommerce-price">' .get_post_meta( $product->id, 'rooms', true ); '</span>'; ?></p>
То у меня все отлично выводит (именно то значение которое я написал в доп.текстовое поле.
Так вот проблема, мне нужно это же значение прописать в wc-formatting-functions.php в эту строчку:
Код:$formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, '<span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $currency ) . '</span>', $price );
Вместо <span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $currency ) . '</span>
я добавляю <span class="woocommerce-price">' .get_post_meta( $product->id, 'rooms', true ). '</span>
И тут ничего не происходит - не выводит здесь текст из доп. поля. Подскажите пожалуйста, как поправить нужно?
/*************Показываем поле на самом сайте********/
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>';
}
}