Вывести скрытые поля ввода для каждого варианта продукта переменной Woocommerce

Возникла проблема в моем магазине, где я хочу настроить скрытые поля ввода. Каждое поле относится к идентификатору варианта моего продукта (все они имеют три варианта)

<input type="hidden" class="one" name="id" value"value-of-first-variation"/>
<input type="hidden" class="two" name="id" value"value-of-second-variation"/>
<input type="hidden" class="three" name="id" value"value-of-three-variation"/>

Но я очень запутался, как это сделать. Я видел несколько публикаций в SO о получении всех идентификаторов вариантов, но не уверен, как выполнить этот последний шаг и получить значение каждого из этих полей ввода, чтобы получить правильный идентификатор. Есть идеи?

-1

Решение

Чтобы получить все варианты ID любого продукта, попробуйте это —

    $args = array(
'post_type'     => 'product_variation',
'post_status'   => array( 'private', 'publish' ),
'numberposts'   => -1,
'orderby'       => 'menu_order',
'order'         => 'asc',
'post_parent'   => get_the_ID() // get parent post-ID
);
$variations = get_posts( $args );

foreach ( $variations as $variation ) {

// get variation ID
$variation_ID = $variation->ID;

// get variations meta
$product_variation = new WC_Product_Variation( $variation_ID );

// get variation featured image
$variation_image = $product_variation->get_image();

// get variation price
$variation_price = $product_variation->get_price_html();


}

ИЛИ ЖЕ

 $available_variations = $product->get_available_variations();

И если вы хотите добавить все продукты варианта в корзину, одним щелчком мыши (согласно вашему комментарию), то вы можете использовать функцию jquery, где вы сначала получите весь идентификатор варианта (после загрузки страницы), а затем используйте ajax, где вы необходимо отправить все входные данные (идентификаторы вариаций) на другую страницу ajax, и в ответ вы получите все идентификаторы вариаций в ссылке, например:

abc.com/?add-to-cart=121:1,538:1

Здесь указан первый параметр идентификатора варианта, а второй (после 🙂 — количество. Вы можете добавить несколько идентификаторов вариантов отдельно с помощью (,).

Затем замените кнопку «Добавить в корзину» новой ссылкой.

Я знаю, что это не полный ответ, но вы получите некоторую помощь от этого.

Спасибо!

0

Другие решения

Чтобы получить массив идентификаторов вариантов в продукте переменной, который вы будете использовать WC_Product get_children() метод.

В приведенном ниже коде вам нужно получить экземпляр объекта WC_Product продукта Variable, если вы можете получить его, используя:

global $product;

В этом случае вы будете использовать:

// Get the Variable product WC_Product object instance
$product = wc_get_product( get_the_id() );

Теперь остальной код для отображения всех необходимых скрытых полей ввода, связанных с идентификаторами вариантов:

$childern_variations_ids = $product->get_children(); // The variations IDs

// Loop through the array of Variations IDs to output related hidden fields
foreach(  $childern_variations_ids as $key => $variation_id ){
// Output a hidden field for each variation ID
echo '<input type="hidden" class="variation variation-'.$key.'" name="id" value"'.$variation_id.'"/>';
}

Теперь вы получаете набор скрытых полей ввода, связанных с идентификаторами вариантов для ваших переменных продуктов.

0

По вопросам рекламы [email protected]