Change Admin Panel Footer Text php

View Snippet
                    add_filter(
//Display custom text in the admin panel footer with this snippet.
	'admin_footer_text',
	function ( $footer_text ) {
		// Edit the line below to customize the footer text.
		$footer_text = 'Powered by <a href="https://www.wordpress.org" target="_blank" rel="noopener">WordPress</a> | WordPress Tutorials: <a href="https://www.wpbeginner.com" target="_blank" rel="noopener">WPBeginner</a>';
		
		return $footer_text;
	}
);
                  

Disable The WP Admin Bar php

View Snippet
                    /* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );
                  

Manejar peticion Ajax Wordpress php

View Snippet
                    //***https://www.thiscodeworks.com/manejar-peticion-ajax-wordpress-php/6522b3cf37e4d50013025d95***/
// Agrega la acción para manejar la petición AJAX
add_action('wp_ajax_actualiza_registro', 'actualiza_registro');
function actualiza_registro() {
    global $wpdb;
    if (isset($_POST['submit'])) {
        $id = $_POST['registro_id'];
        $titulo = sanitize_text_field($_POST['titulo']);
        $contenido = sanitize_text_field($_POST['contenido']);

        // Validación de los datos (puedes agregar más validaciones aquí)
        if ($id <= 0 || empty($titulo) || empty($contenido)) {
            // Si hay algún campo vacío o el ID es inválido, devuelve un error
            wp_send_json_error('Por favor, completa todos los campos y proporciona un ID válido.');
        } else {
            // Actualiza la nota en la tabla
            $datos = array(
                    'titulo' =>  sanitize_text_field($_POST['titulo']),
                    'contenido' => sanitize_text_field($_POST['contenido'])
                );
             $condicion = array('id' =>  $_POST['registro_id']);
             
            $tabla = $wpdb->prefix . 'oxygenados_notas';
            $wpdb->update( $tabla,$datos,$condicion );
            wp_send_json_success('Nota actualizada correctamente.');
        }
    }
    // Si no se envió el formulario, devuelve un error
    wp_send_json_error('No se ha enviado ningún formulario.');
}
                  

Consulta AJAX WordPress javascript

View Snippet
                    // Obtener los valores a actualizar desde el usuario
var id = 1; // ID del registro a actualizar
var nuevoDato = "Nuevo dato"; // Nuevo valor para la columna

// Crear una solicitud AJAX para enviar los datos al servidor
var xhr = new XMLHttpRequest();
xhr.open("POST", "actualizar_datos.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

// Enviar los datos al servidor
xhr.send("id=" + id + "&nuevoDato=" + nuevoDato);

// Manejar la respuesta del servidor
xhr.onreadystatechange = function() {
    if (xhr.readyState === XMLHttpRequest.DONE) {
        if (xhr.status === 200) {
            console.log(xhr.responseText); // Mostrar la respuesta del servidor
        } else {
            console.error("Error al realizar la solicitud");
        }
    }
};

                  

03 Menu - Templates javascript

View Snippet
                    document.addEventListener("DOMContentLoaded", function () {
    if (window.angular) return;
    const principal = document.querySelector(".fp3-container-textos"),
        secciones = principal.querySelectorAll(".fp3-seccion"),
        linksIconos = document.querySelectorAll(".fp3-link_icono"),
        destino = document.querySelector(".fp3-guia_div-container"),  
        footer = document.querySelector('footer'),
        Ttags = ["h2", "h3", "h4", "h5", "h6"],  LnkSec = []    
    let rootMarg = -250, maxLinkW = 0
    while (destino.firstChild) { destino.removeChild(destino.firstChild)}
    secciones.forEach((sec) => {
        LnkSec.push(sec.id); 
        Ttags.forEach((tag) => {  
            encontrados = sec.querySelectorAll(tag);
            encontrados.forEach((ele) => {
                const newEle = document.createElement("a"),
                    tagName = ele.nodeName,
                    eleId = ele.id,
                    eleTexto = ele.innerText
                newEle.href = `#${eleId}`
                newEle.id = `link-${tagName}-${eleId}`
                newEle.classList.add('link-H', `link-${tagName}`)
                newEle.innerText = `${eleTexto}`
                destino.appendChild(newEle)
            });
        });
    }) 
    //Ajustar los anchos de los enlace para encajar con el diseño
    const links = document.querySelectorAll('.link-H')
    links.forEach(link =>{
      maxLinkW = link.clientWidth > maxLinkW ? link.clientWidth : maxLinkW 
    })
    //Maniobra de ajuste para Responsive
    for(l of links)
       l.style.width = `${maxLinkW+15}px`
    LnkSec.forEach((lnKS, index) => {linksIconos[index].href = `#${lnKS}`})
    function responsive(){
        let styles= ""
        const hScreen = Math.round(window.innerHeight / 3.5)
         rootMarg = (hScreen * -.5) + 45
        if(screen.width < 994 ){
            altoPrin = destino.firstChild.clientHeight * 7
            factor = destino.clientHeight / principal.clientHeight
            styles = `height: ${altoPrin}px; max-height: ${altoPrin}px; padding-top: 10px`
            window.addEventListener('scroll', function() {
                var scrolling = window.scrollY * factor
                destino.parentElement.scrollTo({top: scrolling,})
            })
            rootMarg = -20
        }
        destino.parentElement.style= styles
     }
   responsive()
  window.addEventListener('resize', responsive)
    /*** OBSERVERS ***/
        //Observer de Secciones
    const seccionesObsever = new IntersectionObserver(
        (entries) => {
            entries.forEach((entry) => {
                const obj = entry.target
                const objId = obj.id
                const boton = document.querySelector('[href*="' +objId+ '"]')
                boton.firstChild.classList.toggle('icono-activado',entry.isIntersecting)
                const idH2 = obj.querySelector('h2').id
               destino.querySelector(`[id*="${idH2}"]`).classList.toggle('primer-header',entry.isIntersecting)       
            })
        },{ threshold: 0, rootMargin: `${rootMarg}px`}
    )
    LnkSec.forEach((l) => {seccionesObsever.observe(document.getElementById(l))})
    //Observer de Enlaces de la izquierda
    const destinoObsever = new IntersectionObserver(
        (entries) => {
            entries.forEach((entry) => {    
                const aleId = entry.target.previousSibling.id  
                const destLnk = document.querySelector('[id*="' + aleId+ '"]')
                const laClase = destLnk.classList[1] + '-activado'
                destLnk.classList.toggle(laClase, entry.isIntersecting)
        },{threshold: 0, rootMargin:  `${rootMarg}px, threshold: 0.5 `}) 
    })
    secciones.forEach(ase =>{  
      ses = ase.querySelectorAll(Ttags)
      ses.forEach(se =>{
          if(se.nextSibling.localName == 'div')
            destinoObsever.observe(se.nextSibling)
          })
      })
    //Observer del Footer
    const footerObsever = new IntersectionObserver(entries => {
        icl.firstChild.classList.toggle('icono-activado',entries[0].isIntersecting)})
    for(icl of linksIconos)
        if(icl.href.includes('footer'))
          footerObsever.observe(footer)     
})/**** Final ****/