Saludos a todos. En esta ocasión, nos sumergiremos en tres códigos esenciales para integrar descargas de PDFs en la página de agradecimiento de WooCommerce.
Exploraremos cómo incorporar un PDF en cada producto, en las categorías específicas o incluso un PDF general. Pero, ¿por qué deberías considerar estas opciones?
- PDFs por Producto:
- Caso de uso: Ofrecer manuales de usuario o guías específicas para cada producto.
- Ejemplo: Un cliente que adquiere una impresora podría descargar un manual detallado de uso.
- PDFs por Categoría:
- Caso de uso: Proporcionar información general sobre una categoría de productos.
- Ejemplo: En la categoría de tecnología, los clientes podrían descargar un folleto con las últimas tendencias tecnológicas.
- PDF General:
- Caso de uso: Suministrar material promocional o informativo que abarque todo el catálogo.
- Ejemplo: Un PDF general con promociones especiales o detalles sobre políticas de devolución.
Estos códigos no solo amplían las opciones de descarga, sino que también enriquecen la experiencia del cliente. Úsalos de acuerdo a tus necesidades específicas y potencia tu plataforma de comercio electrónico. ¡Vamos a explorar juntos estas posibilidades!

Los siguientes códigos tienes que agregarlos en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS.
PDF General
Este código está diseñado con el propósito de mostrar un enlace de descarga de un archivo PDF en la página de agradecimiento después de que alguien ha realizado una compra en tu tienda en línea.
Aquí hay una explicación más detallada:
- Función
agregar_enlace_descarga_pdf(): Esta función revisa si la página actual es la página de agradecimiento por una compra (is_order_received_page()). Si es así, muestra un mensaje de agradecimiento junto con un enlace para descargar un archivo PDF. - Variable
$pdf_url: Contiene la dirección web (URL) del archivo PDF que quieres que la gente descargue. Por ahora, es una URL de ejemplo, pero debes cambiarla por la URL real de tu propio PDF. echostatement: Imprime un mensaje de agradecimiento en la página con un enlace. El enlace apunta al archivo PDF. El atributotarget="_blank"significa que el enlace se abrirá en una nueva pestaña o ventana del navegador.add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf', 5): Este código «engancha» la funciónagregar_enlace_descarga_pdf()al evento de WooCommerce llamadowoocommerce_thankyou. Esto significa que cuando alguien completa una compra y llega a la página de agradecimiento, se ejecutará automáticamente la función que agrega el enlace de descarga del PDF. La prioridad5indica cuándo se ejecutará en relación con otras funciones vinculadas al mismo evento.
<?php
// Función para agregar un enlace de descarga de PDF en la página de gracias
function agregar_enlace_descarga_pdf() {
// Verifica si estamos en la página de gracias
if (is_order_received_page()) {
// Obtiene la URL del PDF (reemplaza 'URL_DEL_PDF' con la URL real de tu PDF)
$pdf_url = 'https://annoyed-aardvark-bcemr.instawp.xyz/wp-content/uploads/2023/12/sample.pdf';
// Muestra el enlace de descarga
echo '<h3 style="padding:10px; background-color:#f4f4f4;">¡Gracias por tu compra! Haz clic <a href="' . esc_url($pdf_url) . '" target="_blank" rel="noopener noreferrer">aquí</a> para descargar tu PDF.</h3>';
}
}
// Hook para agregar el enlace en el contenido de la página de gracias
add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf', 5);
Lenguaje del código: HTML, XML (xml)
Por Categoría
La función principal de este código es permitir la asociación de archivos PDF con categorías de productos. Posteriormente, en la página de agradecimiento, se muestran enlaces de descarga para los PDF asociados a las categorías de los productos comprados. Ahora, vamos a desglosarlo:
- Función
agregar_campo_pdf_descargable_categoria($term): Esta función se utiliza para agregar un campo personalizado en la página de edición de categorías en el panel de administración de WordPress. El campo permite ingresar la URL de un PDF asociado a esa categoría. add_action('product_cat_edit_form_fields', 'agregar_campo_pdf_descargable_categoria'): Este hook de WordPress (add_action) está vinculado al eventoproduct_cat_edit_form_fields. Cuando se edita una categoría de producto, se ejecuta automáticamente la funciónagregar_campo_pdf_descargable_categoria, que agrega el campo para la URL del PDF.- Función
guardar_valor_campo_pdf_descargable_categoria($term_id): Guarda la URL del PDF ingresada en el campo personalizado para la categoría. Se ejecuta cuando se crea o edita una categoría de producto. add_action('edited_product_cat', 'guardar_valor_campo_pdf_descargable_categoria'): Este hook se activa después de que se edita una categoría de producto y ejecuta la función para guardar el valor del campo personalizado.add_action('create_product_cat', 'guardar_valor_campo_pdf_descargable_categoria'): Este hook se activa después de que se crea una nueva categoría de producto y también ejecuta la función para guardar el valor del campo personalizado.- Función
agregar_enlace_descarga_pdf_por_categoria($order_id): Se ejecuta en la página de agradecimiento por producto después de que se ha completado una compra. Esta función obtiene la información del pedido y muestra enlaces de descarga para los PDF asociados a las categorías de los productos comprados. - Estilos en línea (
<style>): Agrega estilos CSS en línea para dar formato a la tabla que contendrá los enlaces de descarga. - Bucle
foreachpara recorrer los productos del pedido: Obtiene las categorías de cada producto y, para cada categoría, muestra un enlace de descarga si la categoría tiene un PDF asociado. add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf_por_categoria', 5): Este hook de WordPress está vinculado al eventowoocommerce_thankyou. Cuando se completa una compra, se ejecuta la funciónagregar_enlace_descarga_pdf_por_categoriacon una prioridad de 5 para mostrar los enlaces de descarga en la página de agradecimiento.
<?php
// Función para agregar un campo personalizado para la URL del PDF en la página de edición de categoría
function agregar_campo_pdf_descargable_categoria($term) {
$pdf_url = get_term_meta($term->term_id, 'pdf_descargable_categoria', true);
?>
<tr class="form-field">
<th scope="row" valign="top">
<label for="pdf_descargable_categoria">URL del PDF Descargable</label>
</th>
<td>
<input type="text" name="pdf_descargable_categoria" id="pdf_descargable_categoria" value="<?php echo esc_attr($pdf_url); ?>" placeholder="Ingrese la URL del PDF aquí">
<p class="description">Ingrese la URL del PDF asociado a esta categoría. Este enlace se mostrará en la página de gracias después de una compra.</p>
</td>
</tr>
<?php
}
add_action('product_cat_edit_form_fields', 'agregar_campo_pdf_descargable_categoria');
// Función para guardar el valor del campo personalizado de categoría
function guardar_valor_campo_pdf_descargable_categoria($term_id) {
$pdf_url = isset($_POST['pdf_descargable_categoria']) ? esc_url($_POST['pdf_descargable_categoria']) : '';
update_term_meta($term_id, 'pdf_descargable_categoria', $pdf_url);
}
add_action('edited_product_cat', 'guardar_valor_campo_pdf_descargable_categoria');
add_action('create_product_cat', 'guardar_valor_campo_pdf_descargable_categoria');
// Función para agregar un enlace de descarga de PDF en la página de gracias por producto
function agregar_enlace_descarga_pdf_por_categoria($order_id) {
// Obtiene el ID del pedido
$order = wc_get_order($order_id);
// Obtiene los productos del pedido
$items = $order->get_items();
// Comienza los estilos en línea
echo '<style>';
echo '.thankyou-pdf-table { width: 100%; border-collapse: collapse; margin-top: 20px; }';
echo '.thankyou-pdf-table td { border: 1px solid #ddd; padding: 8px; text-align: left; }';
echo '.thankyou-pdf-table a { text-decoration: none; color: #0073aa; font-weight: bold; }';
echo '</style>';
// Comienza la tabla
echo '<table class="thankyou-pdf-table">';
// Recorre cada producto en el pedido
foreach ($items as $item) {
// Obtiene la categoría del producto
$categories = get_the_terms($item->get_product_id(), 'product_cat');
if ($categories && !is_wp_error($categories)) {
foreach ($categories as $category) {
// Obtiene la URL del PDF asociado a la categoría (reemplaza 'pdf_descargable_categoria' con la clave que usaste)
$pdf_url = get_term_meta($category->term_id, 'pdf_descargable_categoria', true);
// Muestra la fila de la tabla para cada categoría con PDF asociado
if ($pdf_url) {
echo '<tr>';
echo '<td>Descarga el PDF para la categoría ' . $category->name . ':</td>';
echo '<td><a href="' . esc_url($pdf_url) . '" target="_blank" rel="noopener noreferrer">Descargar PDF</a></td>';
echo '</tr>';
}
}
}
}
// Finaliza la tabla
echo '</table>';
}
// Hook para agregar el enlace en el contenido de la página de gracias
add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf_por_categoria', 5);
Lenguaje del código: HTML, XML (xml)
Por Producto
Con este trozo de código podrás incluir un archivo PDF descargable en cada producto de tu tienda online. Posteriormente, en la página de agradecimiento, se mostrarán los enlaces de descarga de los PDF asociados a los productos comprados. Vamos a desglosarlo:
- Función
agregar_campo_pdf_descargable(): Esta función agrega un campo personalizado en la página de edición de productos en el panel de administración de WordPress. Este campo permite ingresar la URL de un PDF asociado al producto. woocommerce_wp_text_input(): Una función de WooCommerce para crear un campo de entrada de texto para el formulario de productos.add_action('woocommerce_product_options_general_product_data', 'agregar_campo_pdf_descargable'): Este hook está vinculado al eventowoocommerce_product_options_general_product_data. Muestra el campo personalizado en la sección ‘General’ de la página de edición del producto.- Función
guardar_valor_campo_pdf_descargable($post_id): Guarda la URL del PDF ingresada en el campo personalizado cuando se guarda o actualiza un producto. add_action('woocommerce_process_product_meta', 'guardar_valor_campo_pdf_descargable'): Este hook se activa durante el proceso de guardar los datos del producto. Ejecuta la función que guarda el valor del campo personalizado.- Función
agregar_enlace_descarga_pdf_por_producto($order_id): Esta función se ejecuta en la página de agradecimiento después de una compra. Obtiene la información del pedido y muestra enlaces de descarga para los PDF asociados a los productos comprados. - Estilos en línea (
<style>): Agrega estilos CSS en línea para dar formato a la tabla que contendrá los enlaces de descarga. - Bucle
foreachpara recorrer los productos del pedido: Obtiene la URL del PDF asociado a cada producto y muestra un enlace de descarga si existe. add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf_por_producto', 5): Este hook de WordPress está vinculado al eventowoocommerce_thankyou. Cuando se completa una compra, se ejecuta la funciónagregar_enlace_descarga_pdf_por_productocon una prioridad de 5 para mostrar los enlaces de descarga en la página de agradecimiento.
<?php
// Función para agregar un campo personalizado para la URL del PDF en la página de edición del producto
function agregar_campo_pdf_descargable() {
// Agrega el campo en la sección 'General' del producto
woocommerce_wp_text_input(
array(
'id' => 'pdf_descargable',
'label' => 'URL del PDF Descargable',
'placeholder' => 'Ingrese la URL del PDF aquí',
'desc_tip' => 'true',
'description' => 'Ingrese la URL del PDF asociado a este producto. Este enlace se mostrará en la página de gracias después de una compra.'
)
);
}
// Hook para mostrar el campo personalizado en la página de edición del producto
add_action('woocommerce_product_options_general_product_data', 'agregar_campo_pdf_descargable');
// Función para guardar el valor del campo personalizado
function guardar_valor_campo_pdf_descargable($post_id) {
$pdf_url = isset($_POST['pdf_descargable']) ? esc_url($_POST['pdf_descargable']) : '';
update_post_meta($post_id, 'pdf_descargable', $pdf_url);
}
// Hook para guardar el valor del campo personalizado
add_action('woocommerce_process_product_meta', 'guardar_valor_campo_pdf_descargable');
// Función para agregar un enlace de descarga de PDF en la página de gracias por producto
function agregar_enlace_descarga_pdf_por_producto($order_id) {
// Obtiene el ID del pedido
$order = wc_get_order($order_id);
// Obtiene los productos del pedido
$items = $order->get_items();
// Comienza los estilos en línea
echo '<style>';
echo '.thankyou-pdf-table { width: 100%; border-collapse: collapse; margin-top: 20px; }';
echo '.thankyou-pdf-table td { border: 1px solid #ddd; padding: 8px; text-align: left; }';
echo '.thankyou-pdf-table a { text-decoration: none; color: #0073aa; font-weight: bold; }';
echo '</style>';
// Comienza la tabla
echo '<table class="thankyou-pdf-table">';
// Recorre cada producto en el pedido
foreach ($items as $item) {
// Obtiene el ID del producto
$product_id = $item->get_product_id();
// Obtiene la URL del PDF asociado al producto (reemplaza 'pdf_descargable' con la clave que usaste)
$pdf_url = get_post_meta($product_id, 'pdf_descargable', true);
// Muestra la fila de la tabla para cada producto
if ($pdf_url) {
echo '<tr>';
echo '<td>Descarga el PDF para ' . $item->get_name() . ':</td>';
echo '<td><a href="' . esc_url($pdf_url) . '" target="_blank" rel="noopener noreferrer">Descargar PDF</a></td>';
echo '</tr>';
}
}
// Finaliza la tabla
echo '</table>';
}
// Hook para agregar el enlace en el contenido de la página de gracias
add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf_por_producto', 5);
Lenguaje del código: HTML, XML (xml)
En resumen, al explorar estos tres códigos para integrar descargas de PDFs en la página de agradecimiento de WooCommerce, ampliamos significativamente las posibilidades para ofrecer a los clientes una experiencia más rica y personalizada. Desde proporcionar manuales detallados por producto hasta ofrecer información general por categoría y promociones en un PDF general, estas implementaciones no solo mejoran la funcionalidad de la plataforma, sino que también agregan un valor adicional a la interacción del cliente.
Personaliza estas opciones de descarga según tus necesidades específicas y observa cómo se potencia tu presencia digital en el mundo del comercio electrónico. ¡Aprovecha al máximo estas herramientas para llevar tu plataforma al siguiente nivel!
Si necesitas adaptar el código a las necesidades de tu proyecto o agregar una funcionalidad específica a tu página web no dudes en contactar conmigo.
Nos vemos en el siguiente tutorial.
Un saludo.




Deja tus opiniones o dudas en los comentarios.