首頁 >後端開發 >php教程 >如何使用 Hook 有效更改 WooCommerce 3 中的產品價格?

如何使用 Hook 有效更改 WooCommerce 3 中的產品價格?

Barbara Streisand
Barbara Streisand原創
2024-11-28 08:38:11396瀏覽

How Can I Efficiently Change Product Prices in WooCommerce 3  Using Hooks?

在WooCommerce 3 中使用Hooks 更改產品價格

WooCommerce 3 引入了使用Hooks 操縱產品價格變化的改進選項,包括價格變化的選項。但是,您嘗試的掛鉤可能不合適。

用來控制產品價格的建議掛鉤是:

  • 簡單、分組和外部產品:

    • woocommerce_product _get_price
    • woocommerce_product_get_regular_price
  • 變體:

    • 變體:
    woocommerce_product_variation_get_regular_price
  • woocommerce_product_variation_get_price

    (價格範圍):

    • woocommerce_variation_prices_price
    • woocommerce_ variation_prices_regular_price
  • 銷售:

    • wooco mmerce_product_get_sale_price
    • woocommerce_variation_prices_sale_price
    • woocommerce_product_variation_get_sale_price

對於變動價格,您還需要管理快取價格。 woocommerce_get_variation_prices_hash 過濾器對此目的非常有效。

為了更有效地處理變化,請考慮下面提供的程式碼的插件版本。它包含一個建構函數並處理價格緩存。
// Plugin Version
class MyPlugin {
    public function __construct() {
        // Simple, grouped, and external products
        add_filter('woocommerce_product_get_price', array($this, 'custom_price'), 99, 2);
        add_filter('woocommerce_product_get_regular_price', array($this, 'custom_price'), 99, 2);
        // Variations
        add_filter('woocommerce_product_variation_get_regular_price', array($this, 'custom_price'), 99, 2);
        add_filter('woocommerce_product_variation_get_price', array($this, 'custom_price'), 99, 2);
        // Variable (price range)
        add_filter('woocommerce_variation_prices_price', array($this, 'custom_variable_price'), 99, 3);
        add_filter('woocommerce_variation_prices_regular_price', array($this, 'custom_variable_price'), 99, 3);
        // Handling price caching
        add_filter('woocommerce_get_variation_prices_hash', array($this, 'add_price_multiplier_to_variation_prices_hash'), 99, 3);
    }
    // ...functionality as described in the original answer...
}
new MyPlugin();

主題使用,請將以下程式碼放入您的functions.php檔案中:
// Theme Version
// ...functionality as described in the original answer...

記住,使用顯示html掛鉤不會有效改變產品價格。此外,考慮在小部件中過濾產品價格的掛鉤,它允許設定最低和最高價格。

以上是如何使用 Hook 有效更改 WooCommerce 3 中的產品價格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn