В моем магазине есть iframe, в котором размещаются товары, но сама корзина находится в WooCommerce. Когда вы нажимаете кнопку «Добавить в корзину» в окне iframe, я получаю сообщение с данными о продукте. Создаю ссылку и отправляю товар в корзину для дальнейшей обработки. Ссылка выглядит так:
http://some url/сart/?add-to-cart=' + productId + '&quantity=' + productQuantity + '&file=' + fileId + '&color=' + productColor + '&size=' + productSize);
Получаю все данные из сообщения. Я взял «файл» по этой ссылке и отобразил его как дополнительное поле к продукту.
add_filter( 'woocommerce_add_to_cart_redirect', 'redirect_add_to_cart' );
function redirect_add_to_cart($url) {
$code = $_GET['file'];
}
add_filter('woocommerce_add_cart_item_data','wdm_add_item_data',10,3);
function wdm_add_item_data($cart_item_data, $product_id, $code )
{
if(isset($_GET['file']))
{
$cart_item_data['file'] = sanitize_text_field($_GET['file']);
}
return $cart_item_data;
}
add_filter('woocommerce_get_item_data','wdm_add_item_meta',10,2);
function wdm_add_item_meta($item_data, $cart_item)
{
if(array_key_exists('file', $cart_item))
{
$custom_details =$cart_item['file'];
$item_data[] = array(
'key' => 'test',
'value' => $custom_details
);
}
return $item_data;
}
Но я не могу получить цвет и размер. Как я могу отобразить все три поля - файл, цвет и размер?