Untitled

 avatar
unknown
plain_text
15 days ago
3.3 kB
3
Indexable
<?php
// Σύνδεση με το WordPress περιβάλλον
require_once(dirname(__FILE__) . '/wp-load.php');

// Σύνδεση με τη βάση δεδομένων
global $wpdb;

// Παίρνουμε τις παραμέτρους ταξινόμησης από το URL
$orderby = isset($_GET['orderby']) ? sanitize_text_field($_GET['orderby']) : 'stock_quantity';
$order = isset($_GET['order']) && strtolower($_GET['order']) === 'asc' ? 'asc' : 'desc';

// Ανάκτηση προϊόντων WooCommerce
$products = $wpdb->get_results("
    SELECT p.ID, p.post_title, 
           sku.meta_value AS sku, 
           price.meta_value AS price, 
           stock.meta_value AS stock_quantity, 
           sales.meta_value AS total_sales
    FROM {$wpdb->prefix}posts p
    LEFT JOIN {$wpdb->prefix}postmeta sku ON p.ID = sku.post_id AND sku.meta_key = '_sku'
    LEFT JOIN {$wpdb->prefix}postmeta price ON p.ID = price.post_id AND price.meta_key = '_price'
    LEFT JOIN {$wpdb->prefix}postmeta stock ON p.ID = stock.post_id AND stock.meta_key = '_stock'
    LEFT JOIN {$wpdb->prefix}postmeta sales ON p.ID = sales.post_id AND sales.meta_key = 'total_sales'
    WHERE p.post_type = 'product' AND p.post_status = 'publish'
    ORDER BY {$orderby} {$order}
");

// Στυλ πίνακα
echo '<style>
    table {
        width: 100%;
        border-collapse: collapse;
    }
    th, td {
        border: 1px solid #ddd;
        padding: 8px;
        text-align: left;
    }
    th {
        background-color: #f2f2f2;
        cursor: pointer;
    }
    tr:nth-child(even) {
        background-color: #f9f9f9;
    }
    tr:hover {
        background-color: #f1f1f1;
    }
</style>';

// Δημιουργία πίνακα HTML
echo '<table>';
echo '<tr>';
echo '<th><a href="?orderby=sku&order=' . (($orderby === 'sku' && strtolower($order) === 'asc') ? 'desc' : 'asc') . '">Barcode</a></th>';
echo '<th><a href="?orderby=post_title&order=' . (($orderby === 'post_title' && strtolower($order) === 'asc') ? 'desc' : 'asc') . '">Όνομα Προϊόντος</a></th>';
echo '<th><a href="?orderby=price&order=' . (($orderby === 'price' && strtolower($order) === 'asc') ? 'desc' : 'asc') . '">Τιμή Πώλησης</a></th>';
echo '<th><a href="?orderby=stock_quantity&order=' . (($orderby === 'stock_quantity' && strtolower($order) === 'asc') ? 'desc' : 'asc') . '">Τρέχον Στοκ</a></th>';
echo '<th><a href="?orderby=total_sales&order=' . (($orderby === 'total_sales' && strtolower($order) === 'asc') ? 'desc' : 'asc') . '">Παραγγελθέντα</a></th>';
echo '</tr>';

// Προβολή προϊόντων
foreach ($products as $product) {
    echo '<tr>';
    echo '<td>' . (!empty($product->sku) ? esc_html($product->sku) : '-') . '</td>';
    echo '<td>' . esc_html($product->post_title) . '</td>';
    echo '<td>' . (!is_null($product->price) ? number_format(floatval($product->price), 2) . ' €' : '-') . '</td>';
    echo '<td>' . (!is_null($product->stock_quantity) ? intval($product->stock_quantity) : 'Μη διαθέσιμο') . '</td>';
    echo '<td>' . (!is_null($product->total_sales) ? intval($product->total_sales) : '0') . '</td>';
    echo '</tr>';
}

// Κλείσιμο πίνακα
echo '</table>';
?>
Leave a Comment