Переменная WooCommerce Уведомление о продукте Проблема — выберите параметры продукта

Я создаю сайт электронной коммерции. У меня возникли проблемы с WooCommerce Переменный продукт.

Кнопка «Добавить в корзину» прекрасно работает с простыми продуктами, но не работает с переменными продуктами. Это дает "Please choose product options…" уведомление.

Я искал везде и попробовал несколько предложений онлайн, ни одно из них не работает. Поэтому я заглянул в исходный файл WooCommerce: class-wc-form-handler.php.

В функции add_to_cart_handler_variable:

function add_to_cart_handler_variable( $product_id ) {
$adding_to_cart     = wc_get_product( $product_id );
$variation_id       = empty( $_REQUEST['variation_id'] ) ? '' : absint( $_REQUEST['variation_id'] );
$quantity           = empty( $_REQUEST['quantity'] ) ? 1 : wc_stock_amount( $_REQUEST['quantity'] );
$missing_attributes = array();
$variations         = array();
$attributes         = $adding_to_cart->get_attributes();
$variation          = wc_get_product( $variation_id );
...
if ( $missing_attributes ) {
wc_add_notice( sprintf( _n( '%s is a required field', '%s are required fields', sizeof( $missing_attributes ), 'woocommerce' ), wc_format_list_of_items( $missing_attributes ) ), 'error' );
} elseif ( empty( $variation_id ) ) {
wc_add_notice( __( 'Please choose product options…', 'woocommerce' ), 'error' );
} else {
// Add to cart validation
$passed_validation  = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variations );

if ( $passed_validation && WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variations ) !== false ) {
wc_add_to_cart_message( $product_id );
return true;
}
}
return false;
}

Ошибка поймана в предложении elseif.
Поэтому я попытался повторить $variation_id, $variations, а также $variation, Ни у кого из них нет ничего, потому что, когда я повторяю $variation_id: ничего не выводится.

Какие-либо предложения?

0

Решение

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

На страницах с изменяемым товаром обычно отображаются некоторые варианты на выбор для переменного продукта, перед использованием кнопки «добавить в корзину». Если вы этого не сделаете, вы получите сообщение об ошибке …
Итак, на данный момент:

  1. Варианты не отображаются на странице продукта (неверные настройки на странице вашего внутреннего продукта, ошибка с вашей темой или какой-то дополнительный плагин):
    • Проверьте настройки вашего продукта
    • Попробуйте переключиться на тему WordPress по умолчанию (чтобы увидеть, если эта проблема все еще существует)
    • Попробуйте отключить больше всего плагинов.
  2. варианты отображается: Итак, сначала выберите ваши варианты для этого продукта, а затем добавьте в корзину

Если эта проблема связана с вашей темой, свяжитесь с автором вашей темы и откройте тему поддержки или тикет …


ВЫПУСК ИЗМЕНЕНИЯ ПРОДУКТА ДЛЯ ИДЕНТИФИКАТОРА ПРОДУКТА:

Чтобы программно получить варианты продукта для переменного идентификатора продукта:

$product = wc_get_product( $product_id );
$product_variations = $product->get_available_variations();

echo var_dump($product_variations); // Displaying the array

Затем, чтобы получить первый вариант ID:

$product = wc_get_product( $product_id );
$product_variations = $product->get_available_variations();

$variation_product_id = $product_variations [0]['variation_id'];
echo $variation_product_id; // Displaying the variation ID

Или получить массив всех вариантов идентификатора этого продукта:

$product = wc_get_product( $product_id );
$product_variations = $product->get_available_variations();

$arr_variations_id = array();
foreach ($product_variations as $variation) {
$product_variation_id = $variation['variation_id'];
array_push( $arr_variations_id, $product_variation_id );
}

echo var_dump($arr_variations_id); // Displaying the array of variations ID

Ссылка : Измените кнопку «Добавить в корзину» на «Перейти к продукту» на странице магазина

1

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

Я создаю сайт электронной коммерции. У меня возникли проблемы с WooCommerce Переменный продукт.

Кнопка «Добавить в корзину» прекрасно работает с простыми продуктами, но не работает с переменными продуктами. Это дает "Please choose product options…" уведомление.

Я искал везде и попробовал несколько предложений онлайн, ни одно из них не работает. Поэтому я заглянул в исходный файл WooCommerce: class-wc-form-handler.php.

В функции add_to_cart_handler_variable:

function add_to_cart_handler_variable( $product_id ) {
$adding_to_cart     = wc_get_product( $product_id );
$variation_id       = empty( $_REQUEST['variation_id'] ) ? '' : absint( $_REQUEST['variation_id'] );
$quantity           = empty( $_REQUEST['quantity'] ) ? 1 : wc_stock_amount( $_REQUEST['quantity'] );
$missing_attributes = array();
$variations         = array();
$attributes         = $adding_to_cart->get_attributes();
$variation          = wc_get_product( $variation_id );
...
if ( $missing_attributes ) {
wc_add_notice( sprintf( _n( '%s is a required field', '%s are required fields', sizeof( $missing_attributes ), 'woocommerce' ), wc_format_list_of_items( $missing_attributes ) ), 'error' );
} elseif ( empty( $variation_id ) ) {
wc_add_notice( __( 'Please choose product options…', 'woocommerce' ), 'error' );
} else {
// Add to cart validation
$passed_validation  = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variations );

if ( $passed_validation && WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variations ) !== false ) {
wc_add_to_cart_message( $product_id );
return true;
}
}
return false;
}

Ошибка поймана в предложении elseif.
Поэтому я попытался повторить $variation_id, $variations, а также $variation, Ни у кого из них нет ничего, потому что, когда я повторяю $variation_id: ничего не выводится.

Какие-либо предложения?

0

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

На страницах с изменяемым товаром обычно отображаются некоторые варианты на выбор для переменного продукта, перед использованием кнопки «добавить в корзину». Если вы этого не сделаете, вы получите сообщение об ошибке …
Итак, на данный момент:

  1. Варианты не отображаются на странице продукта (неверные настройки на странице вашего внутреннего продукта, ошибка с вашей темой или какой-то дополнительный плагин):
    • Проверьте настройки вашего продукта
    • Попробуйте переключиться на тему WordPress по умолчанию (чтобы увидеть, если эта проблема все еще существует)
    • Попробуйте отключить больше всего плагинов.
  2. варианты отображается: Итак, сначала выберите ваши варианты для этого продукта, а затем добавьте в корзину

Если эта проблема связана с вашей темой, свяжитесь с автором вашей темы и откройте тему поддержки или тикет …


ВЫПУСК ИЗМЕНЕНИЯ ПРОДУКТА ДЛЯ ИДЕНТИФИКАТОРА ПРОДУКТА:

Чтобы программно получить варианты продукта для переменного идентификатора продукта:

$product = wc_get_product( $product_id );
$product_variations = $product->get_available_variations();

echo var_dump($product_variations); // Displaying the array

Затем, чтобы получить первый вариант ID:

$product = wc_get_product( $product_id );
$product_variations = $product->get_available_variations();

$variation_product_id = $product_variations [0]['variation_id'];
echo $variation_product_id; // Displaying the variation ID

Или получить массив всех вариантов идентификатора этого продукта:

$product = wc_get_product( $product_id );
$product_variations = $product->get_available_variations();

$arr_variations_id = array();
foreach ($product_variations as $variation) {
$product_variation_id = $variation['variation_id'];
array_push( $arr_variations_id, $product_variation_id );
}

echo var_dump($arr_variations_id); // Displaying the array of variations ID

Ссылка : Измените кнопку «Добавить в корзину» на «Перейти к продукту» на странице магазина

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
1
По вопросам рекламы [email protected]