<?php
// sync meta between translations
add_action("post_updated", function ($post_ID, $post_after, $post_before){
    //echo $post_ID;
    
    if(function_exists("pll_get_post_translations")) {
        
        $tans = pll_get_post_translations($post_ID);
        $defaultLanguage = pll_default_language();
        $defaultLanguage_id = ( isset( $tans[$defaultLanguage] ) ) ? $tans[$defaultLanguage] : 0;
        $acf_exists = (function_exists("get_field"));
        $post_type = get_post_type($post_ID);
        
        
        $current_lang_x = array_search($post_ID, $tans);
        unset($tans[$current_lang_x]);
        

        $all_fields_list = [];
        if($post_type == 'page') {
            foreach( $tans as $ppp) {
                if(
                    !$defaultLanguage_id ||
                    $post_ID == $ppp  ||  
                    ! $sync_meta_items  = get_post_meta($ppp, 'sync_meta_items', true)
                ) {
                    continue;
                }
                
                //  print_r($sync_meta_items);   
                foreach($sync_meta_items as $meta_item) {
       
                    $field_key = get_post_meta($post_ID, '_' . $meta_item, true);
                    $field = ($field_key && $acf_exists) ? get_field_object( $field_key) : false;
    
                    if($field && $field['type'] == 'repeater' ) {
                        if(!$all_fields_list){
                            $all_fields_list = get_post_meta($post_ID);
                        }
    
                        foreach($all_fields_list as $ddkk=>$ddff) {
                            if( str_starts_with($ddkk, $meta_item) || str_starts_with($ddkk, '_' . $meta_item)){
                                update_post_meta($ppp, $ddkk, $ddff[0]); 
                            }
                        }
                        
                    }
                    else {
                        $get_post_meta = get_post_meta($post_ID, $meta_item, true);
                        update_post_meta($ppp, $meta_item, $get_post_meta); 
                    }
                       
                }
           
                
            }            
        }
        
        // Other posts like real estate
        
        if($post_type == 'page' || !$tans || !function_exists('ds1_checkSettings')) {
           return;
        }

        // Check settings
        // $sync_meta_items    = get_option('_sync_meta_items_' . get_post_type($post_ID), false);
        // $sync_meta_items    = ($sync_meta_items)?  preg_split("/,/", $sync_meta_items) : false;
        $dont_sync_meta_items = get_post_meta($post_ID, 'dont_sync_meta_items', true);

        $sync_meta_items    = ds1_checkSettings('sync_meta_items_' . get_post_type($post_ID));
        

        if(!$dont_sync_meta_items && $sync_meta_items) {
        //     print_r($sync_meta_items);
        //     print_r($tans);
        // die();
            foreach($tans as $ppp) {
                foreach($sync_meta_items as $meta_item) {
                    // $meta_item = str_replace(' ', '', $meta_item);
                    
                    // $field_key = get_post_meta($post_ID, '_' . $meta_item, true);
                    // $field = ($field_key && $acf_exists) ? get_field_object( $field_key) : false;
    
                    // if($field && $field['type'] == 'repeater' ) {
                    //     if(!$all_fields_list){
                    //         $all_fields_list = get_post_meta($post_ID);
                    //     }
    
                    //     foreach($all_fields_list as $ddkk=>$ddff) {
                    //         if( str_starts_with($ddkk, $meta_item) || str_starts_with($ddkk, '_' . $meta_item)){
                    //             update_post_meta($ppp, $ddkk, $ddff[0]); 
                    //         }
                    //     }
                        
                    // }
                    // else {
                        $get_post_meta = get_post_meta($post_ID, $meta_item, true);
                        if($get_post_meta){
                            update_post_meta($ppp, $meta_item, $get_post_meta); 
                        }
                    // }
                       
                }
            }
        }
        
        
    }

    
}, 10, 3);

















function rm_oxy_kits_sync_custom_meta_box() {
  // حدد اسمًا فريدًا للودجت
  $meta_box_id = 'my_custom_meta_box';

  // حدد عنوان الودجت
  $meta_box_title = 'Sync data';

  // حدد وظيفة العرض
  $meta_box_callback = 'rm_oxy_kits_sync_custom_meta_box_callback';

  // حدد نوع الصفحات التي ستظهر فيها الودجت
  $post_types = array('page', 'real-estate');

  // أضف الودجت باستخدام خطاف `add_meta_box`
  add_meta_box(
    $meta_box_id,
    $meta_box_title,
    $meta_box_callback,
    $post_types,
    'normal',
    'high'
  );
}

//  وظيفة عرض الودجت
function rm_oxy_kits_sync_custom_meta_box_callback($post) {
?>
  <p>
        مزامنة الحقول - سيتم استنساخ كل الحقول فى هذه الصفحة واضافتها للصفحة المختارة
        كن حذر - إذا لم تعرف المقصود من استخدام هذه الخانة، رجاءا لا تستخدمها
    <br><br>
    <label for="rm_oxy_kits_sync_pid">Page id</label>
    <input style=" width: 100%; " type="text" id="rm_oxy_kits_sync_pid" name="rm_oxy_kits_sync_pid" placeholder="Page id بحذر - قد يتم حذف بيانات هامة اذا لم تكن حذراً" />
  </p>
  <?php
}

// حفظ بيانات الودجت
function rm_oxy_kits_sync_save_meta_box($post_id) {
  $to_p_id = (isset($_POST['rm_oxy_kits_sync_pid']) && intval($_POST['rm_oxy_kits_sync_pid']) ) ? intval($_POST['rm_oxy_kits_sync_pid']) : 0;
  
  if ( 
      !$to_p_id ||
      !function_exists( 'pll_the_languages' ) || 
      get_post_type($post_id) != get_post_type($to_p_id)
    ) {
    return;
  }
  
    $thumbnail_id = get_post_thumbnail_id($post_id);
    update_post_meta($to_p_id, '_thumbnail_id', $thumbnail_id);

    // احصل على جميع ال meta
  $meta = get_post_meta($post_id);

    
    $dont = array(
        //    '_wp_page_template',
        '_edit_last',
        '_edit_lock',
        'ct_other_template',
        'ct_template_archive_post_types_all',
        'ct_template_categories',
        'ct_template_categories_all',
        'ct_template_tags',
        'ct_template_tags_all',
        'ct_template_custom_taxonomies',
        'ct_template_custom_taxonomies_all',
        'ct_template_authors_archives_all',
        'ct_template_index',
        'ct_template_front_page',
        'ct_template_blog_posts',
        'ct_template_date_archive',
        'ct_template_search_page',
        'ct_template_inner_content',
        'ct_template_404_page',
        'ct_template_all_archives',
        'ct_template_archive_among_taxonomies',
        'ct_template_apply_if_archive_among_taxonomies',
        'ct_template_archive_post_types',
        'ct_template_apply_if_archive_among_cpt',
        'ct_template_authors_archives',
        'ct_template_apply_if_archive_among_authors',
        'ct_template_single_all',
        'ct_template_post_types',
        'ct_template_exclude_ids',
        'ct_template_include_ids',
        'ct_template_taxonomies',
        'ct_use_template_taxonomies',
        'ct_template_post_of_parents',
        'ct_template_apply_if_post_of_parents',
        'ct_template_order',
        'ct_builder_shortcodes',
        'oxygen_lock_post_edit_mode',
        // 'main_cover_type',
        // '_main_cover_type'
    );
    
    $array_diff = [];


  // ترجمة كل meta إلى اللغة المحددة
  foreach ($meta as $key => $value) {
    if(in_array($key, $dont)) {
        continue;
    }
    $array_diff[]= $key;
    $current_v = get_post_meta($post_id, $key, true);
    update_post_meta($to_p_id, $key, $current_v);
  }
//     echo '<pre>';
//     print_r($array_diff);

// echo '</pre>';
//     die();
}




// ربط الوظائف بخطافات ووردبريس
add_action('add_meta_boxes', 'rm_oxy_kits_sync_custom_meta_box');
add_action('save_post', 'rm_oxy_kits_sync_save_meta_box');
