/** * Runs after adding a bundled item to the cart. * * @param int $product_id * @param int $quantity * @param int $variation_id * @param array $variations * @param array $bundled_item_cart_data * @return void */ public static function before_bundled_add_to_cart($product_id, $quantity, $variation_id, $variations, $bundled_item_cart_data) { global $Product_Addon_Cart; // Set addons and nyp prefixes. WC_PB_Compatibility::$addons_prefix = WC_PB_Compatibility::$nyp_prefix = $bundled_item_cart_data['bundled_item_id']; // Add-ons cart item data is already stored in the composite_data array, so we can grab it from there instead of allowing Addons to re-add it. // Not doing so results in issues with file upload validation. if (!empty($Product_Addon_Cart)) { remove_filter('woocommerce_add_cart_item_data', array($Product_Addon_Cart, 'add_cart_item_data'), 10, 2); } // Similarly with NYP. if (function_exists('WC_Name_Your_Price')) { remove_filter('woocommerce_add_cart_item_data', array(WC_Name_Your_Price()->cart, 'add_cart_item_data'), 5, 3); } }