# MiniWishlist ক্লাস

**নেমস্পেস:** `Bizzwishlist\Frontend`  
**ফাইল:** `includes/Frontend/MiniWishlist.php`

## বর্ণনা

`MiniWishlist` ক্লাস WooCommerce মিনিকার্টের মতো একটি ক্ল্যাপসিবল উইশলিস্ট উইজেট রেন্ডার করে। প্রথম অবস্থায় শুধু আইটেম সংখ্যা ও হার্ট আইকন দেখায়। ক্লিক করলে আইটেম লিস্ট প্রসারিত হয়।

## প্রপার্টি সমূহ

| প্রপার্টি | ধরন | বর্ণনা |
|-----------|------|--------|
| `$repository` | `WishlistRepository` | ডাটাবেস রিপোজিটরি |
| `$session` | `Session` | সেশন হেল্পার |

## মেথড সমূহ

### `render_shortcode( array $atts )`
- **শর্টকোড:** `[bizzwishlist_mini]`
- **রিটার্ন:** `string`
- মিনি উইশলিস্ট সক্রিয় থাকলে উইজেট রেন্ডার করে।

### `render_widget()`
- **রিটার্ন:** `void`
- মিনি উইশলিস্ট HTML মার্কআপ রেন্ডার করে।
- **স্ট্রাকচার:**
  1. **টগল বার** (`.bizzwishlist-mini-toggle`) - সবসময় দৃশ্যমান
     - হার্ট আইকন (&#9829;)
     - আইটেম সংখ্যা ব্যাজ
     - "Wishlist" লেবেল
  2. **বডি** (`.bizzwishlist-mini-body`) - প্রথমে লুকানো, ক্লিকে প্রসারিত
     - হেডার ("My Wishlist")
     - আইটেম লিস্ট:
       - ছবি, নাম, ভেরিয়েশন তথ্য, দাম
       - কার্টে যোগ বাটন (AJAX দিয়ে কাজ করে)
       - ভেরিয়েবল প্রোডাক্টে ভেরিয়েশন ছাড়া - "Select options" লিংক
       - রিমুভ বাটন
     - ফুটার ("View Wishlist" লিংক)

### `render_auto_display()`
- **হুক:** `wp_footer`
- **রিটার্ন:** `void`
- সেটিংসে অটো-ডিসপ্লে চালু থাকলে ফুটারে মিনি উইশলিস্ট রেন্ডার করে।

## কিভাবে কার্টে যোগ কাজ করে

আগে মিনি উইশলিস্টে কার্টে যোগ করতে URL লিংক ব্যবহৃত হতো, যা ঠিকমতো কাজ করতো না। এখন:
1. বাটনে ক্লিক করলে `bizzwishlist_add_to_cart_single` AJAX অ্যাকশন কল হয়
2. `product_id` ও `variation_id` পাঠায়
3. সার্ভারে সঠিকভাবে WooCommerce কার্টে যোগ হয়
4. সফল হলে `wc_fragment_refresh` ট্রিগার হয় (মিনিকার্ট আপডেট হয়)

## ভেরিয়েশন সাপোর্ট

- ভেরিয়েশন সহ আইটেম: ভেরিয়েশন তথ্য ও সরাসরি কার্টে যোগ বাটন দেখায়
- ভেরিয়েশন ছাড়া ভেরিয়েবল প্রোডাক্ট: গিয়ার আইকন (&#9881;) দেখায় যেটা প্রোডাক্ট পেজে নিয়ে যায়
