shortCodeAttributes ?? []; $buttonText = Arr::get($data, 'button_text', __('Add to Cart', 'fluent-cart')); $buttonClass = trim(Arr::get($data, 'class', '')); $variationId = (int) Arr::get($data, 'variation_id', 0); if (!$variationId) { return ''; } AssetLoader::loadSingleProductAssets(); $rendererConfig = []; $product = null; // 1) Try treating variation_id as the actual variation primary ID $variant = ProductVariation::query()->find($variationId); // 2) Fallback: treat variation_id as variation post_id if (!$variant) { $variant = ProductVariation::query() ->where('post_id', $variationId) ->first(); } if ($variant) { /** @var Product|null $product */ $product = Product::query()->find($variant->post_id); if ($product) { $rendererConfig['default_variation_id'] = $variant->id; } } if (!$product) { if (Helper::isAdminUser()) { return '
' . esc_html__('Invalid product/variant for Add to Cart button shortcode.', 'fluent-cart') . '
'; } return ''; } $atts = [ 'text' => $buttonText, 'is_shortcode'=> true, ]; if ($buttonClass) { $atts['class'] = $buttonClass; } return (new ProductRenderer($product, $rendererConfig))->renderAddToCartButtonBlock($atts); } }