У товара есть обычная цена - выводится как обычно
Добавлено 3 поля для дополнительных цен - Цена1, Цена2, Цена3 (Поля добавлены для вариативного и простого товаров, все сохранятся, но пока не выводится)
Как сделать вывод, например Цена1 с 1 февраля по 15 февраля вместо обычной цены?
У простого товара, а так же у вариаций, в которых такая цена указана?
Это код полей для вариаций
add_action( 'woocommerce_product_after_variable_attributes', 'new_variable_fields', 10, 3 );
function new_variable_fields( $loop, $variation_data, $variation ) {
?>
<tr>
<td>
<?php
// Вторая цена
woocommerce_wp_text_input(
array(
'id' => 'variable_second_price['.$loop.']',
'label' => __( 'Вторая цена', 'woocommerce' ),
'value' => get_post_meta($variation->ID, 'variable_second_price', true)
)
);
?>
</td>
</tr>
<tr>
<td>
<?php
// Третья цена
woocommerce_wp_text_input(
array(
'id' => 'variable_third_price['.$loop.']',
'label' => __( 'Третья цена', 'woocommerce' ),
'value' => get_post_meta($variation->ID, 'variable_third_price', true)
)
);
?>
</td>
</tr>
<tr>
<td>
<?php
// Четвертая цена
woocommerce_wp_text_input(
array(
'id' => 'variable_fourth_price['.$loop.']',
'label' => __( 'Четвертая цена', 'woocommerce' ),
'value' => get_post_meta($variation->ID, 'variable_fourth_price', true)
)
);
?>
</td>
</tr>
<?php
}
add_action( 'woocommerce_product_after_variable_attributes_js', 'new_variable_fields_js' );
function new_variable_fields_js() {
?>
<tr>
<td>
<?php
// Вторая цена
woocommerce_wp_text_input(
array(
'id' => 'variable_second_price[ + loop + ]',
'label' => __( 'Вторая цена', 'woocommerce' ),
'value' => ''
)
);
?>
</td>
</tr>
<tr>
<td>
<?php
// Третья цена
woocommerce_wp_text_input(
array(
'id' => 'variable_third_price[ + loop + ]',
'label' => __( 'Третья цена', 'woocommerce' ),
'value' => ''
)
);
?>
</td>
</tr>
<tr>
<td>
<?php
// Четвертая цена
woocommerce_wp_text_input(
array(
'id' => 'variable_fourth_price[ + loop + ]',
'label' => __( 'Четвертая цена', 'woocommerce' ),
'value' => ''
)
);
?>
</td>
</tr>
<?php
}
add_action( 'woocommerce_save_product_variation', 'save_new_variable_fields', 10, 1 );
function save_new_variable_fields( $post_id ) {
if (isset( $_POST['variable_sku'] ) ) :
$variable_sku = $_POST['variable_sku'];
$variable_post_id = $_POST['variable_post_id'];
// Вторая цена
$variable_second_price = $_POST['variable_second_price'];
for ( $i = 0; $i < sizeof( $variable_sku ); $i++ ) :
$variation_id = (int) $variable_post_id[$i];
if ( isset( $variable_second_price[$i] ) ) {
update_post_meta( $variation_id, 'variable_second_price', stripslashes( $variable_second_price[$i] ) );
}
endfor;
// Третья цена
$variable_third_price = $_POST['variable_third_price'];
for ( $i = 0; $i < sizeof( $variable_sku ); $i++ ) :
$variation_id = (int) $variable_post_id[$i];
if ( isset( $variable_third_price[$i] ) ) {
update_post_meta( $variation_id, 'variable_third_price', stripslashes( $variable_third_price[$i] ) );
}
endfor;
// Четвертая цена
$variable_fourth_price = $_POST['variable_fourth_price'];
for ( $i = 0; $i < sizeof( $variable_sku ); $i++ ) :
$variation_id = (int) $variable_post_id[$i];
if ( isset( $variable_fourth_price[$i] ) ) {
update_post_meta( $variation_id, 'variable_fourth_price', stripslashes( $variable_fourth_price[$i] ) );
}
endfor;
endif;
}
Это код полей для простого товара
add_action( 'woocommerce_product_options_pricing', 'new_simple_fields' );
function new_simple_fields() {
// Вторая цена
woocommerce_wp_text_input(
array(
'id' => 'second_price',
'class' => 'wc_input_price',
'label' => __( 'Вторая цена', 'woocommerce' ) . '(' . get_woocommerce_currency_symbol() . ')'
)
);
// Третья цена
woocommerce_wp_text_input(
array(
'id' => 'third_price',
'class' => 'wc_input_price',
'label' => __( 'Третья цена', 'woocommerce' ) . '(' . get_woocommerce_currency_symbol() . ')'
)
);
// Четвертая цена
woocommerce_wp_text_input(
array(
'id' => 'fourth_price',
'class' => 'wc_input_price',
'label' => __( 'Четвертая цена', 'woocommerce' ) . '(' . get_woocommerce_currency_symbol() . ')'
)
);
}
add_action( 'save_post', 'save_new_simple_fields' );
function save_new_simple_fields( $product_id ) {
// Если это автосохранение, то ничего не делаем, сохраняем данные только при нажатии на кнопку Обновить
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
// Вторая цена
if ( isset( $_POST['second_price'] ) ) {
if ( is_numeric( $_POST['second_price'] ) ) {
update_post_meta( $product_id, 'second_price', $_POST['second_price'] );
}
} else {
delete_post_meta( $product_id, 'second_price' );
}
// Третья цена
if ( isset( $_POST['third_price'] ) ) {
if ( is_numeric( $_POST['third_price'] ) ) {
update_post_meta( $product_id, 'third_price', $_POST['third_price'] );
}
} else {
delete_post_meta( $product_id, 'third_price' );
}
// Четвертая цена
if ( isset( $_POST['fourth_price'] ) ) {
if ( is_numeric( $_POST['fourth_price'] ) ) {
update_post_meta( $product_id, 'fourth_price', $_POST['fourth_price'] );
}
} else {
delete_post_meta( $product_id, 'fourth_price' );
}
}
Помогите пожалуйста вывести Цена 1, Цена 2, Цена 3 по дате (дату можно задать в коде, она меняться не будет) вместо обычной цены или цены вариации.