0

WooCommerce ウェブショップで自分の製品のカスタム アドオンを作成しています。すべてが正常に機能しますが、必要なものは 1 つだけです。お客様が商品ページのチェックボックスをオンにすると、選択したバリエーションの元の価格に $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 ドルを追加することはできません。

4

1 に答える 1