如何从 php 表格脚本显示的 woocommerce 产品下载为 CSV 文件?

我正在尝试将产品库存下载为 .csv 文件。使用以下 php 脚本启用打开页面后,文件将自动下载。


<?php


$args = array(

    'status' => 'publish',

    'limit' => 100,

    'orderby' => 'title',

    'order'   => 'ASC'

);

$products = wc_get_products( $args );

$counter = 1;


echo "<input type='submit' value='Export' name='Export'>";

if (count($products)) {

    echo  "<table align='center'><tr>";

    echo "<td>";

    // Open the table

    echo "<table style ='background-color:#ffffff;border-collapse: collapse; margin-right:10px'><thead><tr>

            <th width='50' style='border:1px solid black'>Sl No.</th>

            <th width='400' style='border:1px solid black'>Product Name</th>

            <th style='border:1px solid black' width='54'>Stock</th>

            </tr></thead>";

    // Cycle through the array

    foreach ($products as $product) {

        // Output a row

        if($product->stock_status == 'instock'){

        echo "<tr>";

        echo "<td align='center' style='border:1px solid black'>$counter</td>";

        echo "<td style='border:1px solid black'>$product->name</td>";

        echo "<td align='center' style='border:1px solid black'>$product->stock_quantity</td>";

        echo "</tr>";

        $counter++;

        $user_arr[] = array($counter,$product->name,$product->stock_quantity);

    }

    }

    // Close the table

    echo "</table>";

    echo "</td>";

    //-----------------------out of stock------------

    echo "<td valign='top'>";

    // Open the table

    echo "<table style = 'background-color:#ffffff;border-collapse: collapse;'><thead><tr>

            <th width='50' style='border:1px solid black'>Sl No.</th>

            <th width='400' style='border:1px solid black'>Out of stock products</th>

            <th style='border:1px solid black' width='54'>Stock</th>

            </tr></thead>"; 

    // Close the table

    echo "</table>";

    echo "</td>";

    echo "</tr></table>";

}

打开“product_stock.csv”下载文件后,它没有与预期的行值正确对齐,但在每一行和每一列上显示 html 脚本。单击“导出”按钮后如何下载文件 product_stock.csv 并在行中添加预期值?


明月笑刀无情
浏览 69回答 1
1回答

慕姐8265434

我得到了解决方案。添加带有按钮的表单。<form style="margin-left: 79%;margin-top: -59px;" method="post" id="export-form" action="">&nbsp; &nbsp; &nbsp; &nbsp; <?php submit_button('Export Stock Report', 'primary', 'download_csv' ); ?>&nbsp; &nbsp; </form>然后添加标题以正确对齐,这避免了 product_stock.csv 中的 html 标签header('Content-Type: text/csv; charset=utf-8'); //For .csvheader('Content-Disposition: attachment; filename=product-stock-report-' . date('d-m-Y') . '.csv');$output = fopen('php://output', 'w');$headings = array( 'Sl. No.','Product Name', 'Stock' );fputcsv($output, $headings );
打开App,查看更多内容
随时随地看视频慕课网APP