/**
 * Theme Name: Edukul Child
 * Template: edukul
 * Version: 1.0
 * Description: Online Courses WordPress Theme
 * Author: Ninzio
 **/

<?php
/**
 * Reemplaza el texto "All" de CubePortfolio por "Todos" *en todo el sitio*.
 * Robusto: actúa al cargar, con MutationObserver y con un pequeño polling.
 */
add_action('wp_enqueue_scripts', function () {
    if (is_admin() || wp_doing_ajax() || (defined('REST_REQUEST') && REST_REQUEST)) {
        return;
    }
    // Encola un manejador vacío para poder inyectar JS inline en el footer
    wp_register_script('ao-cbp-rename-all', false, [], null, true);
    wp_enqueue_script('ao-cbp-rename-all');

    $js = <<<JS
(function(){
  function swapAllToTodos(root){
    var items = (root || document).querySelectorAll(
      '.cbp-filter-item.button-all, [data-filter="*"]'
    );
    items.forEach(function(el){
      // Muchos themes envuelven el texto en <span>
      var target = el.querySelector('span') || el;
      var txt = (target.textContent || '').trim();
      if (/^all$/i.test(txt)) {
        target.textContent = 'Todos';
      }
    });
  }

  // 1) Al cargar el DOM
  document.addEventListener('DOMContentLoaded', function(){
    swapAllToTodos(document);
  });

  // 2) Después de que otros scripts dibujen/actualicen (tabs, filtros, ajax)
  window.addEventListener('load', function(){
    swapAllToTodos(document);
  });

  // 3) Observa cambios dinámicos (AJAX, paginaciones, tabs)
  var mo = new MutationObserver(function(muts){
    muts.forEach(function(m){
      if (m.addedNodes && m.addedNodes.length) {
        m.addedNodes.forEach(function(n){
          if (n.nodeType === 1) swapAllToTodos(n);
        });
      }
    });
  });
  mo.observe(document.documentElement, { childList: true, subtree: true });

  // 4) Pequeño polling por si algún script pinta tarde
  var tries = 0;
  var t = setInterval(function(){
    swapAllToTodos(document);
    if (++tries > 20) clearInterval(t); // ~10s
  }, 500);
})();
JS;
    wp_add_inline_script('ao-cbp-rename-all', $js);
});
