Мне нужна помощь с кодом для Woocommerce. < /p>
Мне нужно добавить скидку для каждой выбранной категории в каждом продукте и группируйте ее по каждой категории: < /p>
Например: < /p>
У меня есть 3 категории: < /p>
/> Категория 2 -> дисконтирование 10%< /li>
Категория 3 -> Дисконтирование 5%< /li>
< /ul>
Если я добавлю продукт из категории 1, мне придется выбрать скидку из этой категории.
и если я добавляю продукт из категории 2, то скидка из этой категории. Если у вас есть продукты из разных категорий в корзине: < /p>
Например: -> cart < /p>
Продукт a -> Категория 1 < /li>
Продукт B -> Категория 2 < /li>
категория 1 < /li>
< /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li>. /> < /ul>
ниже подтотального, мне придется добавить скидку, сгруппированную по категориям и дать мне скидку для всех продуктов в этой категории: < /p>
Например: -> subtotal < /p>
Категория дискрети Категория 2 -> Скидка всех продуктов в категории 2 < /li>
Категория скидки 3 -> Скидка всех продуктов в категории 3 < /li>
< /ul>
Они решили мою проблему с помощью этого кода, в случае, если кто -то нуждается в будущем.add_action( 'woocommerce_cart_calculate_fees', 'wpf_wc_add_cart_fees_by_product_category' );
if ( ! function_exists( 'wpf_wc_add_cart_fees_by_product_category' ) ) {
function wpf_wc_add_cart_fees_by_product_category( $cart ) {
$fees = array(
'cat1' => 10,
'cat2' => 5,
'cat3' => 3,
);
// Initialize an array to store the discounts grouped by category
$category_discounts = array();
// Loop through the cart items
foreach ( $cart->get_cart() as $cart_item_key => $values ) {
$product_id = $values['product_id'];
$product_price = $values['data']->get_price();
$product_categories = get_the_terms( $product_id, 'product_cat' );
$quantity = $values['quantity'];
// Check if the product has categories and there is no error
if ( $product_categories && ! is_wp_error( $product_categories ) ) {
foreach ( $product_categories as $product_category ) {
$category_slug = $product_category->slug;
// Check if the category has a defined discount
if ( ! empty( $fees[ $category_slug ] ) ) {
$discount_percentage = $fees[ $category_slug ];
$discount_amount = $product_price * $quantity * ($discount_percentage / 100);
// Accumulate the discount for the category
if ( ! isset( $category_discounts[ $category_slug ] ) ) {
$category_discounts[ $category_slug ] = 0;
}
$category_discounts[ $category_slug ] += $discount_amount;
}
}
}
}
// Add the accumulated discounts as fees in the cart
foreach ( $category_discounts as $category_slug => $discount_amount ) {
$category_name = get_term_by( 'slug', $category_slug, 'product_cat' )->name;
$fee_name = 'Discount (' . $fees[$category_slug] . '%): ' . $category_name;
$cart->add_fee( $fee_name, -$discount_amount, false );
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... merce-cart
Применить скидки, сгруппированные по категории продуктов в WooCommerce Cart ⇐ Php
Кемеровские программисты php общаются здесь
1749539070
Anonymous
Мне нужна помощь с кодом для Woocommerce. < /p>
Мне нужно добавить скидку для каждой выбранной категории в каждом продукте и группируйте ее по каждой категории: < /p>
Например: < /p>
У меня есть 3 категории: < /p>
/> Категория 2 -> дисконтирование 10%< /li>
Категория 3 -> Дисконтирование 5%< /li>
< /ul>
Если я добавлю продукт из категории 1, мне придется выбрать скидку из этой категории.
и если я добавляю продукт из категории 2, то скидка из этой категории. Если у вас есть продукты из разных категорий в корзине: < /p>
Например: -> cart < /p>
Продукт a -> Категория 1 < /li>
Продукт B -> Категория 2 < /li>
категория 1 < /li>
< /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li> < /li>. /> < /ul>
ниже подтотального, мне придется добавить скидку, сгруппированную по категориям и дать мне скидку для всех продуктов в этой категории: < /p>
Например: -> subtotal < /p>
Категория дискрети Категория 2 -> Скидка всех продуктов в категории 2 < /li>
Категория скидки 3 -> Скидка всех продуктов в категории 3 < /li>
< /ul>
Они решили мою проблему с помощью этого кода, в случае, если кто -то нуждается в будущем.add_action( 'woocommerce_cart_calculate_fees', 'wpf_wc_add_cart_fees_by_product_category' );
if ( ! function_exists( 'wpf_wc_add_cart_fees_by_product_category' ) ) {
function wpf_wc_add_cart_fees_by_product_category( $cart ) {
$fees = array(
'cat1' => 10,
'cat2' => 5,
'cat3' => 3,
);
// Initialize an array to store the discounts grouped by category
$category_discounts = array();
// Loop through the cart items
foreach ( $cart->get_cart() as $cart_item_key => $values ) {
$product_id = $values['product_id'];
$product_price = $values['data']->get_price();
$product_categories = get_the_terms( $product_id, 'product_cat' );
$quantity = $values['quantity'];
// Check if the product has categories and there is no error
if ( $product_categories && ! is_wp_error( $product_categories ) ) {
foreach ( $product_categories as $product_category ) {
$category_slug = $product_category->slug;
// Check if the category has a defined discount
if ( ! empty( $fees[ $category_slug ] ) ) {
$discount_percentage = $fees[ $category_slug ];
$discount_amount = $product_price * $quantity * ($discount_percentage / 100);
// Accumulate the discount for the category
if ( ! isset( $category_discounts[ $category_slug ] ) ) {
$category_discounts[ $category_slug ] = 0;
}
$category_discounts[ $category_slug ] += $discount_amount;
}
}
}
}
// Add the accumulated discounts as fees in the cart
foreach ( $category_discounts as $category_slug => $discount_amount ) {
$category_name = get_term_by( 'slug', $category_slug, 'product_cat' )->name;
$fee_name = 'Discount (' . $fees[$category_slug] . '%): ' . $category_name;
$cart->add_fee( $fee_name, -$discount_amount, false );
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78580900/apply-discounts-grouped-by-product-category-to-woocommerce-cart[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия