Как изменить цену всех товаров с постоянной переменной в зависимости от веса товаров в WordPress?

Я хочу изменить цену продуктов в зависимости от веса с переменной суммой. Например, серебро, так как цена меняется изо дня в день, поэтому цена будет рассчитываться с суммой, которую я вставлю за 1 г серебра.
Например, продукт имеет 300gm и цена за 1 г серебро 2000 баксов тогда 300 * 2000 = 600 000 баксов. Цена на серебро будет меняться ежедневно, и цена будет рассчитываться в соответствии с ценами на все товары.
Есть ли плагин для этого или если это возможно с некоторым изменением кода, я могу это сделать. Помоги мне с этим вопросом.
Спасибо

-1

Решение

Вот решение, которое вы можете изменить в соответствии со своими потребностями, в основном это массовое обновление цены на основе введенной вами цены (текущая цена за грамм).

Шаг 1
Добавить новую страницу на wp-admin называется «Обновление цены»

Шаг 2
Создайте пользовательский шаблон в каталоге вашей темы под названием page-price-update.php и вставьте следующий фрагмент в этот файл шаблона

<?php get_header(); ?>

<?php if( is_admin() ) :?>

<form action="<?php echo admin_url('admin-ajax.php'); ?>" method="post" >

<p class="form-row">
<label for="gram_price">Current Price of 1 Gram</label>
<input type="number" name="gram_price" value="" />
</p>
<p class="form-row">
<input type="hidden" name="action" value="bulk_update_price" />
<input type="submit" value="Update Now" />
</p>

</form>

<?php else : ?>

<h3>You need to be an Admin to access this page.!</h3>

<?php endif; ?>

<?php get_footer(); ?>

Шаг 3
Поместите следующий фрагмент в тему functions.php

function bulk_update_price() {
if( isset( $_POST["gram_price"] ) && is_numeric( $_POST["gram_price"] ) ) {
// get all products
$posts = get_posts( array('post_type'=>'product', 'posts_per_page'=>-1 ) );
if( count( $posts ) > 0 ) {
// iterare through each product
foreach ( $posts as $post ) {
setup_postdata( $post );
wc_setup_product_data( $post );
$product = wc_get_product( $post->ID );
if( $product->has_weight() ) {
// get the current price entered i the form field
$current_price = floatval( $_POST["gram_price"] );
// get the product weight
$weight = $product->get_weight();
// well now set the price
$product->set_price( $weight * $current_price );
}
}
}
}
echo "<h1>Prices updated Successfully.!</h1>";
}
add_action ( 'wp_ajax_bulk_update_price', 'bulk_update_price' );
add_action ( 'wp_ajax_nopriv_bulk_update_price', 'bulk_update_price' );

Теперь посетите эту страницу ( http://your-domain/price-update ) и сделайте обновление цены.

1

Другие решения

Насколько я знаю, для этого нет плагина.
Поскольку цены меняются ежедневно, вы должны создать cronjob задача, как предложил Эрик ван де Вен. При этом вы можете обновить цены, которые вы храните в базе данных или в файле. Ваш WordPress-код может затем прочитать из этого дБ / файла, где цены должны всегда быть в курсе

0

По вопросам рекламы [email protected]