/**
  * Get composited products prices via their WC_CP_Product wrapper to account for discounts.
  *
  * @param  int                  $product_id
  * @param  mixed                $variation_id
  * @param  string               $component_id
  * @param  WC_Product_Composite $composite
  * @return double
  */
 private function get_composited_cart_item_price($product_id, $variation_id, $component_id, $composite)
 {
     if (!$product_id) {
         return 0;
     }
     $composited_product_wrapper = $composite->get_composited_product($component_id, $product_id);
     if (!$composited_product_wrapper || !$composited_product_wrapper->exists()) {
         return false;
     }
     $composited_product = $composited_product_wrapper->get_product();
     $composited_product_type = $composited_product->product_type;
     $composited_product_price = 0;
     $composited_product_wrapper->add_filters();
     if ($composited_product_type === 'variable' && $variation_id > 0) {
         $variation = $composited_product->get_child($variation_id);
         if ($variation) {
             $composited_product_price = $variation->get_price();
         }
     } else {
         $composited_product_price = $composited_product->get_price();
     }
     $composited_product_wrapper->remove_filters();
     return $composited_product_price;
 }
 /**
  * Get composited products prices via their WC_CP_Product wrapper to account for discounts.
  *
  * @param  int                  $product_id
  * @param  mixed                $variation_id
  * @param  string               $component_id
  * @param  WC_Product_Composite $composite
  * @return double
  */
 function wc_cp_get_composited_product_price($product_id, $variation_id, $component_id, $composite)
 {
     if (!$product_id) {
         return 0;
     }
     $composited_product_wrapper = $composite->get_composited_product($component_id, $product_id);
     if (!$composited_product_wrapper || !$composited_product_wrapper->exists()) {
         return false;
     }
     $composited_product = $composited_product_wrapper->get_product();
     $composited_product_type = $composited_product->product_type;
     $composited_product_price = 0;
     $composited_product_wrapper->add_filters();
     if ($composited_product_type === 'simple') {
         $composited_product_price = $composited_product->get_price();
     } elseif ($composited_product_type === 'bundle') {
         if (!$composited_product->is_priced_per_product()) {
             $composited_product_price = $composited_product->get_price();
         }
     } elseif ($composited_product_type === 'variable' && $variation_id > 0) {
         $variation = $composited_product->get_child($variation_id);
         if ($variation) {
             $composited_product_price = $variation->get_price();
         }
     }
     $composited_product_wrapper->remove_filters();
     return $composited_product_price;
 }