Я хочу изменить цену продуктов в соответствии с весом с переменной суммой. Например, серебро, так как цена меняется изо дня в день, поэтому цена будет рассчитываться с суммой, которую я вставляю для 1 г серебра. Например, продукт имеет 300gm и цена на 1 г серебра баксы затем 300 * 2000 = 600000 баксов. Цена серебра будет меняться ежедневно, и цена будет рассчитываться в соответствии с ценой на все продукты. Есть ли какой-либо плагин для этого или если это возможно с некоторым изменением кода, я могу это сделать. Помогите мне в этом вопросе. ThanksКак изменить цену всех продуктов с постоянной переменной в соответствии с весом продуктов в wordpress?
ответ
Вот решение, которое вы можете изменить в соответствии с вашими потребностями, в основном, это то, что он делает, это массовое обновление цены по цене, которую вы указали (Текущая цена за грамм).
Шаг 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 Поместите следующий фрагмент на свою тему «S 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
) и сделать ваши обновления цен.
Насколько я знаю, для этого нет плагина. Поскольку цены меняются ежедневно, вы должны создать задание cronjob, как предположил Эрик ван де Вен. С этим вы можете обновлять цены, которые вы храните в базе данных или в файле. Затем ваш wordpress-код может быть прочитан из этого db/файла, где цены должны быть всегда актуальными
Я думаю, что нанять разработчика, который может создать задачу cronjob для этого, было бы лучшим решением. Задача cronjob (которая может быть только файлом PHP), может каждый день обновлять все цены продукта в базе данных wordpress, основываясь на текущем значении серебра, например. Вы не хотите использовать плагин, потому что в этом случае скрипт будет запускаться только после того, как кто-то посещает ваш сайт, и вы не хотите замедлять загрузку своей страницы из-за этого. –