簡體   English   中英

WooCommerce:獲取所選產品變化的價格

[英]WooCommerce: Get price of chosen product variation

我正在為我的 WooCommerce 網上商店的產品制作自定義插件。 一切正常,但我只需要一件事。 當客戶選中產品頁面上的復選框時,必須在所選變體的原價上增加 30 美元。

add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 );
function add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
        
        $product = wc_get_product($product_id);
        $price = $product->get_price();
        
        if ($product->is_type( 'variable' )) {
            
            $var_price = $product->get_price_html();
            
            // extra pack checkbox
            if( ! empty( $_POST['addon-card'] ) ) {
                $cart_item_data['new_price'] = $var_price + 30;
            }
            
        } else {
            
            // extra pack checkbox
            if( ! empty( $_POST['addon-card'] ) ) {
                $cart_item_data['new_price'] = $price + 30;
            }
            
        }

return $cart_item_data; 
} 

這部分: if( ! empty( $_POST['addon-card'] ) )檢查復選框是否被選中。

我的問題在這里:

$var_price = $product->get_price_html();

// extra pack checkbox
if( ! empty( $_POST['addon-card'] ) ) {
   $cart_item_data['new_price'] = $var_price + 30;
}

$var_price的值只是 0。

因此,我試圖弄清楚如何才能獲得所選變體的價格。

我曾嘗試使用get_variation_prices()get_variation_price()但沒有任何運氣......

更新我試圖從這個線程實現代碼。 使用該代碼,我可以獲得所選變體的價格,但我無法再添加 30 美元。

您能否嘗試在 WooCommerce 掛鈎下方動態更改價格?

add_filter('woocommerce_variation_prices_price', 'custom_variation_price_change', 9999, 2 );
add_filter('woocommerce_variation_prices_regular_price', 'custom_variation_price_change', 9999, 2 );   

function custom_variation_price_change( $price, $variation, $product ) {
   
      // add some conditional code as per your requirement  
    
       $price = $price+30;
        
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM