Cómo añadir elementos a la barra de administración de WordPress

La barra de herramientas de admin de WordPress es tremendamente práctica, pues te permite acceder rápidamente a zonas de la administración de tu WordPress desde cualquier pantalla, incluso mientras estás viendo tu web.

Por defecto, no solo te permite cambiar rápidamente de la administración a la portada de tu web, también te ayuda a añadir nuevas entradas rápidamente, editar una que estés viendo, modificar tu perfil de usuario, y con el paso de los plugins más cosas.

Pero esto ya lo sabías ¿verdad?

Lo que quizás no sabías es que puedes añadir a la barra de herramientas de admininstración de WordPress más elementos, personalizados según tus necesidades, y es bastante fácil de conseguir.

Cómo añadir un elemento a la barra de admin de WordPress

Por ejemplo, para añadir un nuevo elemento a la barra de admin que lleve directamente a la pantalla de salud del sitio de WordPress el código que necesitarías sería así:

/* Salud del sitio en barra admin wp */
add_action( 'admin_bar_menu', 'ayudawp_nuevo_elemento_admin', 999 );
function ayudawp_nuevo_elemento_admin( $wp_admin_bar ) {
	$args = array(
		'id'    => 'salud_en_menu',
		'title' => 'Salud del sitio',
		'href'  => admin_url() . 'site-health.php',
	);
	$wp_admin_bar->add_node( $args );
}

Este código puedes añadirlo al final del archivo functions.php del tema activo o a un plugin que tengas para personalizar aspectos de WordPress, como siempre.

Y, mágicamente, aparecerá el nuevo elemento en tu barra de admin.

Y, por supuesto, al hacer clic te llevará a la herramienta de salud del sitio.

Chulo y práctico ¿eh?

La magia ocurre gracias a la función

add_node()

. En el Codex tienes todos los elementos básicos que puedes usar.

Para añadir tus nuevos elementos a la barra de admin tienes que usar el gancho 

admin_bar_menu

, y en el ejemplo he utilizado la prioridad de 999 para que mi nuevo elemento sea el último de la barra de herramientas, un toque básico de personalización.

¿Nos animamos un poco?

Cómo añadir un menú desplegable a la barra de admin de WordPress

Un paso más sería crear nuestro propio menú en la barra de herramientas de admin de WordPress, con subelementos que lleven a algunas páginas que queramos tener a mano fácilmente desde cualquier parte.

Lo mejor de hacerlo así es que si quieres añadir varios elementos no ocuparás toda la barra de admin, solo se mostrará un menú, con los elementos desplegables.

Esto lo ves a menudo con los menús que añaden plugins como Yoast SEO y otros.

Pues bien, en este caso usaríamos un código así:

/* Menu personalizado desplegable para RGPD en barra admin de wp */
add_action( 'admin_bar_menu', 'menu_rgpd_admin', 999 );

function menu_rgpd_admin( $wp_admin_bar ) {
	$args = array(
		'id'    => 'menu_privacidad',
		'title' => 'Privacidad',
		'href'  => admin_url() . 'options-privacy.php',
	);
	$wp_admin_bar->add_node( $args );

	$args = array(
		'id'    => 'salud_del_sitio',
		'title' => 'Salud del sitio',
		'href'  => admin_url() . 'site-health.php',
		'parent' => 'menu_privacidad'
	);
	$wp_admin_bar->add_node( $args );

	$args = array(
		'id'    => 'exportar_datos',
		'title' => 'Exportar datos personales',
		'href'  => admin_url() . 'export-personal-data.php',
		'parent' => 'menu_privacidad'
	);
	$wp_admin_bar->add_node( $args );

	$args = array(
		'id'    => 'borrar_datos',
		'title' => 'Borrar datos personales',
		'href'  => admin_url() . 'erase-personal-data.php',
		'parent' => 'menu_privacidad'
	);
	$wp_admin_bar->add_node( $args );

}

En este ejemplo he creado un menú en el que acoger ajustes de privacidad de la web, para cumplir con mis obligaciones con la RGPD, en el que el elemento principal lleva a los ajustes de privacidad, y en el submenú he incluido enlaces a la salud del sitio, y a las herramientas de exportación y borrado de datos personales de usuarios.

El menú quedaría así de mono…

Y lo mejor es que estará disponible en todo momento desde la barra de herramientas de administración de WordPress, a mi servicio, o al tuyo.

Como habrás visto en el código (y sino te fijas ahora) se usa el parámetro

parent

para configurar las listas jerárquicas de enlaces.

La cadena que uses en el parámetro

parent

tendrá que ser, lógicamente, un

id

que ya hayas definido previamente.

¡Pues ya está!

Te dejo este ejercicio de tarea para el fin de semana, para que te animes y aprendas algo más a personalizar tu WordPress.

Este tipo de menús personalizados son una pequeña joya que, sobre todo cuando haces webs para clientes, aportan un plus de gusto por el detalle, que tus clientes suelen apreciar.

La entrada Cómo añadir elementos a la barra de administración de WordPress la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Tutorial Divi rápido: Cómo ocultar la cabecera al hacer scroll

Un efecto muy chulo que me pidió un cliente hace poco es que la cabecera de una web hecha con Divi se ocultase totalmente al hacer scroll el usuario, al navegar por la página.

No me refiero a ocultar el menú principal de Divi ni a ocultar la barra secundaria de Divi al hacer scroll, que es algo que ya vimos en tutoriales anteriores, sino a ocultar la cabecera completamente, con todo lo que contenga.

La solución es bien sencilla, solo hay que añadir una línea de CSS.

Abres el personalizador de temas de WordPress (Apariencia > Personalizar > CSS adicional) y añades esto:

/* Ocultar cabecera fija al hacer scroll */
  .et-fixed-header { display:none; }

Cuando publiques los cambios la cabecera se ocultará totalmente en cuando el usuario navegue por la web, como puedes ver en el siguiente vídeo…

Y ya está. Fácil ¿eh?

La entrada Tutorial Divi rápido: Cómo ocultar la cabecera al hacer scroll la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

WooCommerce: Descuentos exclusivos solo a clientes

¿Alguna vez has pensado en aplicar la política de precios a clientes como estrategia de fidelización? Pues que sepas que es una herramienta muy potente, si la sabes aprovechar.

¿Qué gano aplicando descuentos a clientes?

Tanto si te planteas una estrategia de descuentos a clientes que ya han hecho alguna compra, como si simplemente estás valorando fomentar el registro de clientes aunque aún no hayan hecho ninguna compra, debes saber que puede ser un potenciador importante de ventas.

Algunos de los Ecommerce más famosos utilizan esta estrategia para fidelizar clientes y fomentar ventas.

Porque cuando eres capaz de generar una gran base de clientes gracias a descuentos exclusivos para ellos dispones de una potentísima base de usuarios a los que animar a realizar más compras, ya sea desde una newsletter o simplemente desde su cuenta de usuario.

Está más que demostrado el enorme potencial de incitar al registro, a la membresía, para obtener descuentos exclusivos para clientes registrados, la mayoría de las tiendas online de venta privada lo utilizan con éxito.

¿Cuál es el primer paso?

El primer paso es conseguir que los visitantes se registren para obtener los descuentos exclusivos solo para clientes.

Esto lo puedes conseguir de manera tan sencilla como el aviso de tienda que viene en toda instalación de WooCommerce por defecto.

Simplemente personalízalo para animar a los visitantes a registrarse para obtener el descuento exclusivo para clientes.

Eso sí, como les estás animando a registrarse en la página de cuenta de tu tienda online debes asegurarte de que se permita el registro, algo que consigues con este ajuste de WooCommerce…

Tienes el ajuste en WooCommerce > Ajustes > Cuentas y privacidad.

Una vez activo, cuando un usuario visite la página de «Mi cuenta» podrá acceder si ya era cliente o registrarse como nuevo cliente.

Para finalizar, asegúrate de que en los ajustes generales de WordPress marcar el perfil de «Cliente» como perfil usuario por defecto.

¿Cómo aplico descuentos en WooCommerce a los usuarios registrados?

¡Hechos los preliminares vamos al lío!

Hay dos maneras fundamentalmente con las que puedes aplicar descuentos a tus clientes ya registrados, que estén conectados claro.

Aplicar descuentos a clientes con un código

Mira tú por dónde hay un código que te facilita esto y mucho, este:

/* Parte 1 - Producto de WooCommerce */
add_filter( 'woocommerce_get_price_html', 'ayudawp_descuento_clientes_producto', 9999, 2 );
function ayudawp_descuento_clientes( $price_html, $product ) {
    // SOLO EN LA TIENDA
    if ( is_admin() ) return $price_html;
    // SOLO SI NO HAY PRECIO
    if ( '' === $product->get_price() ) return $price_html;
    // SI EL CLIENTE ESTÁ CONECTADO APLICAR 20% DE DESCUENTO   
    if ( wc_current_user_has_role( 'customer' ) ) {
        $orig_price = wc_get_price_to_display( $product );
        $price_html = wc_price( $orig_price * 0.80 );
    }
    return $price_html;
}
/* Parte 2 - Carrito y finalizar compra */
add_action( 'woocommerce_before_calculate_totals', 'ayudawp_descuento_clientes_carrito', 9999 );
function ayudawp_descuento_clientes_carrito( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;
    // SI EL CLIENTE NO ESTA CONECTADO NO SE APLICA DESCUENTO
    if ( ! wc_current_user_has_role( 'customer' ) ) return;
    // LOOP POR PRODUCTOS DEL CARRITO Y APLICAR DESCUENTO 20%
    foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
        $product = $cart_item['data'];
        $price = $product->get_price();
        $cart_item['data']->set_price( $price * 0.80 );
    }
}

Este código aplica un 20% de descuento (

$orig_price * 0.80

) a cada producto o a todo el carrito si el usuario tiene el perfil de cliente (

customer

) y está conectado.

En caso contrario muestra al visitante el precio normal que hayas introducido al crear el producto, descuentos normales incluidos si los tuviese.

O sea, que un visitante normal vería así un producto:

Mientras que el cliente conectado lo vería con el descuento del 20% añadido, así:

Como siempre, el código anterior puedes añadirlo al final del archivo functions.php del tema activo o a tu plugin de personalizaciones.

Aplicar descuentos a clientes con plugins

Hay varios plugins que permiten hacer personalizaciones de este tipo en WooCommerce, incluso los encontrarás en el directorio de WordPress.org, pero ninguno gratuito, la personalización de precios por tipo de usuario es siempre una opción premium.

Y de los plugins que ofrecen estas personalizaciones de precios por perfil de usuario el mejor y con la mejor relación precio/prestaciones es WooCommerce Role Based Prices

Nada más instalarlo tienes una nueva página de ajustes en Yith > Role Based Prices en la que configurar todos los aspectos.

Lo primero es definir a qué precio se aplicarán los descuentos especiales (normal o rebajado)

Para a continuación configurar a qué perfiles de usuario se pueden aplicar descuentos.

Y, la página de ajustes más importante, la de reglas de precio.

Y añadir reglas es realmente sencillo, solo tienes que rellenar unos pocos campos para configurarla.

Como ves en la captura anterior es sencillísimo:

  1. Eliges a qué perfil de usuario se aplicará.
  2. Defines si se aplicará a todos los productos o filtras por categorías o etiquetas (exclusión o inclusión).
  3. Especificas si el descuento será fijo o por porcentaje.
  4. Escribes el valor.
  5. Aplicas una prioridad si hubiese alguna otra regla sobre lo mismos productos y/o perfiles.

Las reglas se aplicarán automáticamente, pero es que además puedes crear reglas de precio específicas por producto.

En la página de creación/edición de productos verás un nuevo campo desde el que crear reglas personalizadas por producto.

Igual que las reglas globales, tremendamente sencillas de crear y configurar.

Para finalizar, puedes incluso personalizar los textos que se mostrarán a los visitantes, para animarles a registrarse y obtener descuentos.

Esto siempre es importante ¿no crees?

Como ves, WooCommerce Role Based Prices un pedazo de plugin, con enormes posibilidades, pues no solo puedes aplicar reglas de precio por perfil de usuario…

  • Puedes editar precios (en porcentaje y cantidad) para un producto simple, una categoría o etiqueta de productos, basándote en perfiles de usuario, etc.
  • Puedes aplicar precios distintos tanto al precio normal como al rebajado
  • Puedes cambiar la visibilidad del botón del añadir al carrito, el precio basado en perfiles, el precio, todo, según el p perfil de usuario
  • Puedes mostrar u ocultar impuestos de productos basándote en perfiles de usuario
  • Funciona con productos variables.

Además, como es un plugin de Yith, además de ser de por sí muy competitivo en precio, como todos sus plugins, puedes aprovechar el cupón de descuento que siempre tengo activo aquí.


Tanto si te sirve el código o prefieres optar por el plugin, espero que te animes a crear una estrategia de descuentos para clientes, está demostrado que es muy potente, y puede ayudarte a fidelizar y aumentar ventas en tu Ecommerce.

La entrada WooCommerce: Descuentos exclusivos solo a clientes la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Estás utilizando mal Contact Form 7 … y lo sabes

Aunque el plugin Contact Form 7 es, con enorme diferencia, el plugin de formularios de contacto para WordPress más utilizado, la mayoría de la gente que lo usa no aprovecha todo su potencial, y de hecho me encuentro en muchas ocasiones que hay usuarios que ni siquiera saben utilizarlo medianamente bien.

Bien es cierto que no es un dechado de usabilidad y simplicidad, pues su interfaz espartana, en modo HTML, no ayuda a que los usuarios más noveles se enamoren del plugin, y mucho menos cuando ven que hay que usar shortcodes para insertar formularios en sus páginas, pero algo tendrá para ser el rey ¿no?

Yo apuntaría 3 motivos:

  1. Que WordPress – por algún extraño motivo que no alcanzo a descubrir – no tiene ninguna funcionalidad por defecto para crear formularios de contacto, así que te toca instalar un plugin para esto sí o sí.
  2. Que Contact Form 7 ofrece gratis, bien directamente o mediante ampliaciones, todas las características avanzadas que otros plugins de formularios de contacto solo ofrecen de pago.
  3. Que Contact Form 7 es enormemente ampliable y configurable, precisamente por su sencillez.

Y mira que he escrito en el blog sobre Contact Form 7, pero nunca había explicado cómo crear formularios, ni cómo configurarlo, los básicos vaya.

¡Reto superado!

Esto se acabó, porque hoy te traigo un vídeo tutorial de más de 25 minutos en el que explico paso a paso desde la instalación de Contact Form 7, cómo crear formularios personalizados avanzados, cómo solucionar errores y hasta cómo ampliarlo.

Así que no te pierdas esta guía en vídeo, y luego ya me cuentas si te ha servido, y si a partir de hoy empezarás a aprovechar bien Contact Form 7…

La entrada Estás utilizando mal Contact Form 7 … y lo sabes la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

ADSLZone recomienda encarecidamente no usar WooCommerce – ¿El motivo? te sorprenderá

Hay veces que cuesta no enfadarse cuando uno lee titulares que o bien los provocan el desconocimiento, la desinformación, falta de comprensión lectora, mala leche o qué.

El artículo de marras

Este es el caso del artículo del blog ADSLZone cuyo titular dice: «Consiguen robar tu tarjeta al visitar una web con un simple icono»

Bueno, como se explica realmente en la fuente no es algo tan sencillo, y quise explicarme en un tuit, pero no es el medio, así que sigamos.

El artículo empieza diciendo que:

…una tienda que usaba un plugin de WordPress llamado WooCommerce estaba infectado con un script de Magecart para robar tarjetas

Luego, tras explicar muy resumidamente la información del artículo original sobre la técnica de Web Skimming utilizada  –  esta sí realmente detallada y técnica –, el autor del artículo en ADSLZone llega a la siguiente conclusión:

Esta no es la primera vez que un plugin malicioso de WordPress ha estado involucrado en este tipo de ataques. Hace unos meses, se descubrió también un bug en WooCommerce que permitía a los atacantes ejecutar cargas XSS para crear cuentas con permisos de administrador en los dominios vulnerables. Por tanto, os recomendamos encarecidamente que no utilicéis ese plugin.

La fuente original

Te aseguro que he leído 3 veces entero el artículo técnico original y EN NINGUNA PARTE se alude a que la inyección de código sea debida a WooCommerce, ni se dice que WooCommerce sea un «plugin malicioso», y por supuesto, no se recomienda no utilizar el plugin que impulsa la mayoría de las tiendas online en el mundo.

Solo indican, en el artículo original, que encontraron el script malicioso inyectado en los datos EXIF de un favicon, que sí, mediante sistemas de ofuscación y envío de datos privados de los usuarios de «esa» tienda online desde una carpeta en la que se habían inyectado varios archivos, desde el favicon hasta un PHP, todos con la oscura intención de robar datos, por descontado.

Y solo se alude a que la web comprometida – sin especificar el motivo – está creada con WooCommerce, el software de creación de tiendas online más extendido.

Cualquier usuario recién aterrizado en WordPress sabe que WordPress es seguro, y que WooCommerce es seguro, si se cumplen unos básicos, que por supuesto afectan a cualquier software:

  1. Software base actualizado: WordPress en este caso.
  2. Software adicional actualizado: WooCommerce en este caso.
  3. Medidas básicas de seguridad: Seguridad en las contraseñas, seguridad en el sistema de archivos, un hosting seguro.

Las «conclusiones»

Y, ciertamente, no sabemos, porque no se explica siquiera en el artículo original, el origen de la «infección», así que me parece como poco aventurada la declaración/conclusión final del autor del artículo resumen de ADSLZone de que «… un plugin malicioso de WordPress» y de que «… os recomendamos encarecidamente que no utilicéis ese plugin».

Bueno, que no merece la pena ni seguir.

Solo espero, es más me ofrezco, a que cuando un bloguero quiera publicar algo sobre WordPress, se informe correctamente, consulte a fuentes que sepan de WordPress, pero sobre todo espero que no se inventen titulares donde no los hay, ni suelten afirmaciones no extraídas de ninguna fuente, sino de algún malentendido.

Y, ya puestos, que no convierta sus opiniones personales en recomendación editorial, poniendo en plural sus conclusiones, pues supongo que no todo ADSLZone firmaría eso de que «… os recomendamos encarecidamente que no utilicéis ese plugin».

Conozco a mucha y buena gente de ADSLZone y no solo no son anti-WordPress, sino que ADSLZone está creado con WordPress, así que no creo que la opinión del autor de ese artículo represente a todo ADSLZone, ni siquiera al equipo de redacción.

Pero ese tipo de afirmaciones, mira, hasta las entiendo cuando hables de marcas que ganan millones escamoteando prestaciones a los usuarios, pero si hablas de WordPress, un software gratuito y de código abierto, comprometido con la filosofía GPL, que mantienen altruistamente miles de usuarios, esperaría al menos que se dignen a informarse un poco más, pues con esos «sanbenitos», esas opiniones dichas a la ligera a una audiencia quizás no muy bien informada, se hace mucho daño a algo que está democratizando la web, y que incluso a tu medio le está facilitando su publicación, sin coste alguno de licencia, soporte gratuito por parte de usuarios y actualizaciones gratis por parte de la comunidad WordPress.

Actualización: La rectificación

Después de plantear mi queja el autor me indicó que se había modificado el artículo, en concreto el último párrafo, para subsanar los errores, quedando así:

Y, salvo la «recomendación», sinceramente, se siguen haciendo afirmaciones que no salen en ningún caso del artículo fuente. Vamos, una rectificación a medias creo yo, muy a medias.

La entrada ADSLZone recomienda encarecidamente no usar WooCommerce – ¿El motivo? te sorprenderá la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.