fix: Address issues with all 4 features
1. Admin Store Link - Add to WP admin bar (Menu.php) with proper option check 2. Activity Log - Fix Loading text to show correct state after data loads 3. Avatar Upload - Use correct option key woonoow_allow_custom_avatar 4. Downloadable Files - Connect to WooCommerce native: - Add downloads array to format_product_full - Add downloads/download_limit/download_expiry handling in update_product - Add downloads handling in create_product
This commit is contained in:
@@ -475,6 +475,29 @@ class ProductsController {
|
||||
$product->set_featured((bool) $data['featured']);
|
||||
}
|
||||
|
||||
// Downloadable files
|
||||
if (isset($data['downloads']) && is_array($data['downloads'])) {
|
||||
$wc_downloads = [];
|
||||
foreach ($data['downloads'] as $download) {
|
||||
if (!empty($download['file'])) {
|
||||
$wc_downloads[] = [
|
||||
'id' => $download['id'] ?? md5($download['file']),
|
||||
'name' => self::sanitize_text($download['name'] ?? ''),
|
||||
'file' => esc_url_raw($download['file']),
|
||||
];
|
||||
}
|
||||
}
|
||||
$product->set_downloads($wc_downloads);
|
||||
}
|
||||
if (isset($data['download_limit'])) {
|
||||
$limit = $data['download_limit'] === '' ? -1 : (int) $data['download_limit'];
|
||||
$product->set_download_limit($limit);
|
||||
}
|
||||
if (isset($data['download_expiry'])) {
|
||||
$expiry = $data['download_expiry'] === '' ? -1 : (int) $data['download_expiry'];
|
||||
$product->set_download_expiry($expiry);
|
||||
}
|
||||
|
||||
// Categories
|
||||
if (isset($data['categories'])) {
|
||||
$product->set_category_ids($data['categories']);
|
||||
@@ -700,6 +723,21 @@ class ProductsController {
|
||||
$data['downloadable'] = $product->is_downloadable();
|
||||
$data['featured'] = $product->is_featured();
|
||||
|
||||
// Downloadable files
|
||||
if ($product->is_downloadable()) {
|
||||
$downloads = [];
|
||||
foreach ($product->get_downloads() as $download_id => $download) {
|
||||
$downloads[] = [
|
||||
'id' => $download_id,
|
||||
'name' => $download->get_name(),
|
||||
'file' => $download->get_file(),
|
||||
];
|
||||
}
|
||||
$data['downloads'] = $downloads;
|
||||
$data['download_limit'] = $product->get_download_limit() !== -1 ? (string) $product->get_download_limit() : '';
|
||||
$data['download_expiry'] = $product->get_download_expiry() !== -1 ? (string) $product->get_download_expiry() : '';
|
||||
}
|
||||
|
||||
// Images array (URLs) for frontend - featured + gallery
|
||||
$images = [];
|
||||
$featured_image_id = $product->get_image_id();
|
||||
|
||||
Reference in New Issue
Block a user