Prodotti
-
-
-
Accedi
-
-
-
-
-
-
Accedi
-
// ========================================================================= // 1. ADJUNTAR ARCHIVO CSV/EXCEL AL CORREO DEL CLIENTE AUTOMÁTICAMENTE // ========================================================================= add_filter('woocommerce_email_attachments', 'adjuntar_csv_a_correo_orden', 10, 4); function adjuntar_csv_a_correo_orden($attachments, $email_id, $order, $email) { // Solo en los correos de confirmación al cliente if (!in_array($email_id, array('customer_processing_order', 'customer_completed_order')) || !$order) { return $attachments; } $upload_dir = wp_upload_dir(); $file_path = $upload_dir['basedir'] . '/Pedido_' . $order->get_order_number() . '.csv'; $output = fopen($file_path, 'w'); if ($output === false) return $attachments; // BOM UTF-8 para correcta interpretación de caracteres en Microsoft Excel fputs($output, chr(0xEF) . chr(0xBB) . chr(0xBF)); // Cabeceras de columna (Uso del punto y coma ';' como separador estándar de Excel) fputcsv($output, array('Numero_Pedido', 'Fecha', 'SKU', 'Producto', 'Cantidad', 'Precio_Unitario', 'Total_Linea'), ';'); // Recorrer items de la orden foreach ($order->get_items() as $item) { $product = $item->get_product(); $sku = $product ? $product->get_sku() : ''; fputcsv($output, array( $order->get_order_number(), $order->get_date_created()->date('Y-m-d H:i:s'), $sku, $item->get_name(), $item->get_quantity(), number_format($item->get_subtotal() / $item->get_quantity(), 2, '.', ''), number_format($item->get_total(), 2, '.', '') ), ';'); } fclose($output); // Adjuntar archivo al correo $attachments[] = $file_path; return $attachments; } // Limpiar el archivo CSV temporal del servidor tras enviar el correo add_action('woocommerce_email_sent', 'limpiar_csv_temporal_correo', 10, 3); function limpiar_csv_temporal_correo($sent_to_admin, $email_id, $email) { if (in_array($email_id, array('customer_processing_order', 'customer_completed_order')) && isset($email->object)) { $order = $email->object; if ($order) { $upload_dir = wp_upload_dir(); $file_path = $upload_dir['basedir'] . '/Pedido_' . $order->get_order_number() . '.csv'; if (file_exists($file_path)) { @unlink($file_path); } } } } // ========================================================================= // 2. MOSTRAR BANNER Y BOTONES DENTRO DEL CUERPO DEL CORREO ELECTRÓNICO // ========================================================================= add_action('woocommerce_email_after_order_table', 'agregar_banner_descarga_en_correo', 20, 4); function agregar_banner_descarga_en_correo($order, $sent_to_admin, $plain_text, $email) { if ($sent_to_admin || !$order) return; $view_order_url = $order->get_view_order_url(); $download_csv_url = add_query_arg(array( 'download_order_csv' => $order->get_id(), 'nonce' => wp_create_nonce('download_csv_' . $order->get_id()) ), home_url()); echo '
Hemos adjuntado el archivo CSV / Excel de tu pedido a este correo. También puedes descargarlo directamente o ver tu factura ingresando a tu cuenta:
'; echo '📥 Descargar CSV / Excel '; echo '👤 Ver Pedido en Mi Cuenta'; echo '