function product_imager_set_images() { // Verify the AJAX request check_ajax_referer('product_imager_nonce', 'security'); // Get product ID and image URLs from the AJAX request $product_id = isset($_POST['product_id']) ? intval($_POST['product_id']) : 0; $image_urls = isset($_POST['image_urls']) ? (array) $_POST['image_urls'] : []; // Validate the input if (empty($product_id)) { wp_send_json_error(['message' => __('Error: Product ID is missing.', 'product-imager')]); } if (empty($image_urls)) { wp_send_json_error(['message' => __('Error: No images were selected.', 'product-imager')]); } // Define the uploads directory for saving images $upload_dir = wp_upload_dir(); $product_images_dir = $upload_dir['basedir'] . '/productimages'; // Ensure the directory exists if (!file_exists($product_images_dir)) { if (!wp_mkdir_p($product_images_dir)) { wp_send_json_error(['message' => __('Error: Failed to create directory for images.', 'product-imager')]); } } $attachment_ids = []; // Process each image URL foreach ($image_urls as $image_url) { // Validate the URL if (!filter_var($image_url, FILTER_VALIDATE_URL)) { continue; // Skip invalid URLs } // Fetch the image content $image_data = wp_remote_get($image_url); if (is_wp_error($image_data)) { continue; // Skip failed downloads } $image_body = wp_remote_retrieve_body($image_data); $image_name = sanitize_file_name(basename(parse_url($image_url, PHP_URL_PATH))); $file_path = $product_images_dir . '/' . $image_name; // Save the image locally if (file_put_contents($file_path, $image_body) !== false) { // Add the image to the WordPress Media Library $attachment_id = media_handle_sideload([ 'name' => $image_name, 'tmp_name' => $file_path, ], 0); if (is_wp_error($attachment_id)) { unlink($file_path); // Clean up failed uploads continue; } // Add the attachment ID to the list $attachment_ids[] = $attachment_id; } } // Check if any images were uploaded if (empty($attachment_ids)) { wp_send_json_error(['message' => __('Error: No images were successfully uploaded.', 'product-imager')]); } // Set the first image as the featured image set_post_thumbnail($product_id, $attachment_ids[0]); // Add additional images to the product gallery if (count($attachment_ids) > 1) { update_post_meta($product_id, '_product_image_gallery', implode(',', array_slice($attachment_ids, 1))); } // Respond with success wp_send_json_success(['message' => __('Product images updated successfully!', 'product-imager')]); } Hoffman’s Fully Cooked Half Smokes 1-lb – Horizon Foods – Wholesale Food Distributor
et-loader

Needing Assistance? Call Us: 443-402-1728

Hoffman’s Fully Cooked Half Smokes 1-lb

SKU: 854414005133

$8.30

Available: 7
🔥 6 items sold in last 3 months
41 people are viewing this product in the last 3 months.
or
Secured Checkout: Pay safely with Visa Pay safely with Master Card Pay safely with PayPal Pay safely with American Express Pay safely with Maestro Pay safely with Bitcoin
Cash Discount on Pickup Eligible

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Placeholder Hoffman’s Fully Cooked H...

$8.30

7 in stock

Recent Products

Cash Discounting Available
Secure Payments
100% Satisfaction Guarantee!
Top-Notch Shopping

Recent Products

Account Menu
Account Menu
Address

704 Pulaski Hwy, Joppatowne, MD 21085

Information

Hotline: 443-402-1728
jennifer@horizonfoodstore.com

Follow Us

Cart