Adjuntar PDF al email del pedido en WooCommerce
En este tutorial te muestro cómo subir un PDF por producto en WooCommerce y que ese archivo se envíe automáticamente adjunto en el email de nuevo pedido que recibe el comprador.
Agregar un campo de subida de PDF en el producto
Usamos add_meta_boxpara agregar un campo tipo FILEen la edición del producto:
ID, '_productPdfUrl', true );
echo '';
if ( $pdfUrl ) {
echo '';
}
}
Guardar el PDF al guardar el producto
El archivo se guarda en la carpeta uploads y se almacena la URL en un meta campo:
false ] );
if ( isset( $uploadedFile['url'] ) ) {
update_post_meta( $postId, '_productPdfUrl', esc_url_raw( $uploadedFile['url'] ) );
}
}
}
Adjuntar el PDF en el email de pedido nuevo
Usamos el filtro woocommerce_email_attachmentspara agregar los archivos PDF al email de procesamiento de pedido al cliente:
get_items() as $item ) {
$productId = $item->get_product_id();
$pdfUrl = get_post_meta( $productId, '_productPdfUrl', true );
if ( $pdfUrl ) {
$uploadDir = wp_upload_dir();
$filePath = $uploadDir['basedir'] . str_replace( $uploadDir['baseurl'], '', $pdfUrl );
if ( file_exists( $filePath ) ) {
$attachments[] = $filePath;
}
}
}
return $attachments;
}
¿Qué logramos con esto?
- Puedes subir un PDF por producto desde el admin.
- Ese archivo se adjunta automáticamente al email que recibe el comprador cuando hace una compra.
- El PDF se guarda en la carpeta
uploadsdel sitio y no es accesible públicamente salvo por enlace directo.
