getContainer()->getFileManager()->locateAsset( 'admin/integrations/woocommerce-develop.jpeg' ); } public function run() { include_once ABSPATH . 'wp-admin/includes/plugin.php'; if ( is_plugin_active( 'woocommerce-product-addons/woocommerce-product-addons.php' ) ) { add_action( 'wp_footer', array( $this, 'addCompatibilityScript' ) ); add_action( 'tiered_pricing_table/cart/product_cart_price', array( $this, 'addAddonsPrice' ), 10, 2 ); add_action( 'tiered_pricing_table/cart/product_cart_price/item', array( $this, 'addAddonsPrice' ), 10, 2 ); // Handle the case when product addons request product price via AJAX add_filter( 'woocommerce_product_addons_ajax_get_product_price_excluding_tax', function ( $price, $qty, WC_Product $product ) { $pricingRule = PriceManager::getPricingRule( $product->get_id() ); $newPrice = $pricingRule->getTierPrice( $qty, false ); if ( $newPrice ) { return $newPrice * $qty; } return $price; }, 10, 3 ); add_filter( 'woocommerce_product_addons_ajax_get_product_price_including_tax', function ( $price, $qty, WC_Product $product ) { $pricingRule = PriceManager::getPricingRule( $product->get_id() ); $newPrice = $pricingRule->getTierPrice( $qty ); if ( $newPrice ) { return $newPrice * $qty; } return $price; }, 10, 3 ); } } public function getIntegrationCategory(): string { return 'product_addons'; } }