Enrique J. Ros

Qué son los endpoints de WooCommerce

¿Te has dado cuenta de que WooCommerce utiliza diferentes URLs que en realidad no existen como páginas para mostrar diferente contenido al usuario? ¿Te has vuelto alguna vez loco buscando el template de la página en la que el cliente puede editar sus datos o ver sus pedidos?

No busques más, esas páginas no existen. Se trata de los endpoints de WooCommerce, un sistema que muestra diferentes contenidos en una misma página. Vamos a ver cómo funciona.

Endpoints vs. shortcodes

Hasta la versión 2.0, WooCommerce mostraba al usuario el contenido en páginas mediante shortcodes. En la versión actual (2.6.14 en el momento de escribir esto) lo sigue haciendo: las páginas Carrito, Finalizar compra o Mi cuenta son páginas normales de WordPress que contienen estos shortcodes especiales. Puedes verlos todos en este artículo:

Pero antes eran muchos más. La página de gracias por su pedido, la de edición de los datos del cliente, la de seguimiento del pedido y algunas otras se implementaban también mediante shortcodes. Un engorro.

La llegada de los endpoints

Sin embargo todo eso cambió a partir de WooCommerce 2.1. Esta colección de shortcodes se agrupó en sólo cuatro, que son los que hay activos a día de hoy:

Tu carrito está vacío.

Volver a la tienda

Para hacer seguimiento de tu pedido, por favor introduce el ID de tu pedido en el cuadro de abajo y pulsa el botón «Seguir». Esto se envió en tu recibo y en el correo electrónico de confirmación que deberías haber recibido.

Acceder

Pero entonces, ¿qué ha pasado con esos contenidos? ¿Dónde están en realidad la página de agradecimiento por el pedido, la de contraseña perdida o la de descargas, que hoy podemos ver en diferentes pestañas de la página Mi cuenta?

Pues, simplemente, esas páginas no existen.

Qué son los endpoints

Sin embargo, resulta que si accedes a www.tutiendachula.com/mi-cuenta/view-order/{ID_de_PEDIDO} puedes hacer el seguimiento de un pedido (si es tuyo, como cliente), o si entras en www.tutiendachula.com/mi-cuenta/edit-account/ puedes editar los detalles de la cuenta. ¿Qué clase de brujería es ésta? 🙂

Pues esto son precisamente los endpoints: en realidad la única página que existe como tal (refiriéndome a los ejemplos que acabo de poner) es la de Mi cuenta, www.tutiendachula.com/mi-cuenta/, y el resto de esos contenidos se generan de forma dinámica en función de la URL llamada.

Qué endpoints existen

Como decía más arriba, en WooCommerce 2.1 se sustituyeron muchos shortcodes por endpoints, repartidos entre las páginas Mi cuenta y Finalizar compra (Checkout). Son los siguientes:

Es decir, si por ejemplo accedes a www.tutiendasuperchula.com/mi-cuenta/add-payment-method/ (y tienes habilitado el pago con tarjeta de crédito) tendrás ahí la pantalla para guardar los datos de la tarjeta y no tener que ponerlos en cada compra.

Sin embargo, esa página como tal no existe en realidad: si vas a Escritorio > Páginas verás que no está, y si pinchas en Editar página en el menú de administración te encontrarás editando la página Mi cuenta. Se trata de un endpoint.

Cómo modificar los endpoints

La lista de endpoints que te daba más arriba es la que viene con WooCommerce por defecto. Sí, están todos en inglés y la verdad no causa muy buena impresión algo como /mi-cuenta/edit-account/.

¿No quedaría mucho mejor (cara al cliente) algo como /mi-cuenta/editar-detalles/? ¿No puedo cambiar eso? Aún diría más: ¿no puedo desactivar las que no me interesen? La respuesta a ambas preguntas es, por supuesto, que sí.

Y seguro que has visto las opciones miles de veces, pero no las has tocado por no saber para qué servían y/o por miedo a romper algo. De hecho, están bien a la vista. Las opciones para cambiar los endpoints de Mi cuenta están en WooCommerce > Ajustes > Cuentas:

Mientras que los endpoints relativos al checkout están (a ver si lo adivinas) en WooCommerce > Ajustes > Finalizar compra:

No hay peligro en cambiarlos. Es más, si quieres que alguno de ellos no esté disponible para los clientes basta con borrarlo y dejar el campo en blanco. Eso sí, no borres los vitales, como el de pagar, si no quieres quedarte sin ventas. 🙂

Modificar el contenido de los endpoints

Y de esta forma llegamos al asunto escabroso que trae de cabeza a muchos usuarios e implementadores: ¿qué pasa si quiero modificar el contenido de un endpoint? No se trata de una página real así que ¿cómo lo hago?

¿Cómo puedo hacer para cambiar el mensaje de gracias por su pedido o para insertar el píxel de Facebook en la página de pedido recibido?

Bueno, siempre está la técnica “chapucera” y poco recomendable de modificar manualmente el template (en /wp-content/plugins/woocommerce/templates/, que tiene dos inconvenientes:

  1. O se pierden los cambios cada vez que actualices WooCommerce
  2. o pasas el template modificado a una ruta dentro de tu plantilla para que no se actualice, con lo que no te beneficias de los sucesivos cambios y mejoras en el código de WooCommerce

Afortunadamente WooCommerce (al igual que algunos otros plugins y WordPress) ponen a nuestra disposición los hooks para cambiar lo que necesitemos, una especie de “ganchos” en los que colgar nuestro propio código. Pero eso es ya un tema más técnico del que (quizá) hable otro día.

Salir de la versión móvil