<?php
if ( ! defined( 'ABSPATH' ) ) exit;

if ( class_exists('CSF') ) {

    $prefix_products = 'caffito_products';

    $theme_uri   = get_template_directory_uri();
    $placeholder = $theme_uri . '/assets/images/sizes/CoffeeSizeP.svg';

    $size_icon_defaults = array(
        array(
            'icon'        => array(
                'id'        => 0,
                'url'       => $theme_uri . '/assets/images/sizes/CoffeeSizeS.svg',
                'thumbnail' => $theme_uri . '/assets/images/sizes/CoffeeSizeS.svg',
                'alt'       => 'کوچک',
            ),
            'name'        => 'کوچک',
            'price_mode'  => 'minus',
            'price_delta' => 10,
        ),
        array(
            'icon'        => array(
                'id'        => 0,
                'url'       => $theme_uri . '/assets/images/sizes/CoffeeSizeM.svg',
                'thumbnail' => $theme_uri . '/assets/images/sizes/CoffeeSizeM.svg',
                'alt'       => 'متوسط',
            ),
            'name'        => 'متوسط',
            'price_mode'  => 'none',
            'price_delta' => 0,
        ),
        array(
            'icon'        => array(
                'id'        => 0,
                'url'       => $theme_uri . '/assets/images/sizes/CoffeeSizeL.svg',
                'thumbnail' => $theme_uri . '/assets/images/sizes/CoffeeSizeL.svg',
                'alt'       => 'بزرگ',
            ),
            'name'        => 'بزرگ',
            'price_mode'  => 'plus',
            'price_delta' => 10,
        ),
    );

    $product_defaults = array(
        array(
            'enabled' => true,
            'title'   => 'اسپرسو',
            'image'   => array(
                'id'        => 0,
                'url'       => $theme_uri . '/assets/images/coffee-img/Espresso.webp',
                'thumbnail' => $theme_uri . '/assets/images/coffee-img/Espresso.webp',
                'alt'       => 'اسپرسو',
            ),
            'details_accordion' => array(
                'caption' => 'قهوه‌ای غلیظ، پرقدرت و اصیل',
                'price'   => 210,
                'cats'    => array(),
                'sizes_enable'       => true,
                'sizes'              => $size_icon_defaults,
                'companions_enable'  => true,
                'companions'         => array(
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-water.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-water.svg',
                            'alt'       => 'آب',
                        ),
                        'name'       => 'آب',
                        'price_mode' => 'free',
                    ),
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-chocolate.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-chocolate.svg',
                            'alt'       => 'شکلات دست ساز',
                        ),
                        'name'       => 'شکلات دست ساز',
                        'price_mode' => 'paid',
                        'price'      => 20,
                    ),
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-sogar.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-sogar.svg',
                            'alt'       => 'شکر',
                        ),
                        'name'       => 'شکر',
                        'price_mode' => 'paid',
                        'price'      => 5,
                    ),
                ),
                'addons_enable'      => true,
                'addons'             => array(
                    array( 'name' => 'خامه',            'price_mode' => 'paid', 'price' => 20 ),
                    array( 'name' => 'شیر عسلی',        'price_mode' => 'paid', 'price' => 20 ),
                    array( 'name' => 'شیر بدون لاکتوز', 'price_mode' => 'free' ),
                ),
                'blend_enable'       => true,
            ),
        ),
        array(
            'enabled' => true,
            'title'   => 'آمریکانو',
            'image'   => array(
                'id'        => 0,
                'url'       => $theme_uri . '/assets/images/coffee-img/Americano.webp',
                'thumbnail' => $theme_uri . '/assets/images/coffee-img/Americano.webp',
                'alt'       => 'آمریکانو',
            ),
            'details_accordion' => array(
                'caption' => 'اسپرسو رقیق‌شده با آب، سبک و متعادل',
                'price'   => 180,
                'cats'    => array(),
                'sizes_enable'       => true,
                'sizes'              => $size_icon_defaults,
                'companions_enable'  => true,
                'companions'         => array(
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-water.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-water.svg',
                            'alt'       => 'آب',
                        ),
                        'name'       => 'آب',
                        'price_mode' => 'free',
                    ),
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-chocolate.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-chocolate.svg',
                            'alt'       => 'شکلات دست ساز',
                        ),
                        'name'       => 'شکلات دست ساز',
                        'price_mode' => 'paid',
                        'price'      => 20,
                    ),
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-sogar.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-sogar.svg',
                            'alt'       => 'شکر',
                        ),
                        'name'       => 'شکر',
                        'price_mode' => 'paid',
                        'price'      => 5,
                    ),
                ),
                'addons_enable'      => true,
                'addons'             => array(
                    array( 'name' => 'خامه',            'price_mode' => 'paid', 'price' => 15 ),
                    array( 'name' => 'شیر بادام',       'price_mode' => 'paid', 'price' => 15 ),
                    array( 'name' => 'شیر بدون لاکتوز', 'price_mode' => 'free' ),
                ),
                'blend_enable'       => true,
            ),
        ),
        array(
            'enabled' => true,
            'title'   => 'کاپوچینو',
            'image'   => array(
                'id'        => 0,
                'url'       => $theme_uri . '/assets/images/coffee-img/Cappuccino.webp',
                'thumbnail' => $theme_uri . '/assets/images/coffee-img/Cappuccino.webp',
                'alt'       => 'کاپوچینو',
            ),
            'details_accordion' => array(
                'caption' => 'اسپرسو با شیر بخار داده و فوم لطیف',
                'price'   => 240,
                'cats'    => array(),
                'sizes_enable'       => true,
                'sizes'              => $size_icon_defaults,
                'companions_enable'  => true,
                'companions'         => array(
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-water.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-water.svg',
                            'alt'       => 'آب',
                        ),
                        'name'       => 'آب',
                        'price_mode' => 'free',
                    ),
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-chocolate.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-chocolate.svg',
                            'alt'       => 'شکلات دست ساز',
                        ),
                        'name'       => 'شکلات دست ساز',
                        'price_mode' => 'paid',
                        'price'      => 20,
                    ),
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-sogar.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-sogar.svg',
                            'alt'       => 'شکر',
                        ),
                        'name'       => 'شکر',
                        'price_mode' => 'paid',
                        'price'      => 5,
                    ),
                ),
                'addons_enable'      => true,
                'addons'             => array(
                    array( 'name' => 'پودر دارچین',    'price_mode' => 'free' ),
                    array( 'name' => 'سیروپ وانیل',    'price_mode' => 'paid', 'price' => 10 ),
                    array( 'name' => 'شیر بدون لاکتوز', 'price_mode' => 'free' ),
                ),
                'blend_enable'       => true,
            ),
        ),
        array(
            'enabled' => true,
            'title'   => 'موکا',
            'image'   => array(
                'id'        => 0,
                'url'       => $theme_uri . '/assets/images/coffee-img/Caff__Mocha.webp',
                'thumbnail' => $theme_uri . '/assets/images/coffee-img/Caff__Mocha.webp',
                'alt'       => 'موکا',
            ),
            'details_accordion' => array(
                'caption' => 'ترکیب شکلات، اسپرسو و شیر؛ شیرین و شکلاتی',
                'price'   => 260,
                'cats'    => array(),
                'sizes_enable'       => true,
                'sizes'              => $size_icon_defaults,
                'companions_enable'  => true,
                'companions'         => array(
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-water.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-water.svg',
                            'alt'       => 'آب',
                        ),
                        'name'       => 'آب',
                        'price_mode' => 'free',
                    ),
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-chocolate.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-chocolate.svg',
                            'alt'       => 'شکلات دست ساز',
                        ),
                        'name'       => 'شکلات دست ساز',
                        'price_mode' => 'paid',
                        'price'      => 20,
                    ),
                    array(
                        'icon'       => array(
                            'id'        => 0,
                            'url'       => $theme_uri . '/assets/images/items/items-sogar.svg',
                            'thumbnail' => $theme_uri . '/assets/images/items/items-sogar.svg',
                            'alt'       => 'شکر',
                        ),
                        'name'       => 'شکر',
                        'price_mode' => 'paid',
                        'price'      => 5,
                    ),
                ),
                'addons_enable'      => true,
                'addons'             => array(
                    array( 'name' => 'سس شکلات',       'price_mode' => 'paid', 'price' => 15 ),
                    array( 'name' => 'خامه',            'price_mode' => 'paid', 'price' => 20 ),
                    array( 'name' => 'شیر بدون لاکتوز', 'price_mode' => 'free' ),
                ),
                'blend_enable'       => true,
            ),
        ),
    );


    CSF::createOptions( $prefix_products, array(
        'menu_title'      => 'ثبت محصول',
        'menu_slug'       => 'caffito-products',
        'framework_title' => 'ثبت و مدیریت محصولات',
        'menu_type'       => 'menu',
        'menu_icon'       => 'dashicons-cart',
        'footer_text'     => 'توسعه داده شده برای قالب کافیتو',
        'menu_position'   => 3.2,
    ));

    if ( ! function_exists('caffito_get_category_options') ) {
        function caffito_get_category_options() {
            $opts = get_option( 'caffito_categories', array() );
            $cats = isset($opts['categories']) ? (array) $opts['categories'] : array();
            $out  = array();
            foreach ( $cats as $c ) {
                $label = isset($c['label']) ? sanitize_text_field($c['label']) : '';
                if ( $label === '' ) { continue; }
                if ( $label === 'همه' ) { continue; }
                $out[ sanitize_title($label) ] = $label;
            }
            return $out;
        }
    }

    CSF::createSection( $prefix_products, array(
        'title'  => 'ثبت محصول',
        'fields' => array(
            array(
                'id'      => 'products_search_box',
                'type'    => 'content',
                'title'   => '',
                'content' => '
    <div id="caffito-products-search-wrap" style="margin:12px 0 4px">
      <input type="text" id="caffito-products-search" placeholder="جستجو بر اساس نام محصول…" dir="rtl"
             style="width:100%;max-width:420px;padding:8px 12px;border:1px solid #ccd0d4;border-radius:6px" />
      <div id="caffito-products-search-meta" style="display:none;margin-top:6px;color:#666;font-size:12px"></div>
    </div>

    <script>
    (function($){
      function filterProducts(q){
        q = (q||"").toLowerCase().trim();
        var $section = $("#caffito-products-search-wrap").closest(".csf-section");
        var $items   = $section.find(".csf-repeater .csf-repeater-item");
        var shown = 0;

        $items.each(function(){
          var $it = $(this);
          var headerTxt = $it.find(".csf-accordion-title, .csf-repeater-title").first().text().trim();
          var inputTxt  = $it.find("input[name$=\"[title]\"]").val() || "";
          var titleTxt  = (inputTxt || headerTxt || "").toLowerCase();
          var match     = !q || titleTxt.indexOf(q) !== -1;
          $it.toggle(match);
          if(match) shown++;
        });

        var $meta = $("#caffito-products-search-meta");
        if(q){
          $meta.show().text(shown ? (shown + " مورد پیدا شد") : "هیچ موردی پیدا نشد");
        } else {
          $meta.hide().text("");
        }
      }

      $(document).on("input", "#caffito-products-search", function(){
        filterProducts(this.value);
      });

      $(document).on("keyup change csf-repeater-added csf-repeater-removed", ".csf-section", function(){
        var v = $("#caffito-products-search").val();
        if(typeof v !== "undefined") filterProducts(v);
      });

      $(function(){ filterProducts(""); });
    })(jQuery);
    </script>
    ',
            ),
            array(
                'id'                => 'products',
                'type'              => 'repeater',
                'title'             => '',
                'accordion'         => true,
                'accordion_title'   => '{title}',
                'fields'            => array(

                    array(
                        'id'      => 'enabled',
                        'type'    => 'switcher',
                        'title'   => 'موجود است؟',
                        'default' => true,
                    ),
                    array(
                        'id'      => 'title',
                        'type'    => 'text',
                        'title'   => 'نام محصول',
                        'default' => 'اسپرسو',
                    ),
                    array(
                        'id'       => 'image',
                        'type'     => 'media',
                        'title'    => 'تصویر محصول (webp/png)',
                        'library'  => 'image',
                        'preview'  => true,
                        'preview_size' => 'full',
                    ),

                    array(
                        'id'         => 'details_accordion',
                        'type'       => 'accordion',
                        'title'      => 'جزئیات بیشتر',
                        'open'       => false,
                        'accordions' => array(
                            array(
                                'title'  => 'جزئیات محصول',
                                'fields' => array(

                                    array(
                                        'id'      => 'caption',
                                        'type'    => 'text',
                                        'title'   => 'توضیح کوتاه',
                                        'default' => 'قهوه‌ای غلیظ، پرقدرت و اصیل',
                                    ),
                                    array(
                                        'id'      => 'price',
                                        'type'    => 'number',
                                        'title'   => 'قیمت پایه',
                                        'default' => 210,
                                        'desc'    => 'واحد هزار است (تومان/ریال).',
                                    ),
                                    array(
                                        'id'      => 'cats',
                                        'type'    => 'checkbox',
                                        'title'   => 'دسته‌های این محصول (حداکثر ۵)',
                                        'options' => 'caffito_get_category_options',
                                        'desc'    => 'اگر دسته جدید ساختید و نمی‌بینید، صفحه را ریلود کنید.',
                                    ),

                                    array(
                                        'id'      => 'sizes_enable',
                                        'type'    => 'switcher',
                                        'title'   => 'سایز لیوان',
                                        'default' => false,
                                    ),
                                    array(
                                        'id'         => 'sizes',
                                        'type'       => 'repeater',
                                        'title'      => 'لیست سایزها',
                                        'dependency' => array( 'sizes_enable', '==', '1' ),
                                        'fields'     => array(
                                            array(
                                                'id'           => 'icon',
                                                'type'         => 'media',
                                                'title'        => 'آیکون (SVG)',
                                                'library'      => 'image',
                                                'preview'      => true,
                                                'preview_size' => 'full',
                                            ),
                                            array( 'id' => 'name', 'type' => 'text',  'title' => 'نام سایز', 'default' => 'متوسط' ),
                                            array(
                                                'id'      => 'price_mode',
                                                'type'    => 'button_set',
                                                'title'   => 'اثر قیمت',
                                                'options' => array('plus'=>'افزایش','minus'=>'کاهش','none'=>'بی‌تأثیر'),
                                                'default' => 'none',
                                            ),
                                            array(
                                                'id'         => 'price_delta',
                                                'type'       => 'number',
                                                'title'      => 'مقدار تغییر',
                                                'default'    => 0,
                                                'dependency' => array( 'price_mode', '!=', 'none' ),
                                            ),
                                        ),
                                        'default'    => $size_icon_defaults,
                                    ),

                                    array(
                                        'id'      => 'companions_enable',
                                        'type'    => 'switcher',
                                        'title'   => 'آیتم‌های همراه',
                                        'default' => false,
                                    ),
                                    array(
                                        'id'         => 'companions',
                                        'type'       => 'repeater',
                                        'title'      => 'لیست آیتم‌های همراه',
                                        'dependency' => array( 'companions_enable', '==', '1' ),
                                        'fields'     => array(
                                            array(
                                                'id'           => 'icon',
                                                'type'         => 'media',
                                                'title'        => 'آیکون (SVG)',
                                                'library'      => 'image',
                                                'preview'      => true,
                                                'preview_size' => 'full',
                                            ),
                                            array( 'id'=>'name','type'=>'text','title'=>'نام آیتم','default'=>'شکر' ),
                                            array(
                                                'id'      => 'price_mode',
                                                'type'    => 'button_set',
                                                'title'   => 'قیمت',
                                                'options' => array( 'free' => 'رایگان', 'paid' => 'پولی' ),
                                                'default' => 'free',
                                            ),
                                            array(
                                                'id'         => 'price',
                                                'type'       => 'number',
                                                'title'      => 'مبلغ',
                                                'default'    => 0,
                                                'dependency' => array( 'price_mode', '==', 'paid' ),
                                            ),
                                        ),
                                        'default'    => array(
                                            array(
                                                'icon'       => array(
                                                    'id'        => 0,
                                                    'url'       => $theme_uri . '/assets/images/items/items-water.svg',
                                                    'thumbnail' => $theme_uri . '/assets/images/items/items-water.svg',
                                                    'alt'       => 'آب',
                                                ),
                                                'name'       => 'آب',
                                                'price_mode' => 'free',
                                            ),
                                            array(
                                                'icon'       => array(
                                                    'id'        => 0,
                                                    'url'       => $theme_uri . '/assets/images/items/items-chocolate.svg',
                                                    'thumbnail' => $theme_uri . '/assets/images/items/items-chocolate.svg',
                                                    'alt'       => 'شکلات دست ساز',
                                                ),
                                                'name'       => 'شکلات دست ساز',
                                                'price_mode' => 'paid',
                                                'price'      => 20,
                                            ),
                                            array(
                                                'icon'       => array(
                                                    'id'        => 0,
                                                    'url'       => $theme_uri . '/assets/images/items/items-sogar.svg',
                                                    'thumbnail' => $theme_uri . '/assets/images/items/items-sogar.svg',
                                                    'alt'       => 'شکر',
                                                ),
                                                'name'       => 'شکر',
                                                'price_mode' => 'paid',
                                                'price'      => 5,
                                            ),
                                        ),
                                    ),

                                    array(
                                        'id'      => 'addons_enable',
                                        'type'    => 'switcher',
                                        'title'   => 'افزودنی‌ها',
                                        'default' => false,
                                    ),
                                    array(
                                        'id'         => 'addons',
                                        'type'       => 'repeater',
                                        'title'      => 'لیست افزودنی‌ها',
                                        'dependency' => array( 'addons_enable', '==', '1' ),
                                        'fields'     => array(
                                            array( 'id'=>'name','type'=>'text','title'=>'نام افزودنی','default'=>'خامه' ),
                                            array(
                                                'id'      => 'price_mode',
                                                'type'    => 'button_set',
                                                'title'   => 'قیمت',
                                                'options' => array( 'free' => 'رایگان', 'paid' => 'پولی' ),
                                                'default' => 'paid',
                                            ),
                                            array(
                                                'id'         => 'price',
                                                'type'       => 'number',
                                                'title'      => 'مبلغ',
                                                'default'    => 30,
                                                'dependency' => array( 'price_mode', '==', 'paid' ),
                                            ),
                                        ),
                                        'default'    => array(
                                            array( 'name'=>'خامه','price_mode'=>'paid','price'=>20 ),
                                            array( 'name'=>'شیر عسلی','price_mode'=>'paid','price'=>20 ),
                                            array( 'name'=>'شیر بدون لاکتوز','price_mode'=>'free' ),
                                        ),
                                    ),

                                    array(
                                        'id'      => 'blend_enable',
                                        'type'    => 'switcher',
                                        'title'   => 'ترکیب قهوه (اسلایدر)',
                                        'default' => false,
                                    ),

                                    array(
                                        'id'         => 'blend_0',
                                        'type'       => 'fieldset',
                                        'title'      => 'درصد 0',
                                        'dependency' => array( 'blend_enable', '==', '1' ),
                                        'fields'     => array(
                                            array(
                                                'id'      => 'mode',
                                                'type'    => 'button_set',
                                                'title'   => 'اثر قیمت',
                                                'options' => array('plus'=>'افزایش','minus'=>'کاهش','none'=>'بی‌تأثیر'),
                                                'default' => 'minus',
                                            ),
                                            array(
                                                'id'         => 'price',
                                                'type'       => 'number',
                                                'title'      => 'مبلغ',
                                                'default'    => 10,
                                                'dependency' => array( 'mode', '!=', 'none' ),
                                            ),
                                        ),
                                    ),

                                    array(
                                        'id'         => 'blend_30',
                                        'type'       => 'fieldset',
                                        'title'      => 'درصد 30',
                                        'dependency' => array( 'blend_enable', '==', '1' ),
                                        'fields'     => array(
                                            array(
                                                'id'      => 'mode',
                                                'type'    => 'button_set',
                                                'title'   => 'اثر قیمت',
                                                'options' => array('plus'=>'افزایش','minus'=>'کاهش','none'=>'بی‌تأثیر'),
                                                'default' => 'minus',
                                            ),
                                            array(
                                                'id'         => 'price',
                                                'type'       => 'number',
                                                'title'      => 'مبلغ',
                                                'default'    => 5,
                                                'dependency' => array( 'mode', '!=', 'none' ),
                                            ),
                                        ),
                                    ),

                                    array(
                                        'id'         => 'blend_50',
                                        'type'       => 'fieldset',
                                        'title'      => 'درصد 50',
                                        'dependency' => array( 'blend_enable', '==', '1' ),
                                        'fields'     => array(
                                            array(
                                                'id'      => 'mode',
                                                'type'    => 'button_set',
                                                'title'   => 'اثر قیمت',
                                                'options' => array('plus'=>'افزایش','minus'=>'کاهش','none'=>'بی‌تأثیر'),
                                                'default' => 'none',
                                            ),
                                            array(
                                                'id'         => 'price',
                                                'type'       => 'number',
                                                'title'      => 'مبلغ',
                                                'default'    => 0,
                                                'dependency' => array( 'mode', '!=', 'none' ),
                                            ),
                                        ),
                                    ),

                                    array(
                                        'id'         => 'blend_70',
                                        'type'       => 'fieldset',
                                        'title'      => 'درصد 70',
                                        'dependency' => array( 'blend_enable', '==', '1' ),
                                        'fields'     => array(
                                            array(
                                                'id'      => 'mode',
                                                'type'    => 'button_set',
                                                'title'   => 'اثر قیمت',
                                                'options' => array('plus'=>'افزایش','minus'=>'کاهش','none'=>'بی‌تأثیر'),
                                                'default' => 'plus',
                                            ),
                                            array(
                                                'id'         => 'price',
                                                'type'       => 'number',
                                                'title'      => 'مبلغ',
                                                'default'    => 5,
                                                'dependency' => array( 'mode', '!=', 'none' ),
                                            ),
                                        ),
                                    ),

                                    array(
                                        'id'         => 'blend_100',
                                        'type'       => 'fieldset',
                                        'title'      => 'درصد 100',
                                        'dependency' => array( 'blend_enable', '==', '1' ),
                                        'fields'     => array(
                                            array(
                                                'id'      => 'mode',
                                                'type'    => 'button_set',
                                                'title'   => 'اثر قیمت',
                                                'options' => array('plus'=>'افزایش','minus'=>'کاهش','none'=>'بی‌تأثیر'),
                                                'default' => 'plus',
                                            ),
                                            array(
                                                'id'         => 'price',
                                                'type'       => 'number',
                                                'title'      => 'مبلغ',
                                                'default'    => 10,
                                                'dependency' => array( 'mode', '!=', 'none' ),
                                            ),
                                        ),
                                    ),

                                ),
                            ),
                        ),
                    ),

                ),
                'default' => $product_defaults,
                'desc'    => 'افزودن محصول جدید',
            ),
        ),
    ));

    add_filter( 'csf_' . $prefix_products . '_save', function( $data ) use ( $placeholder ) {

        if ( isset( $data['products'] ) && is_array( $data['products'] ) ) {

            if ( ! function_exists('media_sideload_image') ) {
                require_once ABSPATH . 'wp-admin/includes/media.php';
                require_once ABSPATH . 'wp-admin/includes/file.php';
                require_once ABSPATH . 'wp-admin/includes/image.php';
            }

            foreach ( $data['products'] as $pi => $product ) {

                if ( isset( $product['image'] ) ) {
                    $img = $product['image'];
                    $url = is_array($img) ? ( $img['url'] ?? '' ) : ( is_string($img) ? $img : '' );
                    $id  = is_array($img) ? intval($img['id'] ?? 0) : 0;

                    if ( ! $id && ! empty($url) ) {
                        $maybe = attachment_url_to_postid( $url );
                        if ( $maybe ) {
                            $id = (int) $maybe;
                        } else {
                            $path_ext = strtolower( pathinfo( parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION ) );
                            if ( in_array( $path_ext, array('jpg','jpeg','png','webp','gif') ) ) {
                                $sid = media_sideload_image( $url, 0, ( $product['title'] ?? '' ), 'id' );
                                if ( ! is_wp_error( $sid ) ) {
                                    $id = (int) $sid;
                                }
                            }
                        }
                    }

                    $thumb_url = $url;
                    if ( $id ) {
                        $thumb = wp_get_attachment_image_url( $id, 'medium' );
                        if ( $thumb ) { $thumb_url = $thumb; }
                    }

                    $data['products'][$pi]['image'] = array(
                        'id'        => $id,
                        'url'       => $url,
                        'thumbnail' => $thumb_url ?: $url,
                        'alt'       => isset($product['title']) ? $product['title'] : '',
                    );
                }

                if ( isset( $product['details_accordion']['sizes'] ) && is_array( $product['details_accordion']['sizes'] ) ) {
                    foreach ( $product['details_accordion']['sizes'] as $si => $size ) {
                        $icon = isset($size['icon']) ? $size['icon'] : '';
                        $url  = is_array($icon) ? ( $icon['url'] ?? '' ) : ( is_string($icon) ? $icon : '' );
                        if ( empty( $url ) ) { $url = $placeholder; }
                        $data['products'][$pi]['details_accordion']['sizes'][$si]['icon'] = array(
                            'id'        => 0,
                            'url'       => $url,
                            'thumbnail' => $url,
                            'alt'       => isset($size['name']) ? $size['name'] : '',
                        );
                    }
                }

              
                if ( isset( $product['details_accordion']['companions'] ) && is_array( $product['details_accordion']['companions'] ) ) {
                    foreach ( $product['details_accordion']['companions'] as $ci => $comp ) {
                        $icon = isset($comp['icon']) ? $comp['icon'] : '';
                        $url  = is_array($icon) ? ( $icon['url'] ?? '' ) : ( is_string($icon) ? $icon : '' );
                        if ( empty( $url ) ) { $url = $placeholder; }
                        $data['products'][$pi]['details_accordion']['companions'][$ci]['icon'] = array(
                            'id'        => 0,
                            'url'       => $url,
                            'thumbnail' => $url,
                            'alt'       => isset($comp['name']) ? $comp['name'] : '',
                        );
                    }
                }
            }
        }
        return $data;
    } );
}