首頁 > 後端開發 > php教程 > 如何以程式設計方式更改 WooCommerce 購物車中的產品價格?

如何以程式設計方式更改 WooCommerce 購物車中的產品價格?

DDD
發布: 2024-11-29 15:42:14
原創
317 人瀏覽過

How to Programmatically Change Product Prices in a WooCommerce Cart?

更改 WooCommerce 3購物車中的產品價格

要修改購物車中的產品價格,您可以使用以下命令代碼:

// Set custom cart item price
add_action( 'woocommerce_before_calculate_totals', 'add_custom_price', 1000, 1);

// Handle mini cart custom item price (Optional)
if ( ! is_admin() || defined( 'DOING_AJAX' ) ) :
    add_filter( 'woocommerce_cart_item_price', 'filter_cart_item_price', 10, 3 );
endif;

// Respective Functions
function add_custom_price( $cart ) {
   // Required for WC 3.0+
   if ( is_admin() && ! defined( 'DOING_AJAX' ) )
       return;

   // Avoid hook repetition
   if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
       return;

   // Loop through cart items
   foreach ( $cart->get_cart() as $cart_item ) {
       $cart_item['data']->set_price( 40 );
   }
}

function filter_cart_item_price( $price_html, $cart_item, $cart_item_key ) {
   if ( isset( $cart_item['custom_price'] ) ) {
       $args = array( 'price' => 40 );

       if ( WC()->cart->display_prices_including_tax() ) {
           $product_price = wc_get_price_including_tax( $cart_item['data'], $args );
       } else {
           $product_price = wc_get_price_excluding_tax( $cart_item['data'], $args );
       }
       return wc_price( $product_price );
   }
   return $price_html;
}
登入後複製

註釋:

  • 使用woocommerce_before_calculate_totals 掛鉤而不是woocommerce_before_shipping_calculator。
  • 使用 WC_Cart::get_cart()取得購物車的方法商品。
  • 使用 WC_Product::set_price() 方法設定每個購物車商品的價格。

其他資訊:

  • add_custom_price()函數應放置在WordPress的functions.php檔案中主題。
  • 要使其與 WooCommerce 5.1.x 及更高版本相容,請將 add_custom_price() 函數中的掛鉤優先權增加到 1000 甚至 2000(如有必要)。
  • 如果使用以下外掛程式或自訂項目可能會與價格運算衝突,請同時提高 hook 優先權。

以上是如何以程式設計方式更改 WooCommerce 購物車中的產品價格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板