✅ PDF Condicional Descargable en Página de Gracias en Woocommerce (Sin Plugins)

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?

  1. 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.
  2. 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.
  3. 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!

descargar pdf pagina de gracias woocommerce wordpress sin plugins

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:

  1. 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.
  2. 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.
  3. echo statement: Imprime un mensaje de agradecimiento en la página con un enlace. El enlace apunta al archivo PDF. El atributo target="_blank" significa que el enlace se abrirá en una nueva pestaña o ventana del navegador.
  4. add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf', 5): Este código «engancha» la función agregar_enlace_descarga_pdf() al evento de WooCommerce llamado woocommerce_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 prioridad 5 indica 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:

  1. 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.
  2. add_action('product_cat_edit_form_fields', 'agregar_campo_pdf_descargable_categoria'): Este hook de WordPress (add_action) está vinculado al evento product_cat_edit_form_fields. Cuando se edita una categoría de producto, se ejecuta automáticamente la función agregar_campo_pdf_descargable_categoria, que agrega el campo para la URL del PDF.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. Estilos en línea (<style>): Agrega estilos CSS en línea para dar formato a la tabla que contendrá los enlaces de descarga.
  8. Bucle foreach para 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.
  9. add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf_por_categoria', 5): Este hook de WordPress está vinculado al evento woocommerce_thankyou. Cuando se completa una compra, se ejecuta la función agregar_enlace_descarga_pdf_por_categoria con 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:

  1. 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.
  2. woocommerce_wp_text_input(): Una función de WooCommerce para crear un campo de entrada de texto para el formulario de productos.
  3. add_action('woocommerce_product_options_general_product_data', 'agregar_campo_pdf_descargable'): Este hook está vinculado al evento woocommerce_product_options_general_product_data. Muestra el campo personalizado en la sección ‘General’ de la página de edición del producto.
  4. 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.
  5. 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.
  6. 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.
  7. Estilos en línea (<style>): Agrega estilos CSS en línea para dar formato a la tabla que contendrá los enlaces de descarga.
  8. Bucle foreach para recorrer los productos del pedido: Obtiene la URL del PDF asociado a cada producto y muestra un enlace de descarga si existe.
  9. add_action('woocommerce_thankyou', 'agregar_enlace_descarga_pdf_por_producto', 5): Este hook de WordPress está vinculado al evento woocommerce_thankyou. Cuando se completa una compra, se ejecuta la función agregar_enlace_descarga_pdf_por_producto con 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.

5/5 - (3 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    Deja tus opiniones o dudas en los comentarios.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

0%