Untitled
unknown
plain_text
a year ago
3.3 kB
8
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>';
?>
Editor is loading...
Leave a Comment