Включить дополнительные изображения вариации в продуктах переменных admin woocommerceJquery

Программирование на jquery
Ответить
Anonymous
 Включить дополнительные изображения вариации в продуктах переменных admin woocommerce

Сообщение Anonymous »

За последнюю неделю я пытался написать пользовательский код PHP и jQuery для загрузки дополнительных вариационных изображений в каждое вариацию. Я написал какой -то код, но он не сработал должным образом. Не в состоянии удалить выбранные изображения.
[*] Не в состоянии увидеть изображения, которые я загружаю каждое вариацию (в раздел фронта)
Как это исправить? < /p>
function custom_allow_multiple_variation_images($loop, $variation_data, $variation) {
$variation_id = $variation->ID;
$field_name = 'variation_image';
$attachment_ids = get_post_meta($variation_id, $field_name, true);

echo '';
echo '

Fotoğraf

';
echo '';
echo 'Upload Image';

if ($attachment_ids) {
$attachment_ids = explode(',', $attachment_ids);
foreach ($attachment_ids as $attachment_id) {
$image_src = wp_get_attachment_image_src($attachment_id, 'thumbnail');
if ($image_src) {
echo '';
echo '';
echo 'Sil';
echo '';
}
}
}

echo '';
}

add_action('woocommerce_variation_options', 'custom_allow_multiple_variation_images', 10, 3);

function custom_save_variation_image($variation_id) {
$field_name = 'variation_image';
$attachment_ids = isset($_POST[$field_name]) ? array_map('absint', explode(',', wc_clean($_POST[ $field_name][0]))) : array();

update_post_meta($variation_id, $field_name, implode(',', $attachment_ids));
}

add_action('woocommerce_save_product_variation', 'custom_save_variation_image', 10, 1);

add_action('woocommerce_save_product_variation', 'custom_save_variation_image', 10, 1);

function custom_variation_image_scripts() {
?>

jQuery(document).ready(function($) {

function custom_add_variation_image($wrapper) {
var file_frame;
if (file_frame) {
file_frame.open();
return;
}
file_frame = wp.media.frames.file_frame = wp.media({
title: 'Variation Image Select',
button: {
text: 'Add Additional Image'
},
multiple: true
});

file_frame.on('select', function() {
var attachment_ids = [];
var selection = file_frame.state().get('selection');
selection.map(function(attachment) {
attachment = attachment.toJSON();
attachment_ids.push(attachment.id);
});
$wrapper.find('.upload_image').val(attachment_ids.join(','));
$wrapper.find('.uploaded_image_wrapper').remove();
attachment_ids.forEach(function(attachment_id) {
var image_url = wp.media.attachment(attachment_id).get('url');
$wrapper.append('Sil');
});
$wrapper.find('.upload_image').trigger('change'); // Trigger change event when selecting a variation image
});
file_frame.open();
}

function custom_remove_variation_image($wrapper, attachment_id) {
var attachment_ids = $wrapper.find('.upload_image').val().split(',');
var index = attachment_ids.indexOf(attachment_id);
if (index !== -1) {
attachment_ids.splice(index, 1);
$wrapper.find('.upload_image').val(attachment_ids.join(','));
}
$wrapper.find('.uploaded_image_wrapper[data-attachment_id="' + attachment_id + '"]').remove();
$wrapper.find('.upload_image').trigger('change'); // Trigger change event when removing a variation image
}

function custom_detect_variation_changes() {
$('form.cart').on('change', '.variation-control', function() {
$('.single_add_to_cart_button').prop('disabled', false);
});

// When a variation image changes, enable "Add to Cart" button
$('form.cart').on('change', '.upload_image', function() {
$('.single_add_to_cart_button').prop('disabled', false);
});
}

// Medya yükleyici olaylarını ekle
$(document).on('click', '.upload_image_button', function(e) {
e.preventDefault();
custom_add_variation_image($(this).closest('.upload_variation_image'));
});

$(document).on('click', '.delete_variation_image', function() {
var attachment_id = $(this).data('attachment_id');
custom_remove_variation_image($(this).closest('.upload_variation_image'), attachment_id);
});

custom_detect_variation_changes();
});


.uploaded_image_wrapper {
margin: 10px 0;
display: inline-block;
}

.uploaded_image_wrapper img {
max-width: 100px;
height: auto;
margin-right: 10px;
}

.delete_variation_image {
cursor: pointer;
color: #a00;
}



Подробнее здесь: https://stackoverflow.com/questions/767 ... e-products
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»