WooCommerce массовое обновление цены продукта - PullRequest
0 голосов
/ 08 ноября 2019

Я работаю на портале по продаже ювелирных изделий. Расчет ставки зависит от рыночного курса золота / серебра, который обновляется ежедневно. У меня есть формула для расчета, например. Тариф продукта = Тариф за металлы + комиссионные за сборы + налог

Ежедневное изменение тарифа за металлы. Я хочу реализовать функциональность, которая позволит мне обновлять все тарифы за счет обновления тарифов за металлы.

есть ли встроенная функция? плагин доступен? Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Вы можете использовать это в 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...