Вы можете использовать это в function.php
Сначала создайте функцию для обновления цены
<?php
function update_product_price(){
$args = array(
'post_type' => 'product',
'posts_per_page' => -1
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
//get metal rate,making charge and tax
$product_rate = $metal_rate + $making_charge + $tax;
//update product price
update_post_meta($product->get_id(), '_regular_price', (float)$product_rate);
update_post_meta($product->get_id(), '_price', (float)$product_rate);
endwhile;
}
wp_reset_query();
}
Теперь все, что вам нужно сделать, это установить работу cron в WordPress, которую вы можете сделать с помощьюловушка действий
add_action( 'is_add_every_day', 'update_product_price' );
Запланировать действие, если оно еще не запланировано
if ( ! wp_next_scheduled( 'is_add_every_day' ) ) {
wp_schedule_event( time(), 'every_day', 'is_add_every_day' );
}
Добавить новый интервал дня
// See http://codex.wordpress.org/Plugin_API/Filter_Reference/cron_schedules
add_filter( 'cron_schedules', 'is_add_every_day' );
function isa_add_every_three_minutes( $schedules ) {
$schedules['every_day'] = array(
'interval' => 24*60*60,
'display' => __( 'Every day', 'textdomain' )
);
return $schedules;
}