Так, удалось сделать как смог, осталось только сделать чтобы они автоматически рассчитывались при сумме в корзине
/* Выводим поле аренды при создании товара */
add_action( 'woocommerce_product_options_general_product_data', 'art_woo_add_custom_fields' );
function art_woo_add_custom_fields() {
global $product, $post;
echo '<div class="options_group">';
woocommerce_wp_text_input( array(
'id' => '_text_field',
'label' => __( 'Мелкий опт (₽)', 'woocommerce' ),
'placeholder' => 'Мелкооптовая цена',
'desc_tip' => 'true',
'custom_attributes' => array( 'required' => 'required' ),
'description' => __( 'Мелкооптовая цена',
'woocommerce' ),
) );
woocommerce_wp_text_input( array(
'id' => '_opt',
'label' => __( 'Опт (₽)', 'woocommerce' ),
'placeholder' => 'Оптовая цена',
'desc_tip' => 'true',
'custom_attributes' => array( 'required' => 'required' ),
'description' => __( 'Оптовая цена',
'woocommerce' ),
) );
echo '</div>';
}
/* Сохраняем значение аренды в базе данных */
add_action( 'woocommerce_process_product_meta', 'art_woo_custom_fields_save', 10 );
function art_woo_custom_fields_save( $post_id ) {
$woocommerce_text_field = $_POST['_text_field'];
if ( $woocommerce_text_field ) {
update_post_meta( $post_id, '_text_field', esc_attr( $woocommerce_text_field ) );
}
$woocommerce_opt = $_POST['_opt'];
if ( $woocommerce_opt ) {
update_post_meta( $post_id, '_opt', esc_attr( $woocommerce_opt ) );
}
}
/* Выводим аренду в карточке товара */
add_action( 'woocommerce_single_product_summary', 'art_get_text_field_before_add_card', 'art_get_opt_before_add_card');
function art_get_text_field_before_add_card() {
global $post, $product;
$text_field = get_post_meta( $post->ID, '_text_field' , true );
if ( $text_field ) {
?>
<span class="text-field">
<strong>Мелкий опт:<br> </strong>
<?php echo $text_field;?> ₽
<p> от 30 000 ₽</p>
</span>
<?php }
}
add_action( 'woocommerce_single_product_summary', 'art_get_opt_before_add_card');
function art_get_opt_before_add_card() {
global $post, $product;
$opt = get_post_meta( $post->ID, '_opt' , true );
if ( $opt ) {
?>
<span class="text-field">
<strong>опт:<br> </strong>
<?php echo $opt;?> ₽
<p> от 50 000 ₽</p>
</span>
<?php }
}
function filter_woocommerce_get_price_html( $price, $_this ) {
$text_field = get_post_meta( $post->ID, '_text_field'. '_opt', true );
ob_start();
if ( $text_field ) {
?>
<span class="text-field">
<strong>Розница: </strong>
<?php echo $text_field; ?>
<p> от 1 товара </p>
</span>
<?php
}
$text = ob_get_clean();
return '<a style="color:red;">Розница: '. $price . ' </a> ' . $text;
}
add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 );