2016-05-24 87 views
-1

我想改變根據具有可變的量的重量的產品的價格。如白銀,由於價格每天都在變化,因此價格將以我爲1克銀插入的金額計算。 例如,產品是300克且價格爲1克銀是雄鹿然後300 * 2000 = 600000雄鹿。白銀價格將每天變化,價格將按照所有產品的價格計算。 是否有任何可用的插件,或者如果有可能,我可以做一些代碼更改。幫我解決這個問題。 感謝如何改變所有產品的價格與根據產品在WordPress的重量恆定的變量?

+0

我猜聘請誰可以爲此創建一個cronjob任務的開發人員,將是最好的解決方案。 cronjob任務(可能只是一個PHP文件)可以根據當前銀的價值每天更新wordpress數據庫內的所有產品價格。您不想使用插件,因爲在這種情況下,只有當用戶訪問您的網站時腳本纔會運行,並且您不希望因此而減慢頁面加載速度。 –

回答

1

這裏是一個解決方案,您可以修改您的需求,基本上他們做的是批量更新是根據價格您輸入的價格(每克當前價格)。

步驟1 添加

步驟2wp-admin了新的一頁名爲「價格更新」創建一個名爲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),做你的價格更新。

0

據我所知,目前對沒有插件。 由於價格每天都在變化,你應該創建一個cronjob任務,埃裏克·範·德法師建議。由此,您可以更新您存儲在數據庫或文件中的價格。那麼你的WordPress代碼可以從數據庫/文件,其中的價格現在應該始終是最新的讀取

相關問題